Coda文档服务器

本地MCP服务器,用于处理Coda文档、表格、CSV导出和Coda表格附件。

  • by azournas
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 azournas/coda-fast-mcp

使用说明

Coda MCP服务器

用于处理Coda文档、表格、CSV导出和Coda表格附件的本地MCP服务器。

设置

使用Python 3.10或更高版本,并将服务器依赖项安装到您希望MCP客户端使用的环境中:

cd /path/to/coda-fast-mcp
PYTHON_BIN="$(command -v python3)"
"$PYTHON_BIN" --version
"$PYTHON_BIN" -m pip install -r requirements.txt

在macOS上,系统 python3 可能仍然是3.9。如果是这样,请使用较新的解释器,例如:

PYTHON_BIN="$(command -v python3.12)"
"$PYTHON_BIN" -m pip install -r requirements.txt

如果你更喜欢一个独立的虚拟环境,请先创建一个,并使用它的Python作为 PYTHON_BIN:

python3.12 -m venv .venv
PYTHON_BIN="$(pwd)/.venv/bin/python"
"$PYTHON_BIN" -m pip install -r requirements.txt

创建本地环境文件:

cp .env.example .env

编辑 .env 并设置 CODA_API_KEY. WORKING_DIR_RESTRICTION 是可选的;当您希望文件写入工具仅限于一个目录时,请设置它。

在本地运行

cd /path/to/coda-fast-mcp
PYTHON_BIN="/absolute/path/to/python-with-dependencies"
"$PYTHON_BIN" coda_mcp_server.py

服务器通过stdio与MCP通信,因此手动启动时它看起来是空闲的。MCP客户端将其作为子流程启动。

在Codex注册

注册本地stdio服务器:

cd /path/to/coda-fast-mcp
REPO_DIR="$(pwd)"
PYTHON_BIN="/absolute/path/to/python-with-dependencies"
codex mcp add coda -- "$PYTHON_BIN" "$REPO_DIR/coda_mcp_server.py"

验证它:

codex mcp list
codex mcp get coda

如果你不想使用 .env 文件,在注册过程中传递环境变量:

cd /path/to/coda-fast-mcp
REPO_DIR="$(pwd)"
PYTHON_BIN="/absolute/path/to/python-with-dependencies"
codex mcp add coda \
  --env CODA_API_KEY=your-coda-api-key-here \
  --env WORKING_DIR_RESTRICTION=/absolute/path/where/coda-tools-can-write \
  -- "$PYTHON_BIN" "$REPO_DIR/coda_mcp_server.py"

注册克劳德代码

为此项目注册:

cd /path/to/coda-fast-mcp
REPO_DIR="$(pwd)"
PYTHON_BIN="/absolute/path/to/python-with-dependencies"
claude mcp add coda --scope local -- "$PYTHON_BIN" "$REPO_DIR/coda_mcp_server.py"

或者将其提供给此计算机上的所有Claude Code项目:

cd /path/to/coda-fast-mcp
REPO_DIR="$(pwd)"
PYTHON_BIN="/absolute/path/to/python-with-dependencies"
claude mcp add coda --scope user -- "$PYTHON_BIN" "$REPO_DIR/coda_mcp_server.py"

验证它:

claude mcp list
claude mcp get coda

在Claude Code内部,运行 /mcp 确认服务器已连接。

工具

  • list_docs():列出API密钥可用的Coda文档。
  • list_tables(doc_id):列出Coda文档中的表。
  • get_table_content(doc_id, table_id, output_filepath):将表导出为CSV并返回列元数据。
  • get_table_attachments(doc_id, table_id, attachment_column_name):列出附件列中的附件元数据。
  • download_coda_attachments(doc_id, table_id, attachment_column_name, output_dir):下载Coda附件。
  • unzip_and_inspect_data(zip_filepath, output_dir):解压缩文件并汇总其中的CSV列。