使用说明
钉钉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:钉钉应用客户端IDDINGTALK_Client_Secret:钉钉应用客户端密码ACTIVE_PROFILES:官方钉MCP配置文件,以启用
您可以稍后使用以下命令更新已保存的凭据:
gemini extensions config dingtalk-mcp
如果您只需要基本场景,建议至少启用:
dingtalk-contacts,dingtalk-calendar
如果要使用此存储库直接添加的更多命令,请将以下配置文件添加到 ACTIVE_PROFILES 根据需要:
dingtalk-calendar提供官方日历工具,如getCalendarView和createEventdingtalk-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 .再一次。