15 支持
3 部分支持
3 不支持
- ·官方 MCP server,消息/日历/审批基础操作可用
- ·dingtalk-stream SDK 偏向事件监听,非命令式 CLI
- ·部分高级功能(视频会议/低代码)尚未开放 MCP
- ·国内网络环境下稳定,企业级合规支持好
功能覆盖矩阵
消息
3/5 支持 支持 发送文字消息(单聊)
命令
mcp call dingtalk.im.message.send receiver_id=xxx receiver_type=user msg_type=text content='{"content":"Hello"}' 输入参数
receiver_id: 用户 unionId 或 staffId msg_type: text / markdown / actionCard content: 消息体 JSON
示例输出
{ "process_query_key": "xxx", "message_id": "msg_xxx" } 支持 发送消息到群组
命令
mcp call dingtalk.im.message.send receiver_id=grp_xxx receiver_type=openConversation msg_type=markdown content='{"title":"通知","text":"# 部署完成\n服务已上线"}' 示例输出
{ "message_id": "msg_xxx" } 备注:需提前获取群的 openConversationId
支持 通过机器人 Webhook 发消息
命令
python -c "import dingtalk_stream; # 使用 Webhook 推送"
OR: curl -X POST 'https://oapi.dingtalk.com/robot/send?access_token=xxx' -H 'Content-Type: application/json' -d '{"msgtype":"text","text":{"content":"Deploy done"}}' 示例输出
{ "errcode": 0, "errmsg": "ok" } 备注:Webhook 机器人最简单,无需 OAuth,适合 CI/CD 通知
不支持 撤回消息
Gap:钉钉 IM 消息 API 不支持撤回,仅 App 内可手动操作
不支持 获取未读消息数
Gap:未读数量属于个人隐私数据,API 不开放
日历
3/4 支持 支持 创建日程
命令
mcp call dingtalk.calendar.event.create union_id=xxx summary='周会' start='{"dateTime":"2026-05-10T10:00:00+08:00"}' end='{"dateTime":"2026-05-10T11:00:00+08:00"}' 输入参数
summary: 日程标题 start / end: RFC3339 时间(含时区)
示例输出
{ "id": "evt_xxx", "organizer": { "unionId": "xxx" } } 支持 查询日程列表
命令
mcp call dingtalk.calendar.event.list union_id=xxx calendar_id=primary time_min='2026-05-01T00:00:00+08:00' time_max='2026-05-31T23:59:59+08:00'
示例输出
{ "events": [...] } 支持 删除日程
命令
mcp call dingtalk.calendar.event.delete union_id=xxx calendar_id=primary event_id=evt_xxx
示例输出
{} 部分支持 预约会议室
备注:可通过 attendees 添加会议室资源账号实现预约
Gap:无独立预约接口,需先查询会议室 ID,步骤繁琐
文档(钉钉文档)
2/4 支持 支持 创建文档
命令
mcp call dingtalk.doc.create name='会议纪要' space_id=xxx
示例输出
{ "doc_key": "xxx", "url": "https://alidocs.dingtalk.com/..." } 部分支持 读取文档内容
命令
mcp call dingtalk.doc.content.get doc_key=xxx
备注:返回结构化内容,但富文本格式支持有限
Gap:表格、嵌入组件等复杂格式无法完整导出
支持 分享文档
不支持 查看版本历史
Gap:版本历史仅 GUI 可访问,API 未开放
审批
4/4 支持 支持 发起审批
命令
mcp call dingtalk.approval.instance.create process_code=PROC-xxx originator_user_id=xxx form_component_values='[{"name":"请假天数","value":"3"}]' 输入参数
process_code: 审批模板 code(管理员创建) originator_user_id: 发起人 userId form_component_values: 表单字段数组
示例输出
{ "instance_id": "xxxxx" } 支持 查询审批详情
命令
mcp call dingtalk.approval.instance.get instance_id=xxxxx
示例输出
{
"status": "RUNNING",
"result": null,
"form_component_values": [...],
"tasks": [{ "task_status": "PENDING", "approver_user_id": "yyy" }]
}
支持 批量查询审批实例
命令
mcp call dingtalk.approval.instance.list process_code=PROC-xxx start_time=1746057600000 end_time=1748736000000
示例输出
{ "list": ["instance_1", "instance_2"], "next_token": "xxx" } 支持 撤销审批
命令
mcp call dingtalk.approval.instance.terminate instance_id=xxxxx is_system=false remark='申请有误'
示例输出
{} 待办
3/4 支持 支持 创建待办
命令
mcp call dingtalk.todo.task.create union_id=xxx subject='提交周报' due_time=1746316800000
输入参数
subject: 待办标题 due_time: 截止时间(毫秒时间戳)
示例输出
{ "id": "task_xxx" } 支持 完成待办
命令
mcp call dingtalk.todo.task.update task_id=task_xxx union_id=xxx done=true
示例输出
{} 支持 查询待办列表
命令
mcp call dingtalk.todo.task.list union_id=xxx is_done=false
示例输出
{ "tasks": [...], "next_token": "xxx" } 部分支持 指派待办给他人
备注:创建时可指定 executor_ids,但无法修改已创建任务的执行人
Gap:update 接口不支持修改 executor_ids
Gap 总结 (6 个功能缺口)
不支持
消息 › 撤回消息
钉钉 IM 消息 API 不支持撤回,仅 App 内可手动操作
不支持
消息 › 获取未读消息数
未读数量属于个人隐私数据,API 不开放
部分
日历 › 预约会议室
无独立预约接口,需先查询会议室 ID,步骤繁琐
部分
文档(钉钉文档) › 读取文档内容
表格、嵌入组件等复杂格式无法完整导出
不支持
文档(钉钉文档) › 查看版本历史
版本历史仅 GUI 可访问,API 未开放
部分
待办 › 指派待办给他人
update 接口不支持修改 executor_ids