io.github.nkpar/coda
Interact with Coda.io documents, tables, and rows via the Coda API
Que pouvez-vous faire avec io.github.nkpar/coda ?
- Full CRUD operations on Coda tables
- Document and page content retrieval
- Formula and control access
- Async export workflow for canvas pages
- Rate limit handling
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
ghcr.io/nkpar/coda-mcp:0.2.1claude mcp add coda -e 'CODA_API_TOKEN=<your coda_api_token>' -- docker run -i --rm ghcr.io/nkpar/coda-mcp:0.2.1
{
"mcpServers": {
"coda": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/nkpar/coda-mcp:0.2.1"
],
"env": {
"CODA_API_TOKEN": "<your coda_api_token>"
}
}
}
}
Variables d'environnement
CODA_API_TOKENobligatoire secret Coda API token from coda.io/account
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
coda-mcp
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
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):
{
"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)
cargo install coda-mcp
From Source
git clone https://github.com/nkpar/coda-mcp.git
cd coda-mcp
cargo 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.
docker pull ghcr.io/nkpar/coda-mcp:latest
Claude Code (CLI):
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:
{
"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:
git clone https://github.com/nkpar/coda-mcp.git
cd 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):
{
"mcpServers": {
"coda": {
"command": "/path/to/coda-mcp",
"env": {
"CODA_API_TOKEN": "your_token_here"
}
}
}
}
Claude Code (CLI):
# Binary
claude 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:
{
"mcpServers": {
"coda": {
"command": "/path/to/coda-mcp",
"env": {
"CODA_API_TOKEN": "your_token_here"
}
}
}
}
Environment Variables
| Variable | Required | Description |
|---|---|---|
CODA_API_TOKEN | Yes | Your Coda API token |
CODA_BASE_URL | No | API base URL (default: https://coda.io/apis/v1) |
RUST_LOG | No | Log level: error, warn, info, debug, trace |
Tools
| Tool | Description |
|---|---|
list_docs | List available documents |
get_doc | Get document details |
search_docs | Search documents by name |
create_doc | Create a new document (optional: folder, template, timezone) |
delete_doc | Delete a document (permanent) |
list_pages | List pages in a document |
get_page | Get page content (HTML) |
list_tables | List tables in a document |
get_table | Get table details |
list_columns | List columns in a table |
get_rows | Get rows with optional filtering |
get_row | Get a specific row |
add_row | Add a new row |
update_row | Update an existing row |
delete_row | Delete a row |
list_formulas | List named formulas |
get_formula | Get formula value |
list_controls | List controls (buttons, sliders) |
Usage Examples
# List all documents
list_docs
# Create a new document
create_doc title="My New Doc"
# Create from template in specific folder
create_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 table
get_rows doc_id="AbCdEfGh" table_id="grid-xyz" limit=50
# Filter rows
get_rows doc_id="AbCdEfGh" table_id="grid-xyz" query="Status:Active"
# Add a row
add_row doc_id="AbCdEfGh" table_id="grid-xyz" cells={"Name": "John", "Email": "john@example.com"}
# Get page content
get_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
# Build
cargo build --release
# Run unit & integration tests
cargo test
# Run E2E tests (requires write-enabled API token)
export $(cat .env | xargs) && cargo test --test e2e_tests -- --ignored
# Run with debug logging
RUST_LOG=debug cargo run
# Format & lint
cargo fmt && cargo clippy
See DEVELOPER.md for API details and CONTRIBUTING.md for contribution guidelines.
License
MIT License. See LICENSE for details.
Questions fréquentes
Qu'est-ce que io.github.nkpar/coda ?
Interact with Coda.io documents, tables, and rows via the Coda API
Comment installer io.github.nkpar/coda ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add coda -e 'CODA_API_TOKEN=<your coda_api_token>' -- docker run -i --rm ghcr.io/nkpar/coda-mcp:0.2.1. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour io.github.nkpar/coda ?
Oui. Il attend CODA_API_TOKEN, à renseigner dans sa configuration.
io.github.nkpar/coda est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient io.github.nkpar/coda ?
Il est publié par nkpar. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.