dingtalk-ai-table by aliramw/dingtalk-ai-table
npx skills add https://github.com/aliramw/dingtalk-ai-table --skill dingtalk-ai-table按 新版 MCP schema 工作:
baseIdtableIdfieldIdrecordId不要再用旧版 dentryUuid / sheetIdOrName / fieldIdOrName。
在真正开始任何 AI 表格操作前,必须先检查当前 mcporter 注册的 dingtalk-ai-table MCP server 实际返回的 tools schema。但这个检查不该每次都重复做;同一个 MCP Server 地址只需要强制检查一次。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
mcporter 里 dingtalk-ai-table 对应的 MCP Server 地址。~/.openclaw/workspace/.cache/dingtalk-ai-table/
建议文件名模式:
schema-check-<url-hash>.json
4. 如果当前地址对应的检查标记已经存在,并且结果是“已确认新版 schema”,则跳过重复检查 ,直接继续后续 AI 表格操作。
5. 只有在以下情况才重新强制检查:
* 第一次运行,没有检查标记
* mcporter 里的 MCP Server 地址变了
* 之前检查结果是旧版 schema / 检查失败
* 用户明确要求重新验证
mcporter list dingtalk-ai-table --schema
如果返回的 tools 仍然是旧版这一套,例如出现:
get_root_node_of_my_documentcreate_base_applist_base_tablesadd_base_recordsearch_base_recordlist_base_field或者整体仍然基于:
dentryUuidsheetIdOrNamefieldIdOrName那么说明:虽然 skill 文件已经是新版,但 mcporter 里注册的 MCP server 地址还是旧的,不能继续操作。
此时必须明确提示用户:
https://mcp.dingtalk.com/#/detail?mcpId=9555&detailType=marketMcpDetailmcporter 里已经注册的 dingtalk-ai-table 地址mcporter list dingtalk-ai-table --schema
只有当返回的 tools 已经变成新版 schema,例如出现:
list_basesget_baseget_tablesget_fieldsquery_recordscreate_recordsupdate_recordsdelete_records才允许继续真正的 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_recordsmcporter call dingtalk-ai-table list_bases limit=10 --output json
mcporter call dingtalk-ai-table search_bases query="销售" --output json
mcporter call dingtalk-ai-table get_base baseId="base_xxx" --output json
mcporter call dingtalk-ai-table get_tables \
--args '{"baseId":"base_xxx","tableIds":["tbl_xxx"]}' \
--output json
mcporter call dingtalk-ai-table get_fields \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","fieldIds":["fld_xxx"]}' \
--output json
mcporter call dingtalk-ai-table query_records \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","limit":20}' \
--output json
mcporter call dingtalk-ai-table create_records \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","records":[{"cells":{"fld_name":"张三"}}]}' \
--output json
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 文件create_fields:最多 15get_tables / get_fields:最多 10create_records / update_records / delete_records:最多 100get_base,再 get_tables,必要时 get_fieldsfieldId--args JSONsingleSelect / multipleSelect 过滤时必须传 option ID,不是 option namereferences/api-reference.mdreferences/error-codes.mdWeekly Installs
134
Repository
GitHub Stars
57
First Seen
11 days ago
Security Audits
Installed on
cursor130
github-copilot130
amp130
codex130
kimi-cli130
gemini-cli130
按 新版 MCP schema 工作:
baseIdtableIdfieldIdrecordId不要再用旧版 dentryUuid / sheetIdOrName / fieldIdOrName。
在真正开始任何 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
4. 如果当前地址对应的检查标记已经存在,并且结果是“已确认新版 schema”,则跳过重复检查 ,直接继续后续 AI 表格操作。
5. 只有在以下情况才重新强制检查:
* 第一次运行,没有检查标记
* mcporter 里的 MCP Server 地址变了
* 之前检查结果是旧版 schema / 检查失败
* 用户明确要求重新验证
mcporter list dingtalk-ai-table --schema
如果返回的 tools 仍然是旧版这一套,例如出现:
get_root_node_of_my_documentcreate_base_applist_base_tablesadd_base_recordsearch_base_recordlist_base_field或者整体仍然基于:
dentryUuidsheetIdOrNamefieldIdOrName那么说明:虽然 skill 文件已经是新版,但 mcporter 里注册的 MCP server 地址还是旧的,不能继续操作。
此时必须明确提示用户:
https://mcp.dingtalk.com/#/detail?mcpId=9555&detailType=marketMcpDetailmcporter 里已经注册的 dingtalk-ai-table 地址mcporter list dingtalk-ai-table --schema
只有当返回的 tools 已经变成新版 schema,例如出现:
list_basesget_baseget_tablesget_fieldsquery_recordscreate_recordsupdate_recordsdelete_records才允许继续真正的 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_recordsmcporter call dingtalk-ai-table list_bases limit=10 --output json
mcporter call dingtalk-ai-table search_bases query="销售" --output json
mcporter call dingtalk-ai-table get_base baseId="base_xxx" --output json
mcporter call dingtalk-ai-table get_tables \
--args '{"baseId":"base_xxx","tableIds":["tbl_xxx"]}' \
--output json
mcporter call dingtalk-ai-table get_fields \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","fieldIds":["fld_xxx"]}' \
--output json
mcporter call dingtalk-ai-table query_records \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","limit":20}' \
--output json
mcporter call dingtalk-ai-table create_records \
--args '{"baseId":"base_xxx","tableId":"tbl_xxx","records":[{"cells":{"fld_name":"张三"}}]}' \
--output json
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 文件create_fields:最多 15get_tables / get_fields:最多 10create_records / update_records / delete_records:最多 100get_base,再 get_tables,必要时 get_fieldsfieldId--args JSONsingleSelect / multipleSelect 过滤时必须传 option ID,不是 option namereferences/api-reference.mdreferences/error-codes.mdWeekly Installs
134
Repository
GitHub Stars
57
First Seen
11 days ago
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
cursor130
github-copilot130
amp130
codex130
kimi-cli130
gemini-cli130
xdrop 文件传输脚本:Bun 环境下安全上传下载工具,支持加密分享
20,700 周安装