Dingtalk MCP

by open-dingtalk

413 downloads Not rated yet
GitHub

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:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Dingtalk MCP
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. 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交流群
欢迎加入钉钉MCP交流群

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.