Coda

io.github.nkparPublished by GitHub account nkparv0.2.1Updated Oct 24, 2026

Interact with Coda.io documents, tables, and rows via the Coda API

VerifiedSTDIODesktop onlyDatabasesProductivity & Workflow

Overview

AI-generated overview

Local MCP server that lets an AI assistant read and write Coda.io documents, tables, rows, pages, formulas and controls through the Coda API.

What you can do
List, search, inspect, create and permanently delete documents, and list pages with their HTML content and export workflow for canvas pages. List tables and columns, and read rows with optional filtering. Add, update and delete rows in Coda tables. List named formulas and controls and read formula values. Handle Coda API rate limits and queued write responses.
When to use it
Useful when your team keeps project plans, trackers or structured data in Coda and you want an assistant to look things up, summarize pages, or add and edit rows without switching apps. Also fits workflows that create documents from templates or folders.
Requirements
Runs as a local process on the user's machine (desktop only), installed via cargo, a pre-built binary, or the Docker image. Requires a Coda API token supplied in the CODA_API_TOKEN environment variable; write operations need a token with write permissions. Optional CODA_BASE_URL and RUST_LOG variables. Network access to the Coda API.
Before you install
The token grants access to your Coda workspace; write-enabled tokens allow creating, updating and permanently deleting documents and rows. delete_doc is permanent. Writes are queued and may take a few seconds to appear. Keep the token out of shared config files.

Installation

In SourceWeft

  1. Open Coda in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

coda-mcp

[MCP Registry] [Crates.io] [CI] [codecov] [License: MIT] [MSRV]

MCP (Model Context Protocol) server for Coda.io API. Enables AI assistants to read and write Coda documents, tables, and rows.

Features

  • Full CRUD operations on Coda tables
  • Document and page content retrieval
  • Formula and control access
  • Async export workflow for canvas pages
  • Rate limit handling

Quick Start

1. Install

bash
cargo install coda-mcp

2. Get API Token

Get your token from coda.io/account → API settings.

3. Configure Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or ~/.config/claude/claude_desktop_config.json (Linux):

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

4. Restart Claude Desktop

The Coda tools will now be available.

Installation

From crates.io (Recommended)

bash
cargo install coda-mcp

From Source

bash
git clone https://github.com/nkpar/coda-mcp.gitcd coda-mcpcargo build --release

Binary will be at ./target/release/coda-mcp

Pre-built Binaries

Check the Releases page.

Docker

No Rust toolchain required. Multi-arch image (amd64 + arm64), ~3MB.

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

Claude Code (CLI):

bash
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

Claude Desktop config:

json
{  "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"      }    }  }}

One-Click Install Script

For Claude Desktop with automatic configuration:

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

Configuration

1. Get API Token

Get your Coda API token from coda.io/account → API settings.

Important: For write operations (create_doc, delete_doc, add_row, update_row, delete_row), ensure your token has write permissions enabled. Read-only tokens will return 403 Forbidden for these operations.

2. Configure MCP Client

Claude Desktop (~/.config/claude/claude_desktop_config.json):

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

Claude Code (CLI):

bash
# Binaryclaude 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

Or via .mcp.json in project root:

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

Environment Variables

VariableRequiredDescription
CODA_API_TOKENYesYour Coda API token
CODA_BASE_URLNoAPI base URL (default: https://coda.io/apis/v1)
RUST_LOGNoLog level: error, warn, info, debug, trace

Tools

ToolDescription
list_docsList available documents
get_docGet document details
search_docsSearch documents by name
create_docCreate a new document (optional: folder, template, timezone)
delete_docDelete a document (permanent)
list_pagesList pages in a document
get_pageGet page content (HTML)
list_tablesList tables in a document
get_tableGet table details
list_columnsList columns in a table
get_rowsGet rows with optional filtering
get_rowGet a specific row
add_rowAdd a new row
update_rowUpdate an existing row
delete_rowDelete a row
list_formulasList named formulas
get_formulaGet formula value
list_controlsList controls (buttons, sliders)

Usage Examples

# List all documentslist_docs
# Create a new documentcreate_doc title="My New Doc"
# Create from template in specific foldercreate_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 tableget_rows doc_id="AbCdEfGh" table_id="grid-xyz" limit=50
# Filter rowsget_rows doc_id="AbCdEfGh" table_id="grid-xyz" query="Status:Active"
# Add a rowadd_row doc_id="AbCdEfGh" table_id="grid-xyz" cells={"Name": "John", "Email": "[email protected]"}
# Get page contentget_page doc_id="AbCdEfGh" page_id="canvas-xyz"

Rate Limits

Coda API has rate limits:

  • Reading: 100 requests per 6 seconds
  • Writing: 10 requests per 6 seconds

Write operations return HTTP 202 (queued). Changes may take a few seconds to appear.

Security

  • API tokens are redacted from all log output
  • Download URLs validated against trusted hosts only (coda.io, codahosted.io, storage.googleapis.com)
  • Request limits capped at 1000 to prevent resource exhaustion
  • Install script uses silent input for tokens and sets restrictive file permissions (600)

Development

bash
# Buildcargo build --release
# Run unit & integration testscargo test
# Run E2E tests (requires write-enabled API token)export $(cat .env | xargs) && cargo test --test e2e_tests -- --ignored
# Run with debug loggingRUST_LOG=debug cargo run
# Format & lintcargo fmt && cargo clippy

See DEVELOPER.md for API details and CONTRIBUTING.md for contribution guidelines.

License

MIT License. See LICENSE for details.

Source: README.md at commit 2d40cbb

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts