Coda文档操作协议

用于Coda.io API的模型上下文协议服务器,支持AI助手对Coda文档、表格和行进行读写操作。

  • by nkpar
  • Rust
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 nkpar/coda-mcp

使用说明

科达·麦克普

MCP(模型上下文协议)服务器 Coda.io API使AI助手能够读取和写入Coda文档、表格和行。

特性

  • Coda表上的完整CRUD操作
  • 文档和页面内容检索
  • 公式和控制访问
  • 画布页面的异步导出工作流
  • 费率限制处理

快速开始

1.安装

cargo install coda-mcp

2.获取API代币

从获取您的令牌 coda.io/账户 → API设置。

3.配置克劳德桌面

增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 ~/.config/claude/claude_desktop_config.json (Linux):

{
  "mcpServers": {
    "coda": {
      "command": "/Users/YOUR_USERNAME/.cargo/bin/coda-mcp",
      "env": {
        "CODA_API_TOKEN": "your_token_here"
      }
    }
  }
}

4.重新启动克劳德桌面

Coda工具现在将可用。

安装

来自crates.io(推荐)

cargo install coda-mcp

来源

git clone https://github.com/nkpar/coda-mcp.git
cd coda-mcp
cargo build --release

二进制将位于 ./target/release/coda-mcp

预构建二进制文件

检查 发布 页面。

码头工人

不需要Rust工具链。多拱形图像(amd64+arm64),约3MB。

docker pull ghcr.io/nkpar/coda-mcp:latest

克劳德代码 (CLI):

claude mcp add coda -e CODA_API_TOKEN=your_token_here -- docker run --rm -i -e CODA_API_TOKEN ghcr.io/nkpar/coda-mcp:latest

克劳德桌面版 配置:

{
  "mcpServers": {
    "coda": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "CODA_API_TOKEN", "ghcr.io/nkpar/coda-mcp:latest"],
      "env": {
        "CODA_API_TOKEN": "your_token_here"
      }
    }
  }
}

一键安装脚本

对于具有自动配置的Claude Desktop:

git clone https://github.com/nkpar/coda-mcp.git
cd coda-mcp
./scripts/install.sh

配置

1.获取API代币

从获取您的Coda API令牌 coda.io/账户 → API设置。

重要提示: 用于写入操作(create_doc, delete_doc, add_row, update_row, delete_row),确保您的令牌已启用写入权限。对于这些操作,只读令牌将返回403 Forbidden。

2.配置MCP客户端

克劳德桌面版 (~/.config/claude/claude_desktop_config.json):

{
  "mcpServers": {
    "coda": {
      "command": "/path/to/coda-mcp",
      "env": {
        "CODA_API_TOKEN": "your_token_here"
      }
    }
  }
}

克劳德代码 (CLI):

# Binary
claude mcp add coda -e CODA_API_TOKEN=your_token_here -- $HOME/.cargo/bin/coda-mcp

# Or via Docker (no Rust required)
claude mcp add coda -e CODA_API_TOKEN=your_token_here -- docker run --rm -i -e CODA_API_TOKEN ghcr.io/nkpar/coda-mcp:latest

或通过 .mcp.json 在项目根目录中:

{
  "mcpServers": {
    "coda": {
      "command": "/path/to/coda-mcp",
      "env": {
        "CODA_API_TOKEN": "your_token_here"
      }
    }
  }
}

环境变量

变量 必填 描述
CODA_API_TOKEN 是 您的Coda API令牌
CODA_BASE_URL 没有 API基本URL(默认值: https://coda.io/apis/v1)
RUST_LOG 否 日志级别: error, warn, info, debug, trace

工具

工具 说明
list_docs 列出可用文件
get_doc 获取文档详细信息
search_docs 按名称搜索文档
create_doc 创建新文档(可选:文件夹、模板、时区)
delete_doc 删除文档(永久)
list_pages 列出文档中的页面
get_page 获取页面内容(HTML)
list_tables 列出文档中的表
get_table 获取表格详细信息
list_columns 列出表中的列
get_rows 使用可选筛选获取行
get_row 获取特定行
add_row 添加新行
update_row 更新现有行
delete_row 删除一行
list_formulas 列出命名公式
get_formula 获取公式值
list_controls 列表控件(按钮、滑块)

使用示例

# List all documents
list_docs

# Create a new document
create_doc title="My New Doc"

# Create from template in specific folder
create_doc title="Project Plan" folder_id="fl-abc" source_doc="template-xyz"

# Delete a document (permanent!)
delete_doc doc_id="AbCdEfGh"

# Get rows from a table
get_rows doc_id="AbCdEfGh" table_id="grid-xyz" limit=50

# Filter rows
get_rows doc_id="AbCdEfGh" table_id="grid-xyz" query="Status:Active"

# Add a row
add_row doc_id="AbCdEfGh" table_id="grid-xyz" cells={"Name": "John", "Email": "john@example.com"}

# Get page content
get_page doc_id="AbCdEfGh" page_id="canvas-xyz"

速率限制

Coda API有费率限制:

  • 阅读:每6秒100个请求
  • 写作:每6秒10个请求

写入操作返回HTTP 202(排队)。更改可能需要几秒钟才能显示。

安全

  • 从所有日志输出中编辑API令牌
  • 仅针对受信任的主机(coda.io、codahosted.io、store.googleapis.com)验证下载URL
  • 请求限制为1000,以防止资源耗尽
  • 安装脚本使用静默输入令牌并设置限制性文件权限(600)

发展

# Build
cargo build --release

# Run unit & integration tests
cargo test

# Run E2E tests (requires write-enabled API token)
export $(cat .env | xargs) && cargo test --test e2e_tests -- --ignored

# Run with debug logging
RUST_LOG=debug cargo run

# Format & lint
cargo fmt && cargo clippy

看 开发商.md API详细信息和 贡献.md 关于贡献指南。

许可证

MIT许可证。看 许可证 了解详情。