DingTalk MCP server

Provides integration with the DingTalk API, enabling easy deployment and scaling of services like chatbots and data processing pipelines.
Back to servers
Provider
wllcnm
Release date
Jan 03, 2025
Language
Python
Stats
2 stars

The DingTalk MCP (Model Control Protocol) Server provides access to DingTalk API functions, allowing you to retrieve organization information such as departments, users, and access tokens through a standardized interface.

Prerequisites

  • Python 3.12+
  • Docker (recommended)
  • DingTalk application credentials

Installation

Getting DingTalk Application Credentials

  1. Login to the DingTalk Open Platform
  2. Create an internal enterprise application
  3. Obtain the AppKey and AppSecret for your application

Setting Environment Variables

You need to configure the following environment variables:

DINGDING_APP_KEY=your_app_key
DINGDING_APP_SECRET=your_app_secret

Deployment Options

Docker Deployment (Recommended)

Pull and run the Docker image:

docker pull ghcr.io/your_username/dingding-mcp:latest

docker run -d --name dingding-mcp \
  -e DINGDING_APP_KEY=your_app_key \
  -e DINGDING_APP_SECRET=your_app_secret \
  ghcr.io/your_username/dingding-mcp:latest

Local Installation

  1. Clone the repository and install dependencies:
git clone <repository_url>
cd dingding_chat
pip install -r requirements.txt
  1. Run the server:
python src/server.py

Using with Claude Desktop Client

Add the following configuration to your claude_desktop_config.json:

{
  "mcpServers": {
    "dingding": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "DINGDING_APP_KEY=your_app_key",
        "-e", "DINGDING_APP_SECRET=your_app_secret",
        "ghcr.io/your_username/dingding-mcp:latest"
      ]
    }
  }
}

Available API Functions

Get Access Token

  • Tool name: get_access_token
  • Parameters: None
  • Returns: DingTalk API access token string

Get Department List

  • Tool name: get_department_list
  • Parameters:
    • fetch_child: Whether to fetch child departments (optional, default: true)
  • Returns: List of departments including ID, name, parent department ID, etc.

Get Department Users

  • Tool name: get_department_users
  • Parameters:
    • department_id: Department ID (required)
  • Returns: List of users in the specified department

Search User by Name

  • Tool name: search_user_by_name
  • Parameters:
    • name: User's name
  • Returns: Detailed user information including ID, name, phone, email, position, departments, etc.

Important Notes

  • Ensure that DingTalk application credentials are correctly configured
  • Due to DingTalk API limitations, searching for user information requires scanning all departments, which may take some time
  • Docker deployment is recommended for production environments to ensure consistency

How to add this MCP server to Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "cursor-rules-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "cursor-rules-mcp"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later