mcpField
C
coda-automation

coda-automation

github.com/davepoon文档处理3.7k114 次安装今天更新
代码仓库

关于 coda-automation

通过 Composio 的 Coda 工具包和 Rube MCP 自动处理 Coda 文档与数据,适用于管理文档和表格的团队,支持搜索、导出、共享及发布。

主要功能

  1. 01搜索和浏览文档
  2. 02读取并新增或更新表格行
  3. 03列出并获取公式
  4. 04导出页面或文档
  5. 05查看共享设置并授予访问权限
  6. 06发布或取消发布文档

适用场景

  1. 01查找文档并查看页面
  2. 02搜索或更新表格记录
  3. 03将文档导出为 HTML 或 Markdown
  4. 04检查共享设置或授予访问权限

MCP 相关

通过 Rube MCP 使用 Composio 的 Coda 工具包。使用 RUBE_MANAGE_CONNECTIONS 连接 Coda,并通过 RUBE_SEARCH_TOOLS 获取当前工具架构。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davepoon/buildwithclaude --skill coda-automation

安装后在 Claude Code 中输入/coda-automation确认已加载。

详细介绍

通过 Rube MCP 实现 Coda 自动化

通过 Rube MCP 使用 Composio 的 Coda 工具包,自动执行 Coda 文档和数据操作。

工具包文档:composio.dev/toolkits/coda

先决条件

  • 必须已连接 Rube MCP(可用 RUBE_SEARCH_TOOLS)
  • 通过工具包为 coda 的 RUBE_MANAGE_CONNECTIONS 建立有效的 Coda 连接
  • 始终先调用 RUBE_SEARCH_TOOLS,以获取当前的工具架构

设置

获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥,只需添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 能正常响应,以验证 Rube MCP 可用
  2. 调用工具包为 coda 的 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请访问返回的授权链接,完成 Coda 身份验证
  4. 确认连接状态显示为 ACTIVE 后,再运行任何工作流

核心工作流

1. 搜索和浏览文档

适用场景:用户想查找、列出或检查 Coda 文档

工具调用顺序:

  1. CODA_SEARCH_DOCS 或 CODA_LIST_AVAILABLE_DOCS - 查找文档[必需]
  2. CODA_RESOLVE_BROWSER_LINK - 将 Coda URL 解析为文档/页面/表格 ID[替代方案]
  3. CODA_LIST_PAGES - 列出文档中的页面[可选]
  4. CODA_GET_A_PAGE - 获取特定页面的详细信息[可选]

关键参数:

  • query:用于查找文档的搜索词
  • isOwner:筛选用户拥有的文档
  • docId:页面操作所用的文档 ID
  • pageIdOrName:页面标识符或名称
  • url:用于解析操作的浏览器 URL

注意事项:

  • 文档 ID 是字母数字字符串(例如,'AbCdEfGhIj')
  • 将 Coda URL 转换为 API ID 时,CODA_RESOLVE_BROWSER_LINK 是最佳方式
  • 页面名称在同一文档中可能不唯一;建议使用页面 ID
  • 搜索结果包含与用户共享的文档,不仅限于用户拥有的文档
2. 使用表格和数据

适用场景:用户想读取、写入或查询表格数据

工具调用顺序:

  1. CODA_LIST_TABLES - 列出文档中的表格[前置条件]
  2. CODA_LIST_COLUMNS - 获取表格的列定义[前置条件]
  3. CODA_LIST_TABLE_ROWS - 列出所有行,可选使用筛选条件[必需]
  4. CODA_SEARCH_ROW - 按查询条件搜索特定行[替代方案]
  5. CODA_GET_A_ROW - 按 ID 获取特定行[可选]
  6. CODA_UPSERT_ROWS - 在表格中插入或更新行[可选]
  7. CODA_GET_A_COLUMN - 获取特定列的详细信息[可选]

关键参数:

  • docId:包含该表格的文档 ID
  • tableIdOrName:表格标识符或名称
  • query:用于搜索行的筛选查询
  • rows:用于插入或更新操作的行对象数组
  • keyColumns:插入或更新时用于匹配的列 ID
  • sortBy:用于排序结果的列
  • useColumnNames:在行数据中使用列名而不是 ID

注意事项:

  • 表格名称可能包含空格;必要时请进行 URL 编码
  • 如果 keyColumns 中没有匹配项,CODA_UPSERT_ROWS 会插入数据;如果找到匹配项,则会更新数据
  • 为确保插入或更新可靠,keyColumns 必须引用值唯一的列
  • 列 ID 与列名不同;请先列出列,以将名称映射到 ID
  • useColumnNames: true 允许在行数据中使用易读的名称
  • 行数据值必须与列类型匹配(文本、数字、日期等)
3. 管理公式

适用场景:用户想列出或计算文档中的公式

工具调用顺序:

  1. CODA_LIST_FORMULAS - 列出文档中的所有命名公式[必需]
  2. CODA_GET_A_FORMULA - 获取特定公式的当前值[可选]

关键参数:

  • docId:文档 ID
  • formulaIdOrName:公式标识符或名称

注意事项:

  • 公式是在文档中定义的命名计算
  • 公式值在服务端计算;结果反映当前状态
  • 公式名称区分大小写
4. 导出文档内容

适用场景:用户想要将文档或页面导出为 HTML 或 Markdown

工具调用顺序:

  1. CODA_BEGIN_CONTENT_EXPORT - 启动导出任务[必需]
  2. CODA_CONTENT_EXPORT_STATUS - 轮询导出状态,直到完成[必需]

