coda-mcp
MCP Server for Coda
Documentation
Coda 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
1. Prerequisites:
2. Clone the repository:
git clone
cd coda-mcp3. Install dependencies:
pnpm install4. 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`.
Frequently asked questions
What is coda-mcp?
coda-mcp is MCP Server for Coda
How do I install coda-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is coda-mcp open source?
Yes — it is hosted on GitHub at https://github.com/orellazri/coda-mcp and has 33 stars.
Related MCP tools
Playwright MCP server TypeScript-based implementation. Trusted by 22000+ developers. Trusted by 22000+ developers. Trusted by 22000+ developers.
Official Notion MCP Server TypeScript-based implementation. Trusted by 3400+ developers. Trusted by 3400+ developers. Trusted by 3400+ developers.
Directory for Awesome MCP Servers TypeScript-based implementation. Trusted by 1900+ developers. Trusted by 1900+ developers.
🧩 MCP Gateway - A lightweight gateway service that instantly transforms existing MCP Servers and APIs into MCP servers with zero code changes.
MCP Aggregator, Orchestrator, Middleware, Gateway in one docker TypeScript-based implementation. Trusted by 1400+ developers.
MCP Server for kubernetes management commands TypeScript-based implementation. Trusted by 1100+ developers. Trusted by 1100+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP