{
  "markdown": "# DingTalk MCP\n\n<p align=\"right\">\n    <b>English</b> | <a href=\"./README_zh.md\">简体中文</a>\n</p>\n\n[![GitHub last commit](https://img.shields.io/github/last-commit/fishwww-ww/dingtalk-mcp)](https://github.com/fishwww-ww/dingtalk-mcp/commits/main/)\n[![GitHub License](https://img.shields.io/github/license/fishwww-ww/dingtalk-mcp)](https://github.com/fishwww-ww/dingtalk-mcp/blob/main/LICENSE)\n[![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/fishwww-ww/dingtalk-mcp/total)](https://github.com/fishwww-ww/dingtalk-mcp/releases)\n\nThis project integrates the official DingTalk MCP service into Gemini CLI.\nYou can use natural language or custom commands in the terminal to manage schedules, check tasks, manage people, and publish notices directly.\n\n## Features\n\n- **Calendar Management**: Query personal primary calendars and schedules.\n- **Task Statistics**: Check personal todo items and tasks.\n- **People Management**: Look up employee information, departments, and contact details.\n- **Notice Publishing**: Send notices and files to departments.\n\n## Prerequisites\n\n- **Node.js**: Ensure Node.js is installed.\n- **Gemini CLI**: Ensure Gemini CLI is installed and up to date.\n- **DingTalk App**: You need an internal enterprise app with DingTalk Open Platform access.\n\n## Installation Steps\n\n- Create a directory for the project (for example, `dingtalk-mcp`) and place the extension files inside.\n- Open your terminal and navigate to this directory.\n\n## Configuration (Important)\n\nBefore using the extension, you **must** configure your credentials in `gemini-extension.json`.\nThis is required for the MCP server to connect to the DingTalk API.\n\n- Open `gemini-extension.json`.\n- Locate the `settings` array and confirm the required DingTalk credential variables.\n- Gemini CLI stores these values during extension configuration and passes them to the MCP server.\n\n```json\n{\n  \"name\": \"dingtalk-mcp\",\n  \"version\": \"1.0.1\",\n  \"description\": \"A Gemini CLI extension for DingTalk's MCP server.\",\n  \"contextFileName\": \"GEMINI.md\",\n  \"settings\": [\n    {\n      \"name\": \"DingTalk Client ID\",\n      \"description\": \"Client ID for your DingTalk internal enterprise app.\",\n      \"envVar\": \"DINGTALK_Client_ID\",\n      \"sensitive\": false\n    },\n    {\n      \"name\": \"DingTalk Client Secret\",\n      \"description\": \"Client Secret for your DingTalk internal enterprise app.\",\n      \"envVar\": \"DINGTALK_Client_Secret\",\n      \"sensitive\": true\n    }\n  ],\n  \"mcpServers\": {\n    \"dingtalk-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"dingtalk-mcp@latest\"],\n      \"env\": {\n        \"ACTIVE_PROFILES\": \"dingtalk-contacts,dingtalk-calendar\"\n      }\n    }\n  }\n}\n```\n\n**Environment variables:**\n\n- `DINGTALK_Client_ID`: DingTalk app Client ID\n- `DINGTALK_Client_Secret`: DingTalk app Client Secret\n- `ACTIVE_PROFILES`: Official DingTalk MCP profiles to enable\n\nYou can update saved credentials later with:\n\n```bash\ngemini extensions config dingtalk-mcp\n```\n\nIf you only need basic scenarios, it is recommended to enable at least:\n\n```text\ndingtalk-contacts,dingtalk-calendar\n```\n\nIf you want to use more commands added by this repository directly, add the following profiles to `ACTIVE_PROFILES` as needed:\n\n- `dingtalk-calendar` provides official calendar tools such as `getCalendarView` and `createEvent`\n- `dingtalk-department` provides department search and department detail capabilities\n- `dingtalk-tasks` provides task query, creation, update, and deletion\n- `dingtalk-notice` provides work notice sending, progress and result queries, and recall\n\n> For more custom commands and profile details, see [open-dingtalk/dingtalk-mcp](https://github.com/open-dingtalk/dingtalk-mcp)\n\nIf you want to use all features directly, you can set:\n\n```text\nall\n```\n\n## Enable the Extension\n\nAfter updating the configuration file, run the following command to link the extension to Gemini CLI:\n\n```bash\ngemini extensions link .\n```\n\nOr install the extension from GitHub:\n\n```bash\ngemini extensions install https://github.com/fishwww-ww/dingtalk-mcp\n```\n\nAfter running the command, restart your Gemini CLI session.\n\n## Permissions\n\nPermission names in the DingTalk console may vary by app type and version, but at minimum you need to enable the permissions required by the official profiles you turned on:\n\n- Calendar read/write permissions for calendar commands\n- Contacts and organization permissions for people and department lookup commands\n- Task permissions for todo commands\n- Message permissions and additional environment variables for work notices, robot messages, and DING\n\n## Usage\n\n### Natural Language\n\n- \"Show me Zhang San's DingTalk schedule for tomorrow.\"\n- \"Create a release review meeting for Li Si tomorrow at 3 PM.\"\n- \"Move my Weekly Sync tomorrow from 2 PM to 4 PM.\"\n- \"Delete Wang Wu's 1:00 PM schedule tomorrow.\"\n\n### Custom Commands\n\n- `/dingtalk:searchUser \"Zhang San\"`\n- `/dingtalk:getUserDetailByUserId \"manager123\"`\n- `/dingtalk:getUserIdByMobile \"13800138000\"`\n- `/dingtalk:searchDepartment \"Engineering\"`\n- `/dingtalk:getDepartmentDetail \"Platform Engineering\"`\n- `/dingtalk:listSubDepartments \"R&D Center\"`\n- `/dingtalk:getCalendarView \"tomorrow\"`\n- `/dingtalk:getEvent \"View the schedule whose eventId is xxx\"`\n- `/dingtalk:createEvent \"Create a release review for Li Si tomorrow at 3 PM\"`\n- `/dingtalk:updateEvent \"Move Zhang San's weekly meeting tomorrow from 2 PM to 4 PM\"`\n- `/dingtalk:deleteEvent \"Delete Li Si's release review tomorrow at 3 PM\"`\n- `/dingtalk:addAttendee \"Add Wang Wu to the review meeting whose eventId is xxx\"`\n- `/dingtalk:removeAttendee \"Remove Zhao Liu from the review meeting whose eventId is xxx\"`\n- `/dingtalk:getAttendees \"View the attendees of the event whose eventId is xxx\"`\n- `/dingtalk:queryTasks \"View Zhang San's unfinished tasks today\"`\n- `/dingtalk:createTask \"Create a task for Li Si to finish API integration before this Friday\"`\n- `/dingtalk:updateTask \"Mark the task whose taskId is xxx as completed\"`\n- `/dingtalk:deleteTask \"Delete the task whose taskId is xxx\"`\n- `/dingtalk:updateExecutorsTaskStatus \"Mark Wang Wu's executor status as completed in taskId xxx\"`\n- `/dingtalk:sendNotice \"Send tonight's release notice to Platform Engineering\"`\n- `/dingtalk:getSendProgress \"task_id 123456\"`\n- `/dingtalk:getSendResult \"task_id 123456\"`\n- `/dingtalk:recallNotice \"msg_task_id 123456\"`\n- `/dingtalk:sendMessageToGroupByRobot \"Send a release reminder to the group whose openConversationId is xxx\"`\n- `/dingtalk:batchSendMessageToUsersByRobot \"Send direct release reminders to Zhang San and Li Si\"`\n- `/dingtalk:sendDINGMessageByRobot \"Send a DING to Wang Wu to remind him about the meeting in 10 minutes\"`\n\n## Troubleshooting\n\nIf the extension does not respond or returns errors, check the following first:\n\n- **Check Credentials**: Ensure `DINGTALK_Client_ID` and `DINGTALK_Client_Secret` are correct in `gemini-extension.json`.\n- **Check Profiles**: Ensure `ACTIVE_PROFILES` includes the official profiles required by the current command.\n- **Check Permissions**: Ensure your DingTalk app has the necessary Open Platform permissions enabled.\n- **Re-link**: If the extension directory was moved, run `gemini extensions link .` again.\n\n---\n\n_Based on the [Gemini CLI Extensions Guide](https://geminicli.com/docs/extensions/) and [open-dingtalk/dingtalk-mcp](https://github.com/open-dingtalk/dingtalk-mcp)._\n",
  "bytes": 7388,
  "sha": "b7285ca44770b7c74821800986a278d5a4d91a13ccdfc3976898a05d6549040b",
  "repo_slug": "fishwww-ww/dingtalk-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_fishwww_ww_dingtalk_mcp_7503a680/readme"
}