Summary
钉钉 AI 表格(多维表)操作技能。使用 mcporter CLI 连接钉钉官方新版 AI 表格 MCP server,基于 baseId / tableId / fieldId / recordId 体系执行 Base、Table、Field、Record 的查询与增删改。适用于创建 AI 表格、搜索表格、读取表结构、批量增删改记录、批量建字段、更新字段?
modelscope.cn
钉钉 AI 表格(多维表)操作技能。使用 mcporter CLI 连接钉钉官方新版 AI 表格 MCP server,基于 baseId / tableId / fieldId / recordId 体系执行 Base、Table、Field、Record 的查询与增删改。适用于创建 AI 表格、搜索表格、读取表结构、批量增删改记录、批量建字段、更新字段?
钉钉 AI 表格(多维表)操作技能。使用 mcporter CLI 连接钉钉官方新版 AI 表格 MCP server,基于 baseId / tableId / fieldId / recordId 体系执行 Base、Table、Field、Record 的查询与增删改。适用于创建 AI 表格、搜索表格、读取表结构、批量增删改记录、批量建字段、更新字段?
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
钉钉知识库和文档管理操作。当用户提到"钉钉文档"、"知识库"、"新建文档"、"查看文档目录"、"读取文档?
1.8K installs钉钉消息发送。当用户提到"钉钉消息"、"发消息"、"发通知"、"群通知"、"群消息"、"Webhook"、"机器人…
1.6K installs钉钉 AI 表格(多维表格)操作。当用户提到"钉钉AI表格"、"AI表格"、"多维表格"、"工作表"、"字段"、"…
647 installs钉钉 AI 表格(多维表)操作技能。使用 mcporter CLI 连接钉钉官方新版 AI 表格 MCP server,基于 bas…
610 installsBridge DingTalk outgoing webhook messages to Clawdbot Gateway and send replies back to DingTalk…
523 installs钉钉?
402 installsOther skills from modelscope.cn · top by installs.
npx skills add https://modelscope.cn
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
10,842 B
mcporter call '<DINGTALK_MCP_URL>' .list_bases limit=5
mcporter call '<DINGTALK_MCP_URL>' .create_base baseName='我的项目'
mcporter call '<DINGTALK_MCP_URL>' .create_records \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","records":[{"cells":{"fld_name":"张三"}}]}'
mcporter call '<DINGTALK_MCP_URL>' .query_records \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","limit":10}'
python3 scripts/import_records.py base_xxx tbl_xxx data.csv
按 新版 MCP schema 工作:
baseIdtableIdfieldIdrecordId不要再用旧版 dentryUuid / sheetIdOrName / fieldIdOrName。
推荐使用 mcporter 0.8.1 及以上版本。
输出模式兼容说明:
mcporter 0.8.1+ 可直接调用--output textmcporter 的输出处理方式在真正开始任何 AI 表格操作前,必须先检查当前 mcporter 注册的 dingtalk-ai-table MCP server 实际返回的 tools schema。但这个检查不该每次都重复做;同一个 MCP Server 地址只需要强制检查一次。
mcporter 里 dingtalk-ai-table 对应的 MCP Server 地址。~/.openclaw/workspace/.cache/dingtalk-ai-table/
建议文件名模式:
schema-check-<url-hash>.json
- 第一次运行,没有检查标记 - mcporter 里的 MCP Server 地址变了 - 之前检查结果是旧版 schema / 检查失败 - 用户明确要求重新验证
mcporter list dingtalk-ai-table --schema
如果返回的 tools 仍然是旧版这一套,例如出现:
getrootnodeofmy_documentcreatebaseapplistbasetablesaddbaserecordsearchbaserecordlistbasefield或者整体仍然基于:
dentryUuidsheetIdOrNamefieldIdOrName那么说明:虽然 skill 文件已经是新版,但 mcporter 里注册的 MCP server 地址还是旧的,不能继续操作。
此时必须明确提示用户:
https://mcp.dingtalk.com/#/detail?mcpId=9555&detailType=marketMcpDetail
mcporter 里已经注册的 dingtalk-ai-table 地址mcporter list dingtalk-ai-table --schema
只有当返回的 tools 已经变成新版 schema,例如出现:
list_basesget_baseget_tablesget_fieldsquery_recordscreate_recordsupdate_recordsdelete_recordsprepareattachmentupload才允许继续真正的 AI 表格操作。
一旦确认当前 MCP Server 地址返回的是新版 schema,就把结果写入本地检查标记。后续只要 mcporter 里的 dingtalk-ai-table 地址没变,就不要再重复做这一步守门检查。
当前 mcporter 里注册的 dingtalk-ai-table 还是旧版 MCP schema,暂时不能按新版技能操作。
请打开 https://mcp.dingtalk.com/#/detail?mcpId=9555&detailType=marketMcpDetail ,点击右侧“获取 MCP Server 配置”按钮,复制新的 MCP Server 地址,并替换 mcporter 里已注册的 dingtalk-ai-table 地址。替换后重新检查 schema,确认出现 list_bases / get_base / create_records 等新版 tools 后,再继续操作 AI 表格。
npm install -g mcporter
# 或
bun install -g mcporter
验证:
mcporter --version
在钉钉 MCP 广场 https://mcp.dingtalk.com/#/detail?mcpId=9555&detailType=marketMcpDetail 获取新版钉钉 AI 表格 MCP 的 Streamable HTTP URL。
方式一:直接配置到 mcporter
mcporter config add dingtalk-ai-table --url "<Streamable_HTTP_URL>"
方式二:使用环境变量
export DINGTALK_MCP_URL="<Streamable_HTTP_URL>"
这个 URL 带访问令牌,等同密码,不要泄露。
脚本读取本地文件时,会优先使用 OPENCLAW_WORKSPACE 作为允许根目录:
export OPENCLAW_WORKSPACE="$HOME/.openclaw/workspace"
未设置时默认使用当前工作目录。
list_basessearch_basesget_basecreate_baseupdate_basedelete_basesearch_templatesget_tablescreate_tableupdate_tabledelete_tableget_fieldscreate_fieldsupdate_fielddelete_fieldquery_recordscreate_recordsupdate_recordsdelete_recordsprepareattachmentuploadmcporter call dingtalk-ai-table list_bases limit=10
mcporter call dingtalk-ai-table search_bases query="销售"
mcporter call dingtalk-ai-table get_base baseId="base_xxx"
mcporter call dingtalk-ai-table get_tables \
--args '{"baseId":"base_xxx","tableIds":["tbl_xxx"]}'
mcporter call dingtalk-ai-table get_fields \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","fieldIds":["fld_xxx"]}'
mcporter call dingtalk-ai-table query_records \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","limit":20}'
mcporter call dingtalk-ai-table create_records \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","records":[{"cells":{"fld_name":"张三"}}]}'
attachment 字段支持三种写法:
方式一:先上传,再写 fileToken(推荐,可靠)
# Step 1:申请上传地址(返回 uploadUrl 和 fileToken)
mcporter call dingtalk-ai-table prepare_attachment_upload \
--args '{"baseId":"base_xxx","fileName":"report.pdf","size":102400,"mimeType":"application/pdf"}'
# Step 2:把文件 PUT 到 uploadUrl(必须带 Content-Type,值必须与 mimeType 完全一致)
curl -X PUT "<uploadUrl>" \
-H "Content-Type: application/pdf" \
--data-binary @report.pdf
# Step 3:把 fileToken 写入记录
mcporter call dingtalk-ai-table create_records \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","records":[{"cells":{"fld_attach":[{"fileToken":"ft_xxx"}]}}]}'
方式二:直接传外链 URL(异步转存,best-effort)
mcporter call dingtalk-ai-table create_records \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","records":[{"cells":{"fld_attach":[{"url":"https://example.com/file.pdf"}]}}]}'
URL 转存是 best-effort 异步链路,返回成功仅表示已受理,不保证立即可读。可靠写入请用 fileToken 方式。
方式三:原样回传已有附件数据(保留 / 追加已有附件时使用)
从 query_records 读出的 attachment 单元格数据是完整对象数组,字段形状如下:
[
{
"filename": "a.xlsx",
"size": 92250,
"type": "xls",
"resourceId": "<id>",
"resourceUrl": "<resourceUrl>"
}
]
其中 type 是文件类别枚举,常见值为 "xls"、"image" 等;resourceUrl 通常为有时效的下载链接。
如需保留已有附件,把读出的值原样塞回即可。如需追加新附件,把新的 {"fileToken":"ft_xxx"} 与已有对象合并成一个数组一起传入。
update_records 的 attachment 字段格式相同,传入后会整体覆盖该字段。
python3 scripts/bulk_add_fields.py <baseId> <tableId> fields.json
fields.json 示例:
[
{"fieldName":"任务名","type":"text"},
{"fieldName":"优先级","type":"singleSelect","config":{"options":[{"name":"高"},{"name":"中"},{"name":"低"}]}}
]
兼容项:
name 会自动映射为 fieldNamephone 会自动映射为 telephonepython3 scripts/import_records.py <baseId> <tableId> data.csv
python3 scripts/import_records.py <baseId> <tableId> data.json 50
说明:
fieldId 解释- [{"cells": {...}}] - [{"fld_xxx": "value"}]
OPENCLAW_WORKSPACE 沙箱限制.json / .csv 文件- createfields:最多 15 - gettables / getfields:最多 10 - createrecords / updaterecords / deleterecords:最多 100
getbase,再 gettables,必要时 get_fieldsfieldId--args JSONsingleSelect / multipleSelect 过滤时必须传 option ID,不是 option namereferences/api-reference.mdreferences/error-codes.md