Dingtalk MCP
About
Provides various DingTalk services including contacts, department management, robot messaging, calendar, and tasks.
Explore
- 提供钉钉通讯录与部门管理工具
- 支持机器人发送消息和DING通知
- 管理钉钉待办事项(读写权限)
- 操作钉钉日程、签到、工作通知
- 集成钉钉企业文化荣誉管理
- 覆盖钉钉应用管理与服务窗接口
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Dingtalk MCPCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
通过配置MCP客户端(如Claude Desktop)的mcpServers,添加名为dingtalk-mcp的服务器,使用npx -y dingtalk-mcp@latest命令运行,并设置环境变量DINGTALK_Client_ID和DINGTALK_Client_Secret。通过ACTIVE_PROFILES环境变量激活所需的功能模块(如dingtalk-contacts,dingtalk-calendar),设置为ALL则激活全部服务。其他可选变量包括ROBOT_CODE、ROBOT_ACCESS_TOKEN和DINGTALK_AGENT_ID。
createInnerApp
创建企业内部应用,支持H5微应用和小程序两种类型
updateInnerApp
更新企业内部应用信息,包括应用名称、描述、图标、链接等
listAllApp
获取企业所有应用列表,包括基础应用、自建应用和第三方应用
listAllInnerApps
获取企业内部所有应用列表,仅限内部开发的应用
listUserVilebleApp
获取指定用户可使用的企业应用列表及应用信息
getMicroAppScope
获取企业内部应用的可使用范围信息(用户、部门、角色)
setMicroAppScope
更新企业内部应用的可使用范围,支持增删用户、部门、角色
publishInnerAppVersion
发布企业内部小程序版本,支持线上版本和体验版本
rollbackInnerAppVersion
回滚企业内部小程序到历史版本
listInnerAppVersion
获取企业内部小程序的所有版本信息
pageInnerAppHistoryVersion
分页获取企业内部小程序历史版本列表
createEvent
创建一个新的日程,支持设置时间、地点、参与者、提醒、重复规则等
updateEvent
修改已存在的日程信息
deleteEvent
删除指定的日程
getEvent
查询单个日程的详细信息
addAttendee
添加日程参与者,每次最多支持操作500人
removeAttendee
删除日程参与者,每次最多支持操作500人
getAttendees
获取日程参与者列表
getCalendarView
查询日程视图,按时间范围获取日程列表
getDepartmentCheckinRecords
获取部门用户签到记录,以部门维度获取员工签到记录进行统计分析
getUserCheckinRecords
获取指定用户的签到记录,可获取指定人员的签到记录进行统计分析
currentDateTime
获取当前日期和时间
searchUser
根据姓名搜索钉钉通讯录用户的userId。
getUserDetailByUserId
查询用户详情 - 根据userId获取用户的详细信息,包含用户的unionId。
getUserIdByMobile
根据手机号获取用户的userId。
getUserIdByUnionId
根据unionId获取用户的userId。
getDepartmentUsersByDepId
获取指定部门下的所有成员的userId。
getDepartmentDetail
获取指定部门的详细信息,包括部门名称、父部门、管理员、权限设置等完整信息
searchDepartment
根据部门名称搜索部门ID,支持部门名称或拼音搜索
listSubDepartments
获取指定部门的下一级子部门基础信息列表
listSubDepartmentIds
获取指定部门下的所有直属子部门ID列表
getDepartmentParents
获取指定部门的所有父部门ID列表,从当前部门到根部门的完整路径
getUserDepartmentParents
获取指定用户所属的所有父级部门路径,返回用户所有部门归属的层级结构
sendDINGMessageByRobot
使用机器人发送 DING 消息(高优先级提醒)。只有当用户明确提到“发 DING”、“DING 一下”、“钉一下””等关键词时,才调用此工具。 DING 消息通常带有强提醒,不同于普通消息。未明确要求时,请勿调用。
recallDINGMessage
撤回机器人发送的DING消息
mcp_dingtalk-honor_grantHonor
给组织内的员工颁发荣誉,支持单人或多人批量颁发。 颁发后员工会收到荣誉推送消息,可以选择佩戴荣誉挂件。 注意:同一个颁发人不允许并发执行,需要串行调用。
mcp_dingtalk-honor_queryOrgHonors
查询当前企业下可颁发的荣誉列表,包括荣誉ID、名称、描述、图标等信息。 支持分页查询,可用于展示荣誉选择列表。
mcp_dingtalk-honor_queryUserHonors
查询某个员工获得的组织荣誉记录,包括荣誉ID、名称、授予时间、发放人等信息。 可用于展示员工的荣誉墙或荣誉历史。
mcp_dingtalk-honor_createOrgHonor
创建企业荣誉勋章模板。创建后会流入钉钉后台审核,一般5个工作日内审核完毕。 注意事项: 1. 需要主管理员或子管理员权限 2. 企业每周的审核次数有限制(标准版每周10次/专业版每周20次) 3. 不允许并发调用,如需批量创建请串行执行 4. 图片需要先调用上传媒体文件接口获取media_id
mcp_dingtalk-honor_recallHonor
撤销员工已获得的荣誉勋章。 撤销后员工将无法继续佩戴该荣誉。
notableSupportedSearchFilters
AI表格/多维表支持的搜索过滤条件
notableSupportedFieldInfo
AI表格/多维表支持的字段类型和额外属性
notableRecordValuesFormat
AI表格/多维表记录值格式
queryNotables
根据名称查询AI表格/多维表
getNotableSheet
获取AI表格/多维表的单个数据表的ID和名称
getNotableAllSheets
获取AI表格/多维表的所有数据表
updateNotableSheetName
更新AI表格/多维表的单个数据表的名称
createNotableSheet
创建AI表格/多维表的数据表
deleteNotableSheet
删除AI表格/多维表的单个数据表
listNotableRecords
获取AI表格/多维表里指定数据表的多行记录
getNotableRecord
获取AI表格/多维表里指定数据表的单行记录
deleteNotableRecords
删除AI表格/多维表里指定数据表的多行记录
insertNotableRecords
在AI表格/多维表里指定数据表中新增行记录
updateNotableRecords
更新AI表格/多维表里指定数据表的多行记录
getNotableAllFields
获取AI表格/多维表里指定数据表的所有字段
createNotableField
在AI表格/多维表里指定数据表中创建字段
deleteNotableField
删除AI表格/多维表里指定数据表的字段
updateNotableField
更新AI表格/多维表里指定数据表的字段,建议先从「getNotableAllFields」Tool中获取要更新字段的类型。
sendNotice
发送工作通知消息,支持 markdown 消息类型
getSendResult
获取工作通知消息的发送结果,查询消息发送状态和统计信息
getSendProgress
获取工作通知消息的发送进度,实时查询消息发送进度
recallNotice
撤回已发送的工作通知消息,消息撤回后接收人将无法看到该消息
createReport
创建并发送工作日志到指定接收人。 【重要提示】contents参数格式复杂,必须严格按照以下格式构造: 1. 每个content对象必须包含5个字段:content_type, sort, type, content, key 2. content_type固定为"markdown" 3. sort和type的值需要从getTemplateDetail接口获取 4. key为字段名称,content为实际填写的内容 【使用流程】 1. 先调用getTemplateDetail获取模板字段信息 2. 根据返回的fields构造contents数组 3. 调用本接口创建日志 【完整示例】 对于"空白日志"模板: { "template_id": "1740b290d90f07517b0d3b14da2b4b7b", "contents": [ { "content_type": "markdown", "sort": 0, "type": 1, "content": "今天完成了项目开发工作", "key": "内容" } ], "userid": "0420131813787933", "to_chat": true, "dd_from": "MCP_ASSISTANT", "to_userids": ["0420131813787933"] } 【常见参数组合】 - 发送给自己:to_userids=["自己的userid"], to_chat=true - 发送给他人:to_userids=["他人userid1", "他人userid2"], to_chat=true - 发送到群:to_cids=["群id1"], to_chat=false
saveReportDraft
保存日志内容供后续编辑和发送(草稿功能)。 此接口用于保存日志内容但不立即发送,可以后续在钉钉中编辑和发送。 contents参数格式与「createReport」相同,必须包含完整的字段结构。 【使用场景】 - 需要保存日志但暂不发送 - 创建模板供后续使用 - 批量准备多个日志内容 【参数格式】与createLog的contents参数完全相同
getReportList
查询用户发出的日志列表。 可以根据时间范围、模板名称、用户等条件查询日志列表。 支持分页查询,适用于批量处理和数据分析。 【使用场景】 - 查看个人的日志历史 - 统计团队日志数据 - 查找特定时间段的日志 【时间参数说明】 - start_time和end_time最多相隔180天 - 时间格式为Unix时间戳(毫秒) - 可使用JavaScript的Date.now()或new Date().getTime()获取 【查询示例】 查询最近7天的所有日志: { "start_time": 1703145600000, // 7天前的时间戳 "end_time": 1703750400000, // 当前时间戳 "cursor": 0, "size": 10 }
getReportTemplateList
获取用户可见的日志模板列表。 返回当前用户有权限查看和使用的所有日志模板。 模板包含基本信息如名称、ID等,不包含详细字段信息。 【使用场景】 - 查看可用的日志模板 - 获取模板基本信息 - 为用户选择提供模板列表 【返回信息】 - template_list: 模板列表 - 每个模板包含:name(名称)、report_code(ID)等 【后续操作】 获取到模板列表后,可使用getTemplateDetail获取具体模板的字段信息。
getReportTemplateDetail
查看日志模板的详细字段和配置信息。 返回模板的完整字段定义,这是构造createLog的contents参数的关键信息。 每个字段包含field_name、sort、type等属性,用于构造正确的日志内容。 【重要性】 此接口是使用createLog的前置条件!必须先获取模板详情才能正确构造contents参数。 【返回字段说明】 - fields数组:模板的所有字段定义 - 每个field包含: - field_name: 字段名称(用于contents的key) - sort: 排序序号(用于contents的sort) - type: 字段类型(用于contents的type,1=文本) 【使用示例】 1. 调用此接口获取模板详情 2. 根据返回的fields构造contents数组 3. 调用createLog创建日志 对于"空白日志"模板的响应示例: { "fields": [ { "field_name": "内容", "sort": 0, "type": 1 } ], "id": "1740b290d90f07517b0d3b14da2b4b7b", "name": "空白日志" }
sendMessageToGroupByRobot
向群聊发送普通消息(非 DING、非待办)。 例如,当用户说“在群里说一下”、“通知到XX群”但未提及“DING”或“钉一下”时使用。
recallGroupMessageByRobot
撤回机器人发送的群消息
batchSendMessageToUsersByRobot
使用机器人向一个或多个个人用户发送消息。适用于一对一单聊场景。 当用户明确表示要给一个或多个个人发送消息(非群聊)时,使用此工具。 注意:此工具仅用于单聊,不能用于群组。如果目标是群,请使用 sendMessageToGroupByCustomRobot 或者 sendMessageToGroupByRobot。
batchRecallToUsersMessageByRobot
批量撤回机器人给人发送的消息
sendMessageToGroupByCustomRobot
使用群自定义机器人向指定群发送消息。 仅在用户明确要求“使用自定义机器人”或“通过自定义机器人发消息”时调用此工具。 注意:此工具只能用于向群(group)发送消息,不能用于单聊或个人用户。 如果用户未明确提及自定义机器人,请不要调用此工具。
sendServiceWindowMessage
发送服务窗单人消息
batchSendServiceWindowMessage
批量发送服务窗消息
getServiceWindowFollowerInfo
获取关注服务窗的单个用户信息
listServiceWindowFollowersInfo
批量获取关注服务窗用户的信息
getUserFollowStatus
获取用户的服务窗关注状态
listServiceWindows
获取企业下的服务窗列表,以获取服务窗帐号IDaccountId
queryTasks
查询钉钉待办/任务列表
deleteTask
删除钉钉待办
createTask
创建待办
updateTask
更新待办
updateExecutorsTaskStatus
更新执行人待办状态
createProject
创建项目
queryProjectsByProjectName
根据项目名称模糊查询项目信息
queryProjectStatusesByProjectId
根据项目ID查询项目状态信息
queryProjectMembersByProjectId
根据项目ID查询项目成员信息
addProjectMembers
添加项目成员
removeProjectMembers
添加项目成员
listProjectTasks
查询项目中的任务列表
listUserProjectTasks
查询用户项目任务信息列表
queryProjectTaskDetail
查询项目任务详情
createProjectTask
创建项目任务
deleteProjectTask
删除项目任务
updateProjectTaskNote
更新项目任务备注
updateProjectTaskContent
更新项目任务标题
updateProjectTaskExecutors
更新项目任务执行者
updateProjectTaskInvolveMembers
更新项目任务参与者
- createInnerApp: 创建企业内部应用,支持H5微应用和小程序两种类型
- updateInnerApp: 更新企业内部应用信息,包括应用名称、描述、图标、链接等
- listAllApp: 获取企业所有应用列表,包括基础应用、自建应用和第三方应用
- listAllInnerApps: 获取企业内部所有应用列表,仅限内部开发的应用
- listUserVilebleApp: 获取指定用户可使用的企业应用列表及应用信息
- getMicroAppScope: 获取企业内部应用的可使用范围信息(用户、部门、角色)
- setMicroAppScope: 更新企业内部应用的可使用范围,支持增删用户、部门、角色
- publishInnerAppVersion: 发布企业内部小程序版本,支持线上版本和体验版本
- rollbackInnerAppVersion: 回滚企业内部小程序到历史版本
- listInnerAppVersion: 获取企业内部小程序的所有版本信息
- pageInnerAppHistoryVersion: 分页获取企业内部小程序历史版本列表
- createEvent: 创建一个新的日程,支持设置时间、地点、参与者、提醒、重复规则等
- updateEvent: 修改已存在的日程信息
- deleteEvent: 删除指定的日程
- getEvent: 查询单个日程的详细信息
- addAttendee: 添加日程参与者,每次最多支持操作500人
- removeAttendee: 删除日程参与者,每次最多支持操作500人
- getAttendees: 获取日程参与者列表
- getCalendarView: 查询日程视图,按时间范围获取日程列表
- getDepartmentCheckinRecords: 获取部门用户签到记录,以部门维度获取员工签到记录进行统计分析
- getUserCheckinRecords: 获取指定用户的签到记录,可获取指定人员的签到记录进行统计分析
- currentDateTime: 获取当前日期和时间
- searchUser: 根据姓名搜索钉钉通讯录用户的userId。
- getUserDetailByUserId: 查询用户详情 - 根据userId获取用户的详细信息,包含用户的unionId。
- getUserIdByMobile: 根据手机号获取用户的userId。
- getUserIdByUnionId: 根据unionId获取用户的userId。
- getDepartmentUsersByDepId: 获取指定部门下的所有成员的userId。
- getDepartmentDetail: 获取指定部门的详细信息,包括部门名称、父部门、管理员、权限设置等完整信息
- searchDepartment: 根据部门名称搜索部门ID,支持部门名称或拼音搜索
- listSubDepartments: 获取指定部门的下一级子部门基础信息列表
- listSubDepartmentIds: 获取指定部门下的所有直属子部门ID列表
- getDepartmentParents: 获取指定部门的所有父部门ID列表,从当前部门到根部门的完整路径
- getUserDepartmentParents: 获取指定用户所属的所有父级部门路径,返回用户所有部门归属的层级结构
- sendDINGMessageByRobot: 使用机器人发送 DING 消息(高优先级提醒)。只有当用户明确提到“发 DING”、“DING 一下”、“钉一下””等关键词时,才调用此工具。 DING 消息通常带有强提醒,不同于普通消息。未明确要求时,请勿调用。
- recallDINGMessage: 撤回机器人发送的DING消息
- mcp_dingtalk-honor_grantHonor: 给组织内的员工颁发荣誉,支持单人或多人批量颁发。
颁发后员工会收到荣誉推送消息,可以选择佩戴荣誉挂件。
注意:同一个颁发人不允许并发执行,需要串行调用。
- mcp_dingtalk-honor_queryOrgHonors: 查询当前企业下可颁发的荣誉列表,包括荣誉ID、名称、描述、图标等信息。
支持分页查询,可用于展示荣誉选择列表。
- mcp_dingtalk-honor_queryUserHonors: 查询某个员工获得的组织荣誉记录,包括荣誉ID、名称、授予时间、发放人等信息。
可用于展示员工的荣誉墙或荣誉历史。
- mcp_dingtalk-honor_createOrgHonor: 创建企业荣誉勋章模板。创建后会流入钉钉后台审核,一般5个工作日内审核完毕。
注意事项:
1. 需要主管理员或子管理员权限
2. 企业每周的审核次数有限制(标准版每周10次/专业版每周20次)
3. 不允许并发调用,如需批量创建请串行执行
4. 图片需要先调用上传媒体文件接口获取media_id
- mcp_dingtalk-honor_recallHonor: 撤销员工已获得的荣誉勋章。
撤销后员工将无法继续佩戴该荣誉。
- notableSupportedSearchFilters: AI表格/多维表支持的搜索过滤条件
- notableSupportedFieldInfo: AI表格/多维表支持的字段类型和额外属性
- notableRecordValuesFormat: AI表格/多维表记录值格式
- queryNotables: 根据名称查询AI表格/多维表
- getNotableSheet: 获取AI表格/多维表的单个数据表的ID和名称
- getNotableAllSheets: 获取AI表格/多维表的所有数据表
- updateNotableSheetName: 更新AI表格/多维表的单个数据表的名称
- createNotableSheet: 创建AI表格/多维表的数据表
- deleteNotableSheet: 删除AI表格/多维表的单个数据表
- listNotableRecords: 获取AI表格/多维表里指定数据表的多行记录
- getNotableRecord: 获取AI表格/多维表里指定数据表的单行记录
- deleteNotableRecords: 删除AI表格/多维表里指定数据表的多行记录
- insertNotableRecords: 在AI表格/多维表里指定数据表中新增行记录
- updateNotableRecords: 更新AI表格/多维表里指定数据表的多行记录
- getNotableAllFields: 获取AI表格/多维表里指定数据表的所有字段
- createNotableField: 在AI表格/多维表里指定数据表中创建字段
- deleteNotableField: 删除AI表格/多维表里指定数据表的字段
- updateNotableField: 更新AI表格/多维表里指定数据表的字段,建议先从「getNotableAllFields」Tool中获取要更新字段的类型。
- sendNotice: 发送工作通知消息,支持 markdown 消息类型
- getSendResult: 获取工作通知消息的发送结果,查询消息发送状态和统计信息
- getSendProgress: 获取工作通知消息的发送进度,实时查询消息发送进度
- recallNotice: 撤回已发送的工作通知消息,消息撤回后接收人将无法看到该消息
- createReport: 创建并发送工作日志到指定接收人。
【重要提示】contents参数格式复杂,必须严格按照以下格式构造:
1. 每个content对象必须包含5个字段:content_type, sort, type, content, key
2. content_type固定为"markdown"
3. sort和type的值需要从getTemplateDetail接口获取
4. key为字段名称,content为实际填写的内容
【使用流程】
1. 先调用getTemplateDetail获取模板字段信息
2. 根据返回的fields构造contents数组
3. 调用本接口创建日志
【完整示例】
对于"空白日志"模板:
{
"template_id": "1740b290d90f07517b0d3b14da2b4b7b",
"contents": [
{
"content_type": "markdown",
"sort": 0,
"type": 1,
"content": "今天完成了项目开发工作",
"key": "内容"
}
],
"userid": "0420131813787933",
"to_chat": true,
"dd_from": "MCP_ASSISTANT",
"to_userids": ["0420131813787933"]
}
【常见参数组合】
- 发送给自己:to_userids=["自己的userid"], to_chat=true
- 发送给他人:to_userids=["他人userid1", "他人userid2"], to_chat=true
- 发送到群:to_cids=["群id1"], to_chat=false
- saveReportDraft: 保存日志内容供后续编辑和发送(草稿功能)。
此接口用于保存日志内容但不立即发送,可以后续在钉钉中编辑和发送。
contents参数格式与「createReport」相同,必须包含完整的字段结构。
【使用场景】
- 需要保存日志但暂不发送
- 创建模板供后续使用
- 批量准备多个日志内容
【参数格式】与createLog的contents参数完全相同
- getReportList: 查询用户发出的日志列表。
可以根据时间范围、模板名称、用户等条件查询日志列表。
支持分页查询,适用于批量处理和数据分析。
【使用场景】
- 查看个人的日志历史
- 统计团队日志数据
- 查找特定时间段的日志
【时间参数说明】
- start_time和end_time最多相隔180天
- 时间格式为Unix时间戳(毫秒)
- 可使用JavaScript的Date.now()或new Date().getTime()获取
【查询示例】
查询最近7天的所有日志:
{
"start_time": 1703145600000, // 7天前的时间戳
"end_time": 1703750400000, // 当前时间戳
"cursor": 0,
"size": 10
}
- getReportTemplateList: 获取用户可见的日志模板列表。
返回当前用户有权限查看和使用的所有日志模板。
模板包含基本信息如名称、ID等,不包含详细字段信息。
【使用场景】
- 查看可用的日志模板
- 获取模板基本信息
- 为用户选择提供模板列表
【返回信息】
- template_list: 模板列表
- 每个模板包含:name(名称)、report_code(ID)等
【后续操作】
获取到模板列表后,可使用getTemplateDetail获取具体模板的字段信息。
- getReportTemplateDetail: 查看日志模板的详细字段和配置信息。
返回模板的完整字段定义,这是构造createLog的contents参数的关键信息。
每个字段包含field_name、sort、type等属性,用于构造正确的日志内容。
【重要性】
此接口是使用createLog的前置条件!必须先获取模板详情才能正确构造contents参数。
【返回字段说明】
- fields数组:模板的所有字段定义
- 每个field包含:
- field_name: 字段名称(用于contents的key)
- sort: 排序序号(用于contents的sort)
- type: 字段类型(用于contents的type,1=文本)
【使用示例】
1. 调用此接口获取模板详情
2. 根据返回的fields构造contents数组
3. 调用createLog创建日志
对于"空白日志"模板的响应示例:
{
"fields": [
{
"field_name": "内容",
"sort": 0,
"type": 1
}
],
"id": "1740b290d90f07517b0d3b14da2b4b7b",
"name": "空白日志"
}
- sendMessageToGroupByRobot: 向群聊发送普通消息(非 DING、非待办)。 例如,当用户说“在群里说一下”、“通知到XX群”但未提及“DING”或“钉一下”时使用。
- recallGroupMessageByRobot: 撤回机器人发送的群消息
- batchSendMessageToUsersByRobot: 使用机器人向一个或多个个人用户发送消息。适用于一对一单聊场景。 当用户明确表示要给一个或多个个人发送消息(非群聊)时,使用此工具。 注意:此工具仅用于单聊,不能用于群组。如果目标是群,请使用 sendMessageToGroupByCustomRobot 或者 sendMessageToGroupByRobot。
- batchRecallToUsersMessageByRobot: 批量撤回机器人给人发送的消息
- sendMessageToGroupByCustomRobot: 使用群自定义机器人向指定群发送消息。 仅在用户明确要求“使用自定义机器人”或“通过自定义机器人发消息”时调用此工具。 注意:此工具只能用于向群(group)发送消息,不能用于单聊或个人用户。 如果用户未明确提及自定义机器人,请不要调用此工具。
- sendServiceWindowMessage: 发送服务窗单人消息
- batchSendServiceWindowMessage: 批量发送服务窗消息
- getServiceWindowFollowerInfo: 获取关注服务窗的单个用户信息
- listServiceWindowFollowersInfo: 批量获取关注服务窗用户的信息
- getUserFollowStatus: 获取用户的服务窗关注状态
- listServiceWindows: 获取企业下的服务窗列表,以获取服务窗帐号IDaccountId
- queryTasks: 查询钉钉待办/任务列表
- deleteTask: 删除钉钉待办
- createTask: 创建待办
- updateTask: 更新待办
- updateExecutorsTaskStatus: 更新执行人待办状态
- createProject: 创建项目
- queryProjectsByProjectName: 根据项目名称模糊查询项目信息
- queryProjectStatusesByProjectId: 根据项目ID查询项目状态信息
- queryProjectMembersByProjectId: 根据项目ID查询项目成员信息
- addProjectMembers: 添加项目成员
- removeProjectMembers: 添加项目成员
- listProjectTasks: 查询项目中的任务列表
- listUserProjectTasks: 查询用户项目任务信息列表
- queryProjectTaskDetail: 查询项目任务详情
- createProjectTask: 创建项目任务
- deleteProjectTask: 删除项目任务
- updateProjectTaskNote: 更新项目任务备注
- updateProjectTaskContent: 更新项目任务标题
- updateProjectTaskExecutors: 更新项目任务执行者
- updateProjectTaskInvolveMembers: 更新项目任务参与者
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"dingtalk mcp": {
"dingtalk": {
"command": "npx",
"args": [
"-y",
"dingtalk-mcp@latest"
],
"env": {
"DINGTALK_Client_ID": "your dingtalk app client id",
"DINGTALK_Client_Secret": "your dingtalk app cliengt secret",
"ACTIVE_PROFILES": "ALL"
}
}
}
}
}
McpServers
{
"dingtalk": {
"command": "npx",
"args": [
"-y",
"dingtalk-mcp@latest"
],
"env": {
"DINGTALK_Client_ID": "your dingtalk app client id",
"DINGTALK_Client_Secret": "your dingtalk app cliengt secret",
"ACTIVE_PROFILES": "ALL"
}
}
}
钉钉MCP Server
🚀 功能特性
- 钉钉通讯录 - 钉钉部门管理 - 钉钉机器人发消息/DING - 钉钉企业文化荣誉 - 钉钉待办 - 钉钉日程 - 钉钉签到 - 钉钉工作通知 - 钉钉应用管理 - 钉钉服务窗如何使用
{
"mcpServers": {
"dingtalk-mcp": {
"command": "npx",
"args": [
"-y",
"dingtalk-mcp@latest"
],
"env": {
"DINGTALK_Client_ID": "your dingtalk client id",
"DINGTALK_Client_Secret": "your dingtalk client secret",
"ACTIVE_PROFILES": "dingtalk-contacts,dingtalk-calendar"
}
}
}
}
env环境变量说明
1. DINGTALK_Client_ID 2. DINGTALK_Client_Secret 3. ACTIVE_PROFILES,激活哪些钉钉MCP服务,逗号风格,如果是ALL则激活全部。可选集合| ProfileId | Description | Permission |
|--------------------------|--------------------|-------------------------------------------------|
| dingtalk-contacts | 钉钉通讯录,默认激活 |
| dingtalk-department | 钉钉部门管理 |
| dingtalk-robot-send-message | 钉钉机器人发消息/DING,默认激活 | 需要企业内机器人发送消息权限 |
| dingtalk-honor | 钉钉企业文化荣誉 |
| dingtalk-tasks | 钉钉待办 | Todo.Todo.Write<br>Todo.Todo.Read |
| dingtalk-calendar | 钉钉日程 |
| dingtalk-checkin | 钉钉签到 |
| dingtalk-notice | 钉钉工作通知 |
| dingtalk-app-manage | 钉钉应用管理 | qyapi_microapp_manage<br>qyapi_get_microapp_list |
| dingtalk-service-window | 钉钉服务窗 | |
4. ROBOT_CODE,用于发消息/DING的机器人Code
5. ROBOT_ACCESS_TOKEN,群自定义机器人ACCESS_TOKEN,用于自定义机器人发消息
6. DINGTALK_AGENT_ID 用于发送工作通知
如何获取钉钉Client ID和Client Secret
1. 成为钉钉开发者
2. 创建应用
3. 进入应用详情页-凭证与基础信息,获取Client ID和Client Secret
4. 添加权限,根据启用的MCP服务添加相关权限点
如何获取ROBOT_CODE
1. 参考如何创建机器人
📞 支持
- 帮助文档: https://open.dingtalk.com/document/ai-dev/dingtalk-server-api-mcp-overview
- 钉钉开放平台: https://open.dingtalk.com
- MCP协议: https://modelcontextprotocol.io
- 欢迎加入钉钉MCP交流群

Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



