mcp-coda

Install: uvx mcp-coda | PyPI | MCP Registry | Changelog
mcp-coda is a Model Context Protocol (MCP) server for the Coda API โ 54 tools, 12 resources, and 5 prompts covering docs, pages, tables, rows, formulas, controls, permissions, folders, publishing, automations, and analytics. Works with Claude Desktop, Claude Code, Cursor, Windsurf, VS Code Copilot, and any MCP-compatible client.
Built with FastMCP, httpx, and Pydantic.
1-Click Installation


Tip: For other AI assistants (Claude Code, Windsurf, IntelliJ, Gemini CLI), visit the Coda MCP Installation Gateway.
Manual Setup Guides (Click to expand)
Prerequisite: Install uv first (required for all uvx install flows). Install uv.
Claude Code
claude mcp add coda -- uvx mcp-coda
Windsurf & IntelliJ
Windsurf: Add to ~/.codeium/windsurf/mcp_config.json
IntelliJ: Add to Settings | Tools | MCP Servers
Note: The actual server config starts at coda inside the mcpServers object.
{
"mcpServers": {
"coda": {
"command": "uvx",
"args": ["mcp-coda"],
"env": {
"CODA_API_TOKEN": "your-token-here"
}
}
}
}
Gemini CLI
gemini mcp add -e CODA_API_TOKEN=your-token-here coda uvx mcp-coda
pip / uv
Configuration
| Variable | Required | Default | Description |
|---|
CODA_API_TOKEN | Yes | - | Coda API token (get one here) |
CODA_READ_ONLY | No | false | Set to true to disable write operations |
CODA_BASE_URL | No | https://coda.io/apis/v1 | API base URL |
CODA_TIMEOUT | No | 30 | Request timeout in seconds |
CODA_SSL_VERIFY | No | true | Set to false to skip SSL verification |
Supported Token Types
The server checks these environment variables in order โ first match wins:
CODA_API_TOKEN
CODA_TOKEN
CODA_PAT
Tokens are generated at coda.io/account#apiSettings. Tokens grant access to all docs accessible by the token owner. There are no scope restrictions โ access is controlled at the doc level via Coda's sharing settings.
Compatibility
| Client | Supported | Install Method |
|---|
| Claude Desktop | Yes | claude_desktop_config.json |
| Claude Code | Yes | claude mcp add |
| Cursor | Yes | One-click deeplink or .cursor/mcp.json |
| VS Code Copilot | Yes | One-click deeplink or .vscode/mcp.json |
| Windsurf | Yes | ~/.codeium/windsurf/mcp_config.json |
| Any MCP client | Yes | stdio or HTTP transport |
Tools (54)
| Category | Count | Tools |
|---|
| Account | 4 | whoami, resolve browser link, mutation status, rate limit budget |
| Docs | 5 | list, get, create, update, delete |
| Pages | 8 | list, get, create, update, delete, get content, delete content, export |
| Tables | 4 | list tables, get table, list columns, get column |
| Rows | 7 | list, get, insert/upsert, update, delete, bulk delete, push button |
| Formulas | 2 | list, get |
| Controls | 2 | list, get |
| Permissions | 6 | sharing metadata, list, add, delete, search principals, ACL settings |
| Publishing | 3 | list categories, publish, unpublish |
| Folders | 5 | list, get, create, update, delete |
| Automations | 1 | trigger automation |
| Analytics | 7 | doc analytics, doc summary, page analytics, pack analytics, pack summary, formula analytics, analytics updated |
Full tool reference (click to expand)
Account
| Tool | Description |
|---|
coda_whoami | Get current user info |
coda_resolve_browser_link | Convert browser URL to API IDs |
coda_get_mutation_status | Check async write status |
coda_rate_limit_budget | Get remaining rate limit budget |
Docs
| Tool | Description |
|---|
coda_list_docs | List accessible docs |
coda_get_doc | Get doc metadata |
coda_create_doc | Create a new doc |
coda_update_doc | Update doc title/icon |
coda_delete_doc | Delete a doc |
Pages
| Tool | Description |
|---|
coda_list_pages | List pages in a doc |
coda_get_page | Get page metadata |
coda_create_page | Create a page |
coda_update_page | Update page name/content |
coda_delete_page | Delete a page |
coda_get_page_content | Read page content |
coda_delete_page_content | Clear page content |
coda_export_page | Export page as HTML or markdown |
Tables
| Tool | Description |
|---|
coda_list_tables | List tables and views |
coda_get_table | Get table metadata |
coda_list_columns | List columns in a table |
coda_get_column | Get column metadata |
Rows
| Tool | Description |
|---|
coda_list_rows | List and filter rows |
coda_get_row | Get a single row |
coda_insert_rows | Insert or upsert rows |
coda_update_row | Update a row |
coda_delete_row | Delete a row |
coda_delete_rows | Bulk delete rows by filter |
coda_push_button | Push a button column value |
Formulas
| Tool | Description |
|---|
coda_list_formulas | List named formulas |
coda_get_formula | Get formula value |
Controls
| Tool | Description |
|---|
coda_list_controls | List controls |
coda_get_control | Get control value |
Permissions
| Tool | Description |
|---|
coda_get_sharing_metadata | Get sharing config |
coda_list_permissions | List ACL entries |
coda_add_permission | Grant access |
coda_delete_permission | Revoke access |
coda_search_principals | Search users/groups |
coda_get_acl_settings | Get ACL settings |
Publishing
| Tool | Description |
|---|
coda_list_categories | List publishing categories |
coda_publish_doc | Publish a doc |
coda_unpublish_doc | Unpublish a doc |
Folders
| Tool | Description |
|---|
coda_list_folders | List folders |
coda_get_folder | Get folder details |
coda_create_folder | Create a folder |
coda_update_folder | Rename a folder |
coda_delete_folder | Delete a folder |
Automations
| Tool | Description |
|---|
coda_trigger_automation | Trigger an automation rule |
Analytics
| Tool | Description |
|---|
coda_list_doc_analytics | Doc usage metrics |
coda_get_doc_analytics_summary | Aggregated doc metrics |
coda_list_page_analytics | Page usage metrics |
coda_list_pack_analytics | Pack usage metrics |
coda_get_pack_analytics_summary | Aggregated pack metrics |
coda_list_pack_formula_analytics | Formula-level metrics |
coda_get_analytics_updated | Analytics freshness timestamp |
Resources (12)
The server exposes MCP resources that provide ambient context without consuming tool calls.
Data Resources (live API)
| URI | Name | Description |
|---|
coda://docs | Coda Docs | List of docs accessible to the current API token |
coda://docs/{doc_id}/schema | Coda Doc Schema | Table and column definitions for a doc |
Rules (static knowledge)
| URI | Name | Description |
|---|
resource://rules/coda-doc-structure | Coda Doc Structure | Doc/page hierarchy, page types, naming, when to split docs vs folders |
resource://rules/coda-table-design | Coda Table Design | Column types, relations, display columns, row limits, table vs view |
resource://rules/coda-permissions | Coda Permission Model | Doc-level vs page-level locking, ACL, domain sharing, principal types |
resource://rules/coda-automations | Coda Automation Patterns | Webhooks, button triggers, rate limits, payload design, idempotency |
resource://rules/coda-api-patterns | Coda API Best Practices | Rate limits, pagination, async mutations, error handling, retry |
Guides (how-to)