← Back to Skills Marketplace
cpsean

Dingtalk Docs Skill

by Sean Liu · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
45
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install dingtalk-docs-skill
Description
当用户想要操作钉钉文档时使用本 Skill。支持:推送本地 markdown 到钉钉知识库、拉取云端文档到本地、覆盖/追加更新文档内容、块级精确编辑、搜索与列出知识库文档、下载文件与附件、导出文档为 PDF/Word、管理节点权限、创建/重命名/移动/复制/删除文档与文件夹、初始化钉钉文档 MCP 配置。当用户想...
README (SKILL.md)

钉钉文档

通过钉钉文档官方 MCP Server 全面操作云端文档。

语言规则

始终使用用户输入的语言进行回复。 如果用户用英文提问,则全程用英文回复;如果用户用中文,则全程用中文回复。无法判断时默认使用中文。

能力范围

  • 拉取云端文档正文为 markdown(保存到本地)
  • 列出知识库/文件夹下的文档节点
  • 按关键词搜索文档
  • 获取文档元信息(标题、类型、创建时间等)
  • 下载钉盘文件或文档内嵌附件

  • 将本地 markdown 推送为钉钉文档(adoc 类型)
  • 覆盖或追加内容到已有文档
  • 按块精确编辑(插入/更新/删除段落、标题、表格等)
  • 上传本地文件(PDF、图片、Word 等)到知识库

管理

  • 创建文件夹
  • 重命名/移动/复制/删除文档和文件夹
  • 导出文档为 PDF 或 Word 格式
  • 查看/添加/修改知识库节点的成员权限

不负责:

  • 飞书、语雀、Notion 等其他平台
  • 只修改本地文件(无云端操作)
  • 钉钉 IM 消息、企业成员管理

前置条件

钉钉文档 MCP Server 必须已配置到当前 Agent 的 MCP 设置中,服务名称为 dingtalk-doc

如果 MCP 工具不可用,先走初始化流程,再执行任何文档操作。

初始化流程(首次使用或 MCP 不可用时)

  1. 告知用户访问帮助手册页面并完成开通:

    请打开以下链接,使用钉钉账号登录后,点击页面上的【开通服务】按钮: https://aihub.dingtalk.com/#/detail?mcpId=9629&detailType=marketMcpDetail

  2. 开通后复制页面右侧 StreamableHttp URL(不是 JSON Config)

  3. 请用户将 URL 粘贴给你

  4. 收到 URL 后,按以下顺序尝试注册 MCP 服务(dingtalk-doc 为服务名,必须为 ASCII):

    方案 A — Claude Code(优先尝试,运行命令看是否成功):

    claude mcp add --transport http --scope user dingtalk-doc "\x3C用户提供的 URL>"
    

    成功则跳到步骤 5。

    方案 B — 写入配置文件(通用方案,大多数 Agent 均可用):

    检测当前环境存在哪些配置文件,找到第一个匹配项写入:

    Agent 配置文件(全局) 配置文件(项目级) mcpServers 键名
    Cursor ~/.cursor/mcp.json .cursor/mcp.json mcpServers
    VS Code Copilot ~/Library/Application Support/Code/User/mcp.json(Mac)\x3Cbr>%APPDATA%\Code\User\mcp.json(Win) .vscode/mcp.json servers
    Roo Code .roo/mcp.json mcpServers
    Gemini CLI ~/.gemini/settings.json mcpServers
    OpenAI Codex ~/.codex/config.json mcpServers

    向目标文件追加(若文件已有 mcpServers/servers,只添加新条目,不覆盖原有内容):

    {
      "mcpServers": {
        "dingtalk-doc": {
          "type": "http",
          "url": "\x3C用户提供的 URL>"
        }
      }
    }
    

    VS Code Copilot 的 .vscode/mcp.json 使用 "servers" 而非 "mcpServers",写入时注意区分。

    成功写入则跳到步骤 5。

    方案 C — 手动兜底(方案 A/B 均不适用时):

    向用户展示以下信息,请其参照所用 Agent 的文档手动添加 MCP 服务,完成后回来继续:

    传输类型:StreamableHttp(HTTP)
    服务名称:dingtalk-doc
    URL:\x3C用户提供的 URL>
    

    用户手动配置完成后,本 Skill 只需确认 MCP 工具可用即可继续。

    URL 中含有个人 API Key,写入配置后不要在回复中重复显示完整 URL。

  5. 询问用户的默认知识库地址:

    请在浏览器中打开你常用的钉钉知识库,把地址栏的 URL 粘贴给我(格式类似 https://alidocs.dingtalk.com/i/spaces/xxxxx/overview)。 如果暂时不设默认知识库,可以跳过,后续每次操作时再指定。

  6. 收到知识库 URL 后,写入 references/dingtalk.config

    DINGTALK_DEFAULT_WORKSPACE_URL=\x3C用户提供的知识库 URL>
    

    此文件已被 .gitignore 排除,不会进入版本控制。无需重启,下次操作时直接读取生效。

  7. MCP 配置写入后,提示用户重启 Agent 客户端以使 MCP 生效,重启后回来继续操作即可。

使用默认知识库

  • 当用户说"列出我的知识库文档"、"推送到知识库"等未指明位置的操作时,优先使用默认知识库 URL
  • 读取顺序:① 读取 references/dingtalk.config 中的 DINGTALK_DEFAULT_WORKSPACE_URL;② 若文件不存在或值为空,检查环境变量 $DINGTALK_DEFAULT_WORKSPACE_URL(兼容已有 Claude Code 配置);③ 两者均无则询问用户
  • 获得 URL 后,调用 get_document_info 传入该 URL 解析出 nodeId,再用 nodeId 调用 list_nodes 或作为 parentNodeId

更改默认知识库

当用户说"更换默认知识库"、"修改知识库地址"等时:

  1. 请用户在浏览器打开目标钉钉知识库,复制地址栏 URL
  2. 收到新 URL 后,覆盖写入 references/dingtalk.config
    DINGTALK_DEFAULT_WORKSPACE_URL=\x3C新的知识库 URL>
    
  3. 无需重启,下次操作时读取新值即生效

安全规则

  • MCP 服务 URL 含有个人 API Key,不得出现在任何版本控制文件中;写入配置后不要在回复中重复显示完整 URL
  • references/dingtalk.config 保存知识库 URL,已被 .gitignore 排除,不会提交到版本控制
  • 如果用户将 URL 粘贴到聊天中,立即写入配置后不再引用

默认路径

  1. 确认 MCP 工具可用(若不可用,进入初始化流程)
  2. 理解用户意图,映射到对应 MCP 工具(见工具映射表)
  3. 如需要 dentryUuid/nodeId 但用户未提供:优先读取 references/dingtalk.config(或环境变量 $DINGTALK_DEFAULT_WORKSPACE_URL)获取默认知识库 URL,调用 get_document_info 解析出 nodeId;否则调用 search_documentslist_nodes 定位目标,让用户确认后再操作
  4. 执行前确认(只读操作除外,见下方说明):向用户展示操作摘要,收到明确同意后再调用 MCP 工具
  5. 执行操作
  6. 报告结果:操作类型、文档标题、文档链接(如有)

执行前确认规则

需要确认的操作(所有会写入或修改云端数据的操作): create_documentupdate_documentcreate_foldercreate_filedelete_documentrename_documentmove_documentcopy_documentinsert_document_blockupdate_document_blockdelete_document_block、文件上传(get_file_upload_info + commit_uploaded_file)、submit_export_jobadd_permissionupdate_permission

无需确认的操作(只读): search_documentslist_nodesget_document_infoget_document_contentlist_document_blockslist_permissionquery_export_jobdownload_filedownload_doc_attachment

确认摘要格式(根据操作类型调整):

即将执行以下操作,请确认:

操作:\x3C创建 / 更新(覆盖)/ 更新(追加)/ 删除 / 重命名 / 移动 / 复制 / 创建文件夹>
目标:\x3C文档标题或文件夹名>
位置:\x3C知识库名或文件夹路径>
说明:\x3C一句话描述本次变更,例如"将以本地文件 xxx.md 的内容覆盖云端文档全文">

确认请回复「是」或「确认」,取消请回复「否」或「取消」。

收到取消时:停止操作,不重试,告知用户已取消。

MCP 工具映射

详见 references/mcp-tools.md。常用映射如下:

用户意图 MCP 工具
推送/创建文档(含 markdown 内容) create_document
拉取云端文档内容到本地 get_document_content
覆盖或追加文档内容 update_document
精确块级编辑(段落/标题/表格等) list_document_blocksinsert/update/delete_document_block
列出知识库/文件夹下的文档 list_nodes
按关键词搜索文档 search_documents
获取文档元信息(标题、类型等) get_document_info
下载钉盘文件 download_file
下载文档内嵌附件 download_doc_attachment
导出文档为 PDF/Word submit_export_jobquery_export_job(轮询至完成)
创建文件夹 create_folder
删除文档节点 delete_document
重命名节点 rename_document
移动节点到其他文件夹 move_document
复制节点到其他文件夹 copy_document
查看节点成员权限 list_permission
添加/修改节点成员权限 add_permission / update_permission

失败处理

  • MCP 工具不可用:停止,进入初始化流程,不要猜测或尝试其他方式调用
  • 未提供目标文档:先用 search_documentslist_nodes 找到目标,让用户确认后再操作
  • update_document 报错:确认目标是否为 adoc(文字类型)文档,非 adoc 文档不支持此操作
  • delete_document 前:确认摘要中必须注明"将移入回收站,30 天内可恢复",收到确认后再执行
  • API 报错(权限/鉴权类):当 API 返回权限不足、无权限、鉴权失败、Forbidden、Unauthorized 等错误时,除了展示原文错误信息外,提示用户可能尚未开通所在组织的钉钉开发者权限,引导用户参考以下链接完成开通:

    请访问钉钉开发者入门文档,确认你已在所在组织中开通了开发者权限: https://open.dingtalk.com/document/dingstart/dingtalk-developer

    开通步骤简述:登录钉钉开放平台 → 选择对应组织 → 完成开发者认证/开通。完成后重新尝试操作。

  • 其他 API 报错:原文展示错误信息,不猜测原因,不自动重试

关键约束

  • update_documentcreate_document 仅支持 adoc(文字类型) 文档,不支持表格、演示、脑图等
  • delete_document 是移入回收站,不是永久删除,30 天内可从回收站恢复
  • list_nodes 只返回直接子节点,不递归。需要深层列表时需要多次调用
  • 导出为异步操作submit_export_job 返回 jobId 后需轮询 query_export_job 直到状态完成,再将下载链接告知用户;轮询间隔建议 1-2 秒
  • Mermaid 文本绘图:通过 create_document 推送的 ```mermaid 代码块会被解析为普通代码块,而非钉钉原生文本绘图块。钉钉的文本绘图是私有块类型,API 层未暴露,无法通过 MCP 创建或转换。推送前告知用户此限制,建议推送后在钉钉编辑器中手动将代码块转换为文本绘图
  • 操作完成后,从返回值中提取文档链接告知用户,方便直接点击查看

对话中上传文件的处理

用户可能在对话中直接上传 markdown 文件并要求推送到钉钉。

已知限制

  • 对话上传的文件内容是临时的,不会持久保存到磁盘,上下文压缩或会话结束后内容即丢失
  • 非 ASCII 文件(如中文 markdown)通过对话上传时,0x80-0x9F 范围的字节会被文本处理层丢弃,导致不可逆乱码。这是客户端文本传输的固有限制,编码修复无法还原丢失的字节

处理规则

  1. 优先使用本地文件路径:当用户要推送含非 ASCII 内容(中文、日文等)的文件时,请用户提供本地磁盘路径,直接读取文件内容,避免编码问题
  2. 对话上传的文件先检查编码:如果用户直接在对话中上传了文件,先检查内容是否出现乱码。如果存在乱码,立即告知用户并请其提供本地文件路径
  3. 纯 ASCII 内容可直接处理:如果上传的文件内容全是 ASCII(英文、代码等),可以直接处理,在同一轮回复中完成:读取内容 -> 确认摘要 -> (用户确认后)调用 create_document
  4. 文档命名:默认使用上传文件名(去掉扩展名)作为钉钉文档标题。如果用户要求修改名字,按用户指定的名字创建
  5. 仅支持 markdown / 纯文本:对话上传的二进制文件(PDF、图片、Word 等)当前不支持直接推送,需要用户提供本地磁盘路径后走文件上传三步流程

资源导航

  • references/mcp-tools.md — 全部 MCP 工具详细说明,按场景分组
Usage Guidance
Install only if you intend to let your agent access and manage DingTalk documents. Treat the MCP URL as a secret, confirm the DingTalk workspace before uploads/exports/permission changes, and be careful with project-level installs because the optional default workspace config may be written into the skill directory.
Capability Tags
requires-sensitive-credentials
Capability Assessment
Purpose & Capability
The skill's stated purpose is to read, sync, export, upload, edit, delete, and manage DingTalk documents through the DingTalk Docs MCP server; the sensitive document and permission capabilities match that purpose and are disclosed in the README and SKILL.md.
Instruction Scope
Write, delete, export, upload, and permission-changing actions require explicit confirmation, while read/download actions do not; that is coherent for a document-management skill, though users should treat reads and downloads as sensitive.
Install Mechanism
Installation/configuration involves adding an MCP server URL that contains a personal API key to local agent configuration files. This is disclosed and necessary for the integration, but users should verify the URL source and avoid sharing it.
Credentials
The artifacts contain markdown/json guidance only, no executable scripts, and use the official DingTalk MCP workflow rather than hidden local code.
Persistence & Privilege
The skill persists MCP configuration and an optional default workspace URL. This persistence is disclosed, but the claimed gitignore protection for references/dingtalk.config is not present in the packaged artifact, so project-level installs should be handled carefully.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install dingtalk-docs-skill
  3. After installation, invoke the skill by name or use /dingtalk-docs-skill
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
dingtalk-docs-skill v1.0.0 - Initial release providing full-featured operation of DingTalk Docs via the official MCP Server. - Supports syncing local markdown to DingTalk, pulling and updating documents (including block-level editing), file/attachment downloads, PDF/Word export, and full document/folder management. - Includes robust initialization guidance with support for Claude Code, Cursor, VS Code, Roo Code, Gemini CLI, and Codex. - Implements safety checks for write operations, default knowledge base configuration, multi-language support, and detailed error handling. - Enforces strict security: user API keys and workspace configs are never exposed or checked into version control. - Special care for file uploads and encoding, especially for non-ASCII markdown.
Metadata
Slug dingtalk-docs-skill
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Dingtalk Docs Skill?

当用户想要操作钉钉文档时使用本 Skill。支持:推送本地 markdown 到钉钉知识库、拉取云端文档到本地、覆盖/追加更新文档内容、块级精确编辑、搜索与列出知识库文档、下载文件与附件、导出文档为 PDF/Word、管理节点权限、创建/重命名/移动/复制/删除文档与文件夹、初始化钉钉文档 MCP 配置。当用户想... It is an AI Agent Skill for Claude Code / OpenClaw, with 45 downloads so far.

How do I install Dingtalk Docs Skill?

Run "/install dingtalk-docs-skill" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Dingtalk Docs Skill free?

Yes, Dingtalk Docs Skill is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Dingtalk Docs Skill support?

Dingtalk Docs Skill is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Dingtalk Docs Skill?

It is built and maintained by Sean Liu (@cpsean); the current version is v1.0.0.

💬 Comments