关键参数:

  • docId:要导出的文档 ID
  • outputFormat:导出格式('html' 或 'markdown')
  • pageIdOrName:要导出的特定页面(可选;省略则导出整个文档)
  • requestId:用于轮询状态的导出请求 ID

注意事项:

  • 导出是异步的;轮询状态,直到 status 为 'complete'
  • 大型文档可能需要较长时间才能导出
  • 完成响应中的导出 URL 是临时的;请尽快下载
  • 过于频繁地轮询可能触发速率限制;请使用 2-5 秒的间隔
5. 管理权限和共享

适用场景:用户想要查看或管理文档访问权限

工具调用顺序:

  1. CODA_GET_SHARING_METADATA - 查看当前共享设置[必需]
  2. CODA_GET_ACL_SETTINGS - 获取访问控制列表设置[可选]
  3. CODA_ADD_PERMISSION - 授予用户或电子邮箱访问权限[可选]

关键参数:

  • docId:文档 ID
  • access:权限级别('readonly'、'write'、'comment')
  • principal:包含接收者电子邮箱或用户 ID 的对象
  • suppressEmail:是否跳过共享通知邮件

注意事项:

  • 权限级别:'readonly'、'write'、'comment'
  • 添加权限默认会发送邮件通知;使用 suppressEmail 可阻止发送
  • 并非所有情况下都能通过 API 移除权限;请检查 ACL 设置
6. 发布和自定义文档

适用场景:用户想要发布文档或管理自定义域名

工具调用顺序:

  1. CODA_PUBLISH_DOC - 公开发布文档[必需]
  2. CODA_UNPUBLISH_DOC - 取消发布文档[可选]
  3. CODA_ADD_CUSTOM_DOMAIN - 为已发布的文档添加自定义域名[可选]
  4. CODA_GET_DOC_CATEGORIES - 获取用于发现的文档类别[可选]

关键参数:

  • docId:文档 ID
  • slug:已发布文档的自定义 URL 别名
  • categoryIds:用于提升可发现性的类别 ID

注意事项:

  • 发布后,任何拥有链接的人都可以访问该文档
  • 自定义域名需要配置 DNS
  • 取消发布会移除公开访问权限,但会保留共享访问权限

常见模式

ID 解析

文档 URL -> 文档 ID:

1. Call CODA_RESOLVE_BROWSER_LINK with the Coda URL
2. Extract docId from the response

表格名称 -> 表格 ID:

1. Call CODA_LIST_TABLES with docId
2. Find table by name, extract id

列名称 -> 列 ID:

1. Call CODA_LIST_COLUMNS with docId and tableIdOrName
2. Find column by name, extract id
分页
  • Coda 使用基于游标的分页,并通过 pageToken 指定游标
  • 检查响应中的 nextPageToken
  • 在下一次请求中将其作为 pageToken 传递,直到该字段不存在
  • 默认页面大小因端点而异
行 Upsert 模式
1. Call CODA_LIST_COLUMNS to get column IDs
2. Build row objects with column ID keys and values
3. Set keyColumns to unique identifier column(s)
4. Call CODA_UPSERT_ROWS with rows and keyColumns

已知注意事项

ID 格式:

  • 文档 ID:字母数字字符串
  • 表格/列/行 ID:带前缀的字符串(例如 'grid-abc'、'c-xyz')
  • 使用 RESOLVE_BROWSER_LINK 将 URL 转换为 ID

数据类型:

  • 行值必须与列类型匹配
  • 日期列需要 ISO 8601 格式
  • 单选/多选列需要精确匹配的选项值
  • 人员列需要电子邮箱地址

速率限制:

  • Coda API 对每个令牌设有速率限制
  • 对 429 响应实施退避
  • 通过 UPSERT_ROWS 批量操作行,比逐条更新更高效

快速参考

任务工具标识关键参数
搜索文档CODA_SEARCH_DOCSquery
列出文档CODA_LIST_AVAILABLE_DOCSisOwner
解析 URLCODA_RESOLVE_BROWSER_LINKurl
列出页面CODA_LIST_PAGESdocId
获取页面CODA_GET_A_PAGEdocId, pageIdOrName
列出表格CODA_LIST_TABLESdocId
列出列CODA_LIST_COLUMNSdocId, tableIdOrName
列出行CODA_LIST_TABLE_ROWSdocId, tableIdOrName
搜索行CODA_SEARCH_ROWdocId, tableIdOrName, query
获取行CODA_GET_A_ROWdocId, tableIdOrName, rowIdOrName
新增或更新行CODA_UPSERT_ROWSdocId, tableIdOrName, rows, keyColumns
获取列CODA_GET_A_COLUMNdocId, tableIdOrName, columnIdOrName
按钮CODA_PUSH_A_BUTTONdocId, tableIdOrName, rowIdOrName, columnIdOrName
列出公式CODA_LIST_FORMULASdocId
获取公式CODA_GET_A_FORMULAdocId, formulaIdOrName
开始导出CODA_BEGIN_CONTENT_EXPORTdocId, outputFormat
导出状态CODA_CONTENT_EXPORT_STATUSdocId, requestId
获取共享信息CODA_GET_SHARING_METADATAdocId
添加权限CODA_ADD_PERMISSIONdocId, access, principal
发布文档CODA_PUBLISH_DOCdocId, slug
取消发布文档CODA_UNPUBLISH_DOCdocId
列出 PacksCODA_LIST_PACKS(none)

由 Composio 提供支持

评论

支持 Markdown