About Coda MCP Server
An MCP server that bridges to the Coda API, letting MCP clients act on pages and tables in a Coda document. It is a community-built project and is not developed or maintained by Coda.
Key features
- 01List, create, read, update and rename pages
- 02Read and write page content as Markdown
- 03Query, insert, update and delete table rows
- 04Resolve metadata from Coda browser links
Use cases
- 01Letting an AI assistant read or append Coda page content
- 02Managing rows in Coda tables through an MCP client
- 03Operating Coda documents from Cursor or Claude Desktop
MCP support
The server runs as an MCP server and exposes a set of coda_-prefixed tools for documents, pages, tables and rows. MCP clients authenticate with the API_KEY environment variable.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
19Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | No | The query to search for documents by - optional |
Details
From the project READMECoda MCP Server
This project implements a Model Context Protocol (MCP) server that acts as a bridge to interact with the Coda API. It allows an MCP client (like an AI assistant) to perform actions on Coda pages, such as listing, creating, reading, updating, duplicating, and renaming.
Note
This MCP server is not developed or maintained by Coda; it's a community-built project.
Features
The server exposes the following tools to the MCP client:
coda_list_documents: Lists all documents available to the user.coda_list_pages: Lists all pages within the configured Coda document with pagination support.coda_create_page: Creates a new page in the document, optionally under a specified parent page (creating a subpage) and populating it with initial markdown content.coda_get_page_content: Retrieves the content of a specified page (by ID or name) as markdown.coda_replace_page_content: Replaces the content of a specified page with new markdown content.coda_append_page_content: Appends new markdown content to the end of a specified page.coda_duplicate_page: Creates a copy of an existing page with a new name.coda_rename_page: Renames an existing page.coda_peek_page: Peek into the beginning of a page and return a limited number of lines.coda_resolve_link: Resolve metadata given a browser link to a Coda object.coda_list_tables: List tables in a document.coda_list_columns: List columns in a table.coda_list_rows: List rows in a table with optional filtering and sorting.coda_get_row: Get a single row from a table.coda_upsert_rows: Insert or upsert rows into a table.coda_update_row: Update a single row in a table.coda_delete_row: Delete a single row from a table.coda_delete_rows: Delete multiple rows from a table.coda_push_button: Push a button column on a row in a table.
Usage
Add the MCP server to Cursor/Claude Desktop/etc. like so:
{
"mcpServers": {
"coda": {
"command": "npx",
"args": ["-y", "coda-mcp@latest"],
"env": {
"API_KEY": "..."
}
}
}
}
Required environment variables:
API_KEY: Your Coda API key. You can generate one from your Coda account settings.
This MCP server is also available with Docker, like so:
{
"mcpServers": {
"coda": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "API_KEY", "reaperberri/coda-mcp:latest"],
"env": {
"API_KEY": "..."
}
}
}
}
Local Setup
-
Prerequisites:
- Node.js
- pnpm
-
Clone the repository:
git clone <repository-url> cd coda-mcp -
Install dependencies:
pnpm install -
Build the project:
pnpm buildThis compiles the TypeScript code to JavaScript in the
dist/directory.
Running the Server
The MCP server communicates over standard input/output (stdio). To run it, set the environment variables and run the compiled JavaScript file - dist/index.js.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.