npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@mingdaocloud/hap-mcp

v1.6.0

Published

HAP - Model Context Protocol (MCP) Server by MingdaoCloud

Downloads

15

Readme

@mingdaocloud/hap-mcp

License: MIT TypeScript npm

HAP (Human-AI Protocol) - A powerful MCP (Model Context Protocol) server by MingdaoCloud for seamless AI integration.

🚀 Quick Start with Cursor

1. Install the Package

# Install globally
npm install -g @mingdaocloud/hap-mcp

# Or use in your project
npm install @mingdaocloud/hap-mcp

2. Configure Environment Variables

Set up your Mingdao API credentials as environment variables:

export APPKEY="your_APPKEY_here"
export SIGN="your_signature_here"
export HOST="https://www.nocoly.com"  # Optional: for private deployment only

3. Configure Cursor MCP Settings

Add the following configuration to your Cursor settings:

Option A: Standard Configuration (SaaS Version) Create or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "hap-mcp": {
      "command": "npx",
      "args": ["-y", "@mingdaocloud/hap-mcp@latest"],
      "env": {
        "APPKEY": "your_APPKEY_here",
        "SIGN": "your_signature_here"
      }
    }
  }
}

Option B: Private Deployment Configuration For private deployment environments only. Create .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "hap-mcp": {
      "command": "npx",
      "args": ["-y", "@mingdaocloud/hap-mcp@latest"],
      "env": {
        "APPKEY": "your_APPKEY_here",
        "SIGN": "your_signature_here",
        "HOST": "https://www.nocoly.com"
      }
    }
  }
}

Note: The HOST parameter is only required for private deployment environments. Replace https://www.nocoly.com with your actual private deployment server URL.

4. Start Using in Cursor

After configuration, restart Cursor and you'll have access to all Mingdao API tools directly in your AI conversations!

📋 Alternative Installation Methods

# Run directly with npx
npx @mingdaocloud/hap-mcp

# Or use in your project
npm install @mingdaocloud/hap-mcp

🔭 What's Included

HAP provides:

  • Production-ready MCP server with both stdio and HTTP transport options
  • Complete Mingdao API integration - Full access to Mingdao platform APIs
  • Pre-built tools for common AI integration tasks
  • Extensible architecture for custom tools, resources, and prompts
  • TypeScript support with full type safety
  • Easy deployment and configuration

✨ Features

  • FastMCP Framework: Built on the robust FastMCP framework
  • Dual Transport Support: Run over stdio or HTTP for maximum flexibility
  • Mingdao API Tools: Complete set of tools for Mingdao platform operations
  • TypeScript: Full TypeScript support for enterprise-grade development
  • Production Ready: Optimized for production deployments
  • Extensible: Easy to extend with custom functionality
  • MingdaoCloud Integration: Seamless integration with MingdaoCloud ecosystem

🔧 Mingdao API Tools

HAP includes a complete set of tools for interacting with the Mingdao platform:

Available Tools (25 Tools)

Core Worksheet Operations (7 Tools)

  • add_worksheet_record: Add new records to worksheets
  • delete_worksheet_record: Delete records from worksheets
  • update_worksheet_record: Update existing records
  • get_worksheet_fields: Get worksheet field information
  • list_worksheet_records: List records with filtering and pagination
  • list_worksheets: List all worksheets in application
  • get_worksheet_pivot_data: Get pivot table data with aggregation

Application & Worksheet Management (8 Tools)

  • get_app_info: Get application structure and information
  • get_worksheet_info: Get detailed worksheet structure
  • get_worksheet_rows: Get records with advanced filtering
  • get_row_detail: Get detailed information of specific records
  • add_row: Create new records (simplified)
  • update_row: Update records (simplified)
  • delete_row: Delete records (simplified)
  • create_worksheet: Create new worksheets with controls

Batch Operations (2 Tools)

  • add_rows_batch: Bulk create multiple records
  • update_rows_batch: Bulk update multiple records

Advanced Features (4 Tools)

  • get_related_records: Get records from linked worksheets
  • get_share_link: Generate sharing links for records
  • get_row_count: Get total record count in worksheets
  • get_row_logs: Get operation history for records

Role Management (6 Tools)

  • get_roles: List application roles
  • create_role: Create new roles with permissions
  • delete_role: Delete roles
  • add_role_members: Add users to roles
  • remove_role_members: Remove users from roles
  • get_role_detail: Get detailed role information

Option Set Management (4 Tools)

  • create_option_set: Create new option sets
  • get_option_set: Get option set information
  • update_option_set: Update existing option sets
  • delete_option_set: Delete option sets

Utility Tools (2 Tools)

  • exit_app: Exit from application
  • get_area_info: Get geographical area information

Quick Example

{
  "tool": "get_worksheet_rows",
  "parameters": {
    "worksheetId": "worksheet_id",
    "pageSize": 50
  }
}

Note: Authentication is now handled automatically through environment variables. No need to pass appKey, sign, or host parameters in tool calls. All tool names have been simplified by removing the mingdao_ prefix.

For detailed documentation, see MINGDAO_API_TOOLS.md.

🚀 Getting Started

After creating your project:

  1. Install dependencies using your preferred package manager:

    # Using npm
    npm install
       
    # Using yarn
    yarn
       
    # Using pnpm
    pnpm install
       
    # Using bun
    bun install
  2. Start the server:

    # Start the stdio server
    npm start
       
    # Or start the HTTP server
    npm run start:http
  3. For development with auto-reload:

    # Development mode with stdio
    npm run dev
       
    # Development mode with HTTP
    npm run dev:http

Note: The default scripts in package.json use Bun as the runtime (e.g., bun run src/index.ts). If you prefer to use a different package manager or runtime, you can modify these scripts in your package.json file to use Node.js or another runtime of your choice.

📖 Detailed Usage

Transport Methods

The MCP server supports two transport methods:

  1. stdio Transport (Command Line Mode):

    • Runs on your local machine
    • Managed automatically by Cursor
    • Communicates directly via stdout
    • Only accessible by you locally
    • Ideal for personal development and tools
  2. SSE Transport (HTTP Web Mode):

    • Can run locally or remotely
    • Managed and run by you
    • Communicates over the network
    • Can be shared across machines
    • Ideal for team collaboration and shared tools

Running the Server Locally

stdio Transport (CLI Mode)

Start the server in stdio mode for CLI tools:

# Start the stdio server
npm start
# or with other package managers
yarn start
pnpm start
bun start

# Start the server in development mode with auto-reload
npm run dev
# or
yarn dev
pnpm dev
bun dev

HTTP Transport (Web Mode)

Start the server in HTTP mode for web applications:

# Start the HTTP server
npm run start:http
# or
yarn start:http
pnpm start:http
bun start:http

# Start the HTTP server in development mode with auto-reload
npm run dev:http
# or
yarn dev:http
pnpm dev:http
bun dev:http

By default, the HTTP server runs on port 3001. You can change this by setting the PORT environment variable:

# Start the HTTP server on a custom port
PORT=8080 npm run start:http

Connecting to the Server

Connecting from Cursor

To connect to your MCP server from Cursor:

  1. Open Cursor and go to Settings (gear icon in the bottom left)
  2. Click on "Features" in the left sidebar
  3. Scroll down to "MCP Servers" section
  4. Click "Add new MCP server"
  5. Enter the following details:
    • Server name: my-mcp-server (or any name you prefer)
    • For stdio mode:
      • Type: command
      • Command: The path to your server executable, e.g., npm start
    • For SSE mode:
      • Type: url
      • URL: http://localhost:3001/sse
  6. Click "Save"

Using mcp.json with Cursor

For a more portable configuration, create an .cursor/mcp.json file in your project's root directory:

Standard Configuration (SaaS Version):

{
  "mcpServers": {
    "hap-mcp": {
      "command": "npx",
      "args": ["-y", "@mingdaocloud/hap-mcp@latest"],
      "env": {
        "APPKEY": "your_APPKEY_here",
        "SIGN": "your_signature_here"
      }
    },
    "my-mcp-sse": {
      "url": "http://localhost:3001/sse"
    }
  }
}

Private Deployment Configuration:

{
  "mcpServers": {
    "hap-mcp": {
      "command": "npx",
      "args": ["-y", "@mingdaocloud/hap-mcp@latest"],
      "env": {
        "APPKEY": "your_APPKEY_here",
        "SIGN": "your_signature_here",
        "HOST": "https://www.nocoly.com"
      }
    },
    "my-mcp-sse": {
      "url": "http://localhost:3001/sse"
    }
  }
}

You can also create a global configuration at ~/.cursor/mcp.json to make your MCP servers available in all your Cursor workspaces.

Environment Variables:

  • APPKEY (required): Your Mingdao application key
  • SIGN (required): Your Mingdao signature
  • HOST (optional): Custom host URL for private deployment only (e.g., https://www.nocoly.com). If provided, API calls will use host/api instead of https://api.mingdao.com

Note:

  • The command type entries run the server in stdio mode
  • The url type entry connects to the HTTP server using SSE transport
  • You can provide environment variables using the env field
  • When connecting via SSE with FastMCP, use the full URL including the /sse path: http://localhost:3001/sse

Testing Your Server with CLI Tools

FastMCP provides built-in tools for testing your server:

# Test with mcp-cli
npx fastmcp dev server.js

# Inspect with MCP Inspector
npx fastmcp inspect server.ts

Using Environment Variables

You can customize the server using environment variables:

# Required Mingdao API credentials
export APPKEY="your_APPKEY_here"
export SIGN="your_signature_here"

# Optional custom host (for private deployment only)
export HOST="https://www.nocoly.com"

# Server configuration
# Change the HTTP port (default is 3001)
PORT=8080 npm run start:http

# Change the host binding (default is 0.0.0.0)
HOST=127.0.0.1 npm run start:http

🛠️ Adding Custom Tools and Resources

When adding custom tools, resources, or prompts to your FastMCP server:

Tools

server.addTool({
  name: "hello_world",
  description: "A simple hello world tool",
  parameters: z.object({
    name: z.string().describe("Name to greet")
  }),
  execute: async (params) => {
    return `Hello, ${params.name}!`;
  }
});

Resources

server.addResourceTemplate({
  uriTemplate: "example://{id}",
  name: "Example Resource",
  mimeType: "text/plain",
  arguments: [
    {
      name: "id",
      description: "Resource ID",
      required: true,
    },
  ],
  async load({ id }) {
    return {
      text: `This is an example resource with ID: ${id}`
    };
  }
});

Prompts

server.addPrompt({
  name: "greeting",
  description: "A simple greeting prompt",
  arguments: [
    {
      name: "name",
      description: "Name to greet",
      required: true,
    },
  ],
  load: async ({ name }) => {
    return `Hello, ${name}! How can I help you today?`;
  }
});

📚 Documentation

For more information about FastMCP, visit FastMCP GitHub Repository.

For more information about the Model Context Protocol, visit the MCP Documentation.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.