dingtalk-docs
管理钉钉云文档中的文档、文件夹和内容。当用户想要创建文档、搜索文档、读取或写入文档内容、创建文件夹整理文档时使用。也适用于用户提到云文档、在线文档、钉钉文档、钉文档等关键词的场景。不要在用户需要操作多维表、管理日程、发消息或处理审批流时触发。
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/aliramw/dingtalk-docs钉钉云文档 Skill
Overview
用户可能要求你创建、搜索、读取或编辑钉钉云文档。操作之间存在严格依赖关系:必须先获取 ID 才能执行后续操作。
严格禁止
- 禁止编造 ID -- dentryUuid 必须从返回值中提取,编造 ID 会操作到错误文档或报错
- 创建前必须先获取根目录 ID -- 必须先调 get_my_docs_root_dentry_uuid 拿到 rootDentryUuid
- 禁止混淆两个创建方法 -- create_doc_under_node 只能创建文档,create_dentry_under_node 支持文件夹/表格/PPT 等多种类型
- 写入前必须确认 updateType -- 0=覆盖(清空后写入),1=续写(追加到末尾),搞反会丢数据,不确定时必须先问用户
- 禁止只传 ID 读内容 -- 必须拼成完整 URL
https://alidocs.dingtalk.com/i/nodes/{dentryUuid} - 禁止在用户说"表格"时默认创建文档 -- 可能要在线表格(accessType="1")或多维表(accessType="7"),不确定必须先问
- 禁止传错参数类型 -- accessType 必须是字符串,updateType 必须是数字,类型传错会导致静默失败
可用方法列表
| 方法 | 用途 | 必填参数 | 可用性 |
|---|---|---|---|
get_my_docs_root_dentry_uuid | 获取"我的文档"根目录 ID | 无 | 稳定可用 |
list_accessible_documents | 搜索有权限的文档 | 无 (keyword 选填) | 稳定可用 |
create_doc_under_node | 创建在线文档 | name, parentDentryUuid | 稳定可用 |
create_dentry_under_node | 创建节点 (文档/表格/文件夹等) | name, accessType, parentDentryUuid | 稳定可用 |
write_content_to_document | 写入文档内容 (覆盖或续写) | content, updateType, targetDentryUuid | 稳定可用 |
get_document_content_by_url | 通过 URL 获取文档 Markdown 内容 | docUrl | 灰度中,部分实例不可见 |
灰度发布说明(重要)
根据 GitHub issue #1 下维护者的明确回复:get_document_content_by_url 目前在灰度中,全量还需要一点时间。
因此你必须按下面规则处理:
- 如果 MCP 客户端里只看到 5 个工具,不要先判断为配置错误
- 如果缺少
get_document_content_by_url,不要先判断为权限缺失 - 通过钉钉 MCP 广场拿到的 URL,当前很可能因为服务端未放量而看不到该方法
- 在该方法未放开前,Skill 应把“读文档内容”视为条件可用能力,不是所有环境都保证存在
- 向用户说明时要直接说清:这是官方灰度状态,不是本地接入姿势问题
意图判断
用户说"创建文档/新建文档/写个文档/帮我建个文档":
- 创建文档 → 先 get_my_docs_root_dentry_uuid,再 create_doc_under_node
- 创建到指定文件夹 → 用文件夹的 dentryUuid 作为 parentDentryUuid
用户说"建文件夹/新建目录/整理一下文档":
- 创建文件夹 → create_dentry_under_node(accessType="13")
用户说"创建表格/建个PPT/做个脑图":
- 非文档类型 → create_dentry_under_node,accessType: 表格="1",PPT="2",脑图="6",多维表="7"
- 用户说"表格"但不确定类型 → 先问是在线表格还是多维表
关键区分: 在线表格(accessType="1") vs 多维表(accessType="7") vs 文档(用 create_doc_under_node)
用户说"搜索/找文档/查一下/有没有某个文档":
- 搜索 → list_accessible_documents(keyword=关键词)
用户说"读文档/看看内容/打开文档/这个文档写了什么":
- 先确认当前 MCP 服务是否真的暴露了
get_document_content_by_url - 有 URL 且该方法可用 → 直接 get_document_content_by_url
- 有文档名且该方法可用 → 先 list_accessible_documents 搜索,拿到 dentryUuid,拼 URL 再读
- 如果当前实例缺少
get_document_content_by_url→ 明确告诉用户:该读取能力目前仍在官方灰度中,你的实例暂未放开,不要把原因归咎于用户配置
用户说"写入/更新内容/编辑文档/往文档里加点东西":
- 全新内容或替换 → write_content_to_document(updateType=0) 覆盖
- 追加内容 → write_content_to_document(updateType=1) 续写
- 不确定 → 问用户是覆盖还是追加
核心工作流
创建文档并写入:
- get_my_docs_root_dentry_uuid() → 提取 rootDentryUuid
- create_doc_under_node(name, parentDentryUuid=rootDentryUuid) → 提取 dentryUuid
- (HARD-GATE: 必须确认 updateType) write_content_to_document(content, updateType=0, targetDentryUuid=dentryUuid) → 提取写入结果
- get_document_content_by_url(docUrl="https://alidocs.dingtalk.com/i/nodes/{dentryUuid}") → 验证
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-aliramw-dingtalk-docs": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
dingtalk-ai-table
钉钉 AI 表格(多维表)操作技能。使用 mcporter CLI 连接钉钉官方新版 AI 表格 MCP server,基于 baseId / tableId / fieldId / recordId 体系执行 Base、Table、Field、Record 的查询与增删改。适用于创建 AI 表格、搜索表格、读取表结构、批量增删改记录、批量建字段、更新字段配置、按模板建表等场景。需要配置 DINGTALK_MCP_URL 或直接使用 Streamable HTTP URL。
marila-skill-publish
用于发布和更新 OpenClaw 技能到 ClawHub,并同步 GitHub Release。用户提到“发布技能”“发到 ClawHub”“发布这个 skill”“写完就发布”“上线这个技能”等场景时使用。包含完整发布步骤、版本规范、发布前检查清单、GitHub Release 同步规则和常见问题处理。