钉钉企业通讯管理工具

集成钉钉官方MCP服务的Gemini CLI扩展,支持通过自然语言或自定义命令管理日程、任务、人员及发布通知。

  • by fishwww-ww
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 fishwww-ww/dingtalk-mcp

使用说明

钉钉MCP

English | 简体中文

该项目将官方钉MCP服务集成到Gemini CLI中。 您可以在终端中使用自然语言或自定义命令来管理日程、检查任务、管理人员和直接发布通知。

特性

  • 日历管理:查询个人主日历和日程。
  • 任务统计:检查个人待办事项和任务。
  • 人员管理:查找员工信息、部门和联系方式。
  • 公告发布:向各部门发送通知和文件。

先决条件

  • Node.js:确保已安装Node.js。
  • 双子星命令行工具:确保Gemini CLI已安装且为最新版本。
  • 钉钉应用:您需要一个具有钉钉开放平台访问权限的内部企业应用程序。

安装步骤

  • 为项目创建一个目录(例如, dingtalk-mcp)并将扩展文件放入其中。
  • 打开终端并导航到此目录。

配置(重要)

在使用扩展程序之前,您 必须 在中配置您的凭据 gemini-extension.json. 这是MCP服务器连接到DingTalk API所必需的。

  • 打开 gemini-extension.json.
  • 找到 settings 数组并确认所需的DingTalk凭据变量。
  • Gemini CLI在扩展配置期间存储这些值,并将其传递给MCP服务器。
{
  "name": "dingtalk-mcp",
  "version": "1.0.1",
  "description": "A Gemini CLI extension for DingTalk's MCP server.",
  "contextFileName": "GEMINI.md",
  "settings": [
    {
      "name": "DingTalk Client ID",
      "description": "Client ID for your DingTalk internal enterprise app.",
      "envVar": "DINGTALK_Client_ID",
      "sensitive": false
    },
    {
      "name": "DingTalk Client Secret",
      "description": "Client Secret for your DingTalk internal enterprise app.",
      "envVar": "DINGTALK_Client_Secret",
      "sensitive": true
    }
  ],
  "mcpServers": {
    "dingtalk-mcp": {
      "command": "npx",
      "args": ["-y", "dingtalk-mcp@latest"],
      "env": {
        "ACTIVE_PROFILES": "dingtalk-contacts,dingtalk-calendar"
      }
    }
  }
}

环境变量:

  • DINGTALK_Client_ID:钉钉应用客户端ID
  • DINGTALK_Client_Secret:钉钉应用客户端密码
  • ACTIVE_PROFILES:官方钉MCP配置文件,以启用

您可以稍后使用以下命令更新已保存的凭据:

gemini extensions config dingtalk-mcp

如果您只需要基本场景,建议至少启用:

dingtalk-contacts,dingtalk-calendar

如果要使用此存储库直接添加的更多命令,请将以下配置文件添加到 ACTIVE_PROFILES 根据需要:

  • dingtalk-calendar 提供官方日历工具,如 getCalendarView 和 createEvent
  • dingtalk-department 提供部门搜索和部门详细信息功能
  • dingtalk-tasks 提供任务查询、创建、更新和删除
  • dingtalk-notice 提供工作通知发送、进度和结果查询以及召回

有关更多自定义命令和配置文件详细信息,请参见 打开dingtalk/dingtalk mcp

如果要直接使用所有功能,可以设置:

all

启用扩展

更新配置文件后,运行以下命令将扩展链接到Gemini CLI:

gemini extensions link .

或者从GitHub安装扩展:

gemini extensions install https://github.com/fishwww-ww/dingtalk-mcp

运行命令后,重新启动Gemini CLI会话。

权限

钉钉控制台中的权限名称可能因应用程序类型和版本而异,但至少您需要启用您打开的官方配置文件所需的权限:

  • 日历命令的日历读/写权限
  • 人员和部门查找命令的联系人和组织权限
  • todo命令的任务权限
  • 工作通知、机器人消息和DING的消息权限和其他环境变量

用法

自然语言

  • “给我看看张三明天的钉钉时间表。”
  • “明天下午3点为李思安排一次发布审查会议。”
  • “将我的每周同步从明天下午2点移动到下午4点。”
  • “删除王武明天下午1点的日程安排。”

自定义命令

  • /dingtalk:searchUser "Zhang San"
  • /dingtalk:getUserDetailByUserId "manager123"
  • /dingtalk:getUserIdByMobile "13800138000"
  • /dingtalk:searchDepartment "Engineering"
  • /dingtalk:getDepartmentDetail "Platform Engineering"
  • /dingtalk:listSubDepartments "R&D Center"
  • /dingtalk:getCalendarView "tomorrow"
  • /dingtalk:getEvent "View the schedule whose eventId is xxx"
  • /dingtalk:createEvent "Create a release review for Li Si tomorrow at 3 PM"
  • /dingtalk:updateEvent "Move Zhang San's weekly meeting tomorrow from 2 PM to 4 PM"
  • /dingtalk:deleteEvent "Delete Li Si's release review tomorrow at 3 PM"
  • /dingtalk:addAttendee "Add Wang Wu to the review meeting whose eventId is xxx"
  • /dingtalk:removeAttendee "Remove Zhao Liu from the review meeting whose eventId is xxx"
  • /dingtalk:getAttendees "View the attendees of the event whose eventId is xxx"
  • /dingtalk:queryTasks "View Zhang San's unfinished tasks today"
  • /dingtalk:createTask "Create a task for Li Si to finish API integration before this Friday"
  • /dingtalk:updateTask "Mark the task whose taskId is xxx as completed"
  • /dingtalk:deleteTask "Delete the task whose taskId is xxx"
  • /dingtalk:updateExecutorsTaskStatus "Mark Wang Wu's executor status as completed in taskId xxx"
  • /dingtalk:sendNotice "Send tonight's release notice to Platform Engineering"
  • /dingtalk:getSendProgress "task_id 123456"
  • /dingtalk:getSendResult "task_id 123456"
  • /dingtalk:recallNotice "msg_task_id 123456"
  • /dingtalk:sendMessageToGroupByRobot "Send a release reminder to the group whose openConversationId is xxx"
  • /dingtalk:batchSendMessageToUsersByRobot "Send direct release reminders to Zhang San and Li Si"
  • /dingtalk:sendDINGMessageByRobot "Send a DING to Wang Wu to remind him about the meeting in 10 minutes"

故障排除

如果扩展没有响应或返回错误,请先检查以下内容:

  • 检查凭据:确保 DINGTALK_Client_ID 和 DINGTALK_Client_Secret 在以下方面是正确的 gemini-extension.json.
  • 检查配置文件:确保 ACTIVE_PROFILES 包括当前指挥部要求的官方资料。
  • 检查权限:确保您的钉钉应用程序已启用必要的开放平台权限。
  • 重新链接:如果扩展目录已移动,请运行 gemini extensions link . 再一次。

基于 Gemini CLI扩展指南 和 打开dingtalk/dingtalk mcp.