Mcp Coda

io.github.vish288由 GitHub 帳號 vish288 發布v0.13.0更新於 Nov 8, 2026

Coda MCP server (MCP 2026-07-28): docs, pages, tables, rows, automations; writes or read-only

概覽

AI 產生的概覽

給 Coda 用的 MCP 伺服器:讓助理讀寫文件、頁面、表格與資料列,並管理權限、資料夾、發布與分析資料。

可以做什麼
  • 列出、建立、更新與刪除文件、頁面與資料夾,讀取或匯出頁面內容
  • 列出表格與欄位,並列出、插入、upsert、更新或刪除資料列,包含批次刪除與按鈕觸發
  • 讀取具名公式與控制項的值
  • 管理共用:列出、新增與移除權限,搜尋使用者與群組,讀取 ACL 設定
  • 發布或取消發布文件,觸發自動化規則
  • 取得文件、頁面、Pack 與公式的使用分析資料
適用情境
適合需要助理在 Coda 工作區內作業的情況:整理或編輯文件與頁面、查詢與更新表格資料列、稽核共用權限、查看使用分析。若只想讓助理查資料,可用唯讀模式啟動。
執行需求
透過 uvx(需先安裝 uv)或 pip 在本機執行,也可使用 Docker 映像;預設為 stdio,另支援 streamable-http 與 sse。需要 Coda API 權杖,放在 CODA_API_TOKEN(也接受 CODA_TOKEN、CODA_PAT)。若把 HTTP 傳輸綁定到非回送位址,還需設定至少 16 個字元的 CODA_HTTP_BEARER_TOKEN。選用設定包括 CODA_BASE_URL 與 CODA_TIMEOUT。
安裝前請注意
Coda 權杖沒有作用域限制,可存取權杖擁有者能存取的所有文件,正式環境建議使用專用帳號。開啟寫入後,助理可建立、更新、刪除文件、頁面、資料列與資料夾,變更權限、發布文件並觸發自動化。MCP_READ_ONLY 或 CODA_READ_ONLY 的唯讀鎖定,只有在使用者無法修改的啟動設定中設定才有效。伺服器會自動載入工作目錄下的 .env 檔,已棄用的 --coda-token 參數會讓權杖出現在行程清單與 shell 歷史中。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Mcp Coda,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

mcp-coda

[PyPI version] [PyPI downloads] [Python] [License: MIT] [CI] [MCP Registry]

Install: uvx mcp-coda | PyPI | MCP Registry | Changelog

bash
uvx mcp-coda                          # with writesMCP_READ_ONLY=true uvx mcp-coda       # locked read-only: write tools are not listed

mcp-coda is a Model Context Protocol (MCP) server for Coda. It lets an AI assistant read and write Coda docs, pages, tables, and rows through the Coda API. It also runs formulas, manages permissions and folders, publishes docs, and triggers automations. The server exposes 54 tools, 12 resources, and 5 prompts. It supports the MCP 2026-07-28 specification (often called MCP 2.0) and stays compatible with 2025-11-25 clients. It works with Claude Desktop, Claude Code, Cursor, Windsurf, VS Code Copilot, and any MCP-compatible client. Runs in one of two modes: with writes, or locked read-only (MCP_READ_ONLY=true) so the 20 write tools are never offered to the model.

mcp-coda uses FastMCP, httpx, and Pydantic.

1-Click Installation

[Install in Cursor]

[Install in VS Code] [Install in VS Code Insiders]

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

bash
# with writesclaude mcp add coda -e CODA_API_TOKEN=your-token-here -- uvx mcp-coda# locked read-onlyclaude mcp add coda -e MCP_READ_ONLY=true -e CODA_API_TOKEN=your-token-here -- 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. Remove MCP_READ_ONLY to allow writes.

json
{  "mcpServers": {    "coda": {      "command": "uvx",      "args": ["mcp-coda"],      "env": {        "CODA_API_TOKEN": "your-token-here",        "MCP_READ_ONLY": "true"      }    }  }}

Gemini CLI

bash
# with writesgemini mcp add -s user -e CODA_API_TOKEN=your-token-here coda uvx mcp-coda# locked read-onlygemini mcp add -s user -e MCP_READ_ONLY=true -e CODA_API_TOKEN=your-token-here coda uvx mcp-coda

VS Code

Add to .vscode/mcp.json:

json
{  "servers": {    "coda": {      "type": "stdio",      "command": "uvx",      "args": ["mcp-coda"],      "env": { "CODA_API_TOKEN": "your-token-here", "MCP_READ_ONLY": "true" }    }  }}

Codex

bash
# with writescodex mcp add coda --env CODA_API_TOKEN=your-token-here -- uvx mcp-coda# locked read-onlycodex mcp add coda --env MCP_READ_ONLY=true --env CODA_API_TOKEN=your-token-here -- uvx mcp-coda

pip / uv

bash
uv pip install mcp-coda

Drop MCP_READ_ONLY to allow writes. On a shared or hosted server put it in the deployer's env, not the client config.

Configuration

VariableRequiredDefaultDescription
CODA_API_TOKENYes-Coda API token (get one here)
MCP_READ_ONLYNofalseShared name across the mcp-* servers. Any value other than false/0/no/off/empty locks the server read-only: the 20 write tools and write-workflow prompts are not listed, and nothing can turn it back off at runtime
CODA_READ_ONLYNofalsePer-server alias for MCP_READ_ONLY; either one locks the server read-only. --read-only can only raise the lock
CODA_BASE_URLNohttps://coda.io/apis/v1API base URL
CODA_TIMEOUTNo30Request timeout in seconds
CODA_HTTP_BEARER_TOKENNo-Required to bind an HTTP transport to a non-loopback host. Clients send Authorization: Bearer <token>. Minimum 16 characters

Supported Token Types

The server checks these environment variables in order — first match wins:

  1. CODA_API_TOKEN
  2. CODA_TOKEN
  3. CODA_PAT

Generate tokens at coda.io/account#apiSettings. Tokens grant access to all docs accessible by the token owner. Tokens have no scope restrictions. Coda's sharing settings control doc-level access.

Compatibility

ClientSupportedInstall Method
Claude DesktopYesclaude_desktop_config.json
Claude CodeYesclaude mcp add
CursorYesOne-click deeplink or .cursor/mcp.json
VS Code CopilotYesOne-click deeplink or .vscode/mcp.json
WindsurfYes~/.codeium/windsurf/mcp_config.json
Any MCP clientYesstdio or HTTP transport

Protocol support

mcp-coda implements the Model Context Protocol 2026-07-28 specification, often called MCP 2.0. It also stays compatible with 2025-11-25 clients. A FastMCP client pinned to 2026-07-28 and a legacy client both list all tools and reach the Coda API over stdio. The companion code PR adds a regression test that checks tools/list with an in-memory client pinned to 2026-07-28.

  • Spec version: MCP 2026-07-28 (MCP 2.0), backward compatible with 2025-11-25.
  • Built on: FastMCP 4.x and the MCP Python SDK 2.x.
  • Transports: stdio (default) and streamable-http (recommended for remote). sse (HTTP+SSE) still works, but the 2026-07-28 specification deprecates it, so the server prints a warning.
  • Capabilities: tools, resources, and prompts. The server uses no Roots, Sampling, Logging, elicitation, or resource subscriptions, so the 2026-07-28 deprecations do not affect it.

Error results

An expected failure — a 404, a 401, a rate limit, or a write that reaches the read-only guard — comes back as a tool result with isError: true rather than a value the caller must inspect for an error key. (In locked read-only mode the write tools are hidden, so calling one returns an Unknown tool error; the error envelope below is the guard's own response, returned only when a client reaches a write tool anyway.) The result body is the text content: a JSON object with error, an actionable hint, and, where relevant, status_code, body, and retry_after. The result carries no structuredContent — the TypeScript MCP SDK validates structuredContent against the tool's output schema even when isError is true, so an error payload there would make strict clients reject the whole result. Unexpected exceptions (a bug in a tool) are also isError: true, their text is TypeName: message, and the server logs them with a traceback.

A successful result carries the Coda JSON object as structuredContent beside the pretty-printed text, and tools advertise no outputSchema: payloads pass the upstream fields through untyped, so strict clients validate nothing and receive the object directly rather than a double-encoded {"result": "<json>"} wrapper. A typed schema is opt-in per tool via @mcp.tool(output_schema=…).

Tools (54)

CategoryCountTools
Account3whoami, resolve browser link, mutation status
Docs5list, get, create, update, delete
Pages9list, get, create, update, delete, get content, delete content, export, export status
Tables4list tables, get table, list columns, get column
Rows7list, get, insert/upsert, update, delete, bulk delete, push button
Permissions6sharing metadata, list, add, delete, search principals, ACL settings
Folders5list, get, create, update, delete
Misc8formulas (list, get), controls (list, get), publishing (list categories, publish, unpublish), trigger automation
Analytics7doc analytics, doc summary, page analytics, pack analytics, pack summary, formula analytics, analytics updated
Full tool reference (click to expand)

Account

ToolDescription
coda_whoamiGet current user info
coda_resolve_browser_linkConvert browser URL to API IDs
coda_get_mutation_statusCheck async write status

Docs

ToolDescription
coda_list_docsList accessible docs
coda_get_docGet doc metadata
coda_create_docCreate a new doc
coda_update_docUpdate doc title/icon
coda_delete_docDelete a doc

Pages

ToolDescription
coda_list_pagesList pages in a doc
coda_get_pageGet page metadata
coda_create_pageCreate a page
coda_update_pageUpdate page name/content
coda_delete_pageDelete a page
coda_get_page_contentRead page content
coda_delete_page_contentClear page content
coda_export_pageExport page as HTML or markdown
coda_get_export_statusPoll an export started by coda_export_page

Tables

ToolDescription
coda_list_tablesList tables and views
coda_get_tableGet table metadata
coda_list_columnsList columns in a table
coda_get_columnGet column metadata

Rows

ToolDescription
coda_list_rowsList and filter rows
coda_get_rowGet a single row
coda_insert_rowsInsert or upsert rows
coda_update_rowUpdate a row
coda_delete_rowDelete a row
coda_delete_rowsBulk delete rows by filter
coda_push_buttonPush a button column value

Formulas

ToolDescription
coda_list_formulasList named formulas
coda_get_formulaGet formula value

Controls

ToolDescription
coda_list_controlsList controls
coda_get_controlGet control value

Permissions

ToolDescription
coda_get_sharing_metadataGet sharing config
coda_list_permissionsList ACL entries
coda_add_permissionGrant access
coda_delete_permissionRevoke access
coda_search_principalsSearch users/groups
coda_get_acl_settingsGet ACL settings

Publishing

ToolDescription
coda_list_categoriesList publishing categories
coda_publish_docPublish a doc
coda_unpublish_docUnpublish a doc

Folders

ToolDescription
coda_list_foldersList folders
coda_get_folderGet folder details
coda_create_folderCreate a folder
coda_update_folderRename a folder
coda_delete_folderDelete a folder

Automations

ToolDescription
coda_trigger_automationTrigger an automation rule

Analytics

ToolDescription
coda_list_doc_analyticsDoc usage metrics
coda_get_doc_analytics_summaryAggregated doc metrics
coda_list_page_analyticsPage usage metrics
coda_list_pack_analyticsPack usage metrics
coda_get_pack_analytics_summaryAggregated pack metrics
coda_list_pack_formula_analyticsFormula-level metrics
coda_get_analytics_updatedAnalytics freshness timestamp

Resources (12)

The server exposes MCP resources that provide ambient context and do not consume tool calls.

Data Resources (live API)

URINameDescription
coda://docsCoda DocsList of docs accessible to the current API token
coda://docs/{doc_id}/schemaCoda Doc SchemaTable and column definitions for a doc

Rules (static knowledge)

URINameDescription
resource://rules/coda-doc-structureCoda Doc StructureDoc/page hierarchy, page types, naming, when to split docs vs folders
resource://rules/coda-table-designCoda Table DesignColumn types, relations, display columns, row limits, table vs view
resource://rules/coda-permissionsCoda Permission ModelDoc-level vs page-level locking, ACL, domain sharing, principal types
resource://rules/coda-automationsCoda Automation PatternsWebhooks, button triggers, rate limits, payload design, idempotency
resource://rules/coda-api-patternsCoda API Best PracticesRate limits, pagination, async mutations, error handling, retry

Guides (how-to)

URINameDescription
resource://guides/row-operationsRow Operations GuideInsert vs upsert, bulk ops, key columns, cell formats, delete strategies
resource://guides/page-contentPage Content GuideHTML vs markdown, insert modes, export workflows
resource://guides/formula-controlsFormulas & Controls GuideNamed formulas, control types, reading values
resource://guides/publishing-analyticsPublishing & Analytics GuidePublishing categories, gallery settings, analytics date filtering
resource://guides/folder-organizationFolder Organization GuideFolder CRUD, doc-folder relationships, hierarchy, bulk organization

Prompts (5)

The server provides MCP prompts — reusable task templates that clients can invoke.

PromptParametersDescription
analyze_doc_structuredoc_idAnalyze a doc's page hierarchy, table layout, and organization
design_table_schemadescriptionDesign a table schema from a natural language description
migrate_spreadsheetdoc_id, source_formatGuide for migrating CSV/Excel/Sheets data into Coda
setup_automationdoc_id, trigger_typeSet up a webhook/button/time automation with error handling
audit_permissionsdoc_idAudit sharing and permissions, suggest tightening

Usage Examples

Docs & Pages

"List all my Coda docs"→ coda_list_docs(is_owner=True)
"Get the content of page 'Sprint Planning' in doc d1"→ coda_list_pages(doc_id="d1") → find page ID→ coda_get_page_content(doc_id="d1", page_id_or_name="canvas-abc")
"Create a new doc from a template"→ coda_create_doc(title="Q1 Planning", source_doc="template-doc-id")

Tables & Rows

"List all tables in doc d1"→ coda_list_tables(doc_id="d1")
"Find rows where Status is 'Done'"→ coda_list_rows(doc_id="d1", table_id_or_name="Tasks", query="Done")
"Insert a new row into the Tasks table"→ coda_insert_rows(doc_id="d1", table_id_or_name="Tasks", rows=[{"cells": [{"column": "Name", "value": "New task"}]}])
"Update a row's status"→ coda_update_row(doc_id="d1", table_id_or_name="Tasks", row_id_or_name="i-abc", row={"cells": [{"column": "Status", "value": "In Progress"}]})

Formulas & Controls

"Get the value of the TotalBudget formula"→ coda_get_formula(doc_id="d1", formula_id_or_name="TotalBudget")
"Check the current value of the DateFilter control"→ coda_get_control(doc_id="d1", control_id_or_name="DateFilter")

Permissions & Sharing

"Share a doc with a teammate"→ coda_add_permission(doc_id="d1", access="write", principal_email="[email protected]")
"List who has access to a doc"→ coda_list_permissions(doc_id="d1")

Security Considerations

  • Token scope: Coda API tokens grant access to all docs the token owner can access. Use a dedicated service account for production deployments to limit exposure.
  • Read-only mode: Set MCP_READ_ONLY=true (or CODA_READ_ONLY=true) in the launch you control and the server starts locked: the 20 write tools and the write-workflow prompts are not listed, a call to one returns "Unknown tool", and the guard refuses any write that still reaches it. Nothing lifts the lock at runtime — not a false from another source, not a .env file, not tool arguments; any value other than false/0/no/off/empty locks, and --read-only can only raise it. The lock is only as strong as the launch: set it where users cannot edit it (a managed MCP config such as Claude Code managed-mcp.json, a container, k8s or systemd env, or a hosted HTTP deployment). A user who starts the server themselves controls its environment. A Coda token has no scopes, so this lock is the only read-only control.
  • MCP tool annotations: Each tool declares readOnlyHint, destructiveHint, and idempotentHint for client-side permission prompts.
  • No credential storage: The server does not persist tokens. It reads credentials from environment variables at startup.
  • HTTP transport auth: Host/Origin protection is not authentication. Binding an HTTP transport to a non-loopback host requires CODA_HTTP_BEARER_TOKEN (min 16 chars); clients send Authorization: Bearer <token> and anything else gets a 401. Without it the server refuses to start on a non-loopback host.

Upgrading to 0.9.0

Two defaults changed. Both are breaking for callers that relied on the old behaviour:

  • coda_publish_doc no longer lists docs in the public gallery by default. discoverable now defaults to False — publishing alone makes a doc reachable by URL; pass discoverable=True to list it in the Coda gallery. mode is now restricted to view, play, or edit.
  • An HTTP transport on a non-loopback host now requires a bearer token. uvx mcp-coda --transport streamable-http --host 0.0.0.0 (or any non-loopback host) exits with an error unless CODA_HTTP_BEARER_TOKEN (min 16 chars) is set; clients then send Authorization: Bearer <token>. Binding to 127.0.0.1 is unchanged.

Rate Limits & Permissions

Rate Limits

Coda enforces per-token rate limits (varies by plan). When Coda rate-limits a request, the tool returns a 429 error with retry_after seconds. The client retries a 429 once when its Retry-After is ≤ 5s (GET only, with jitter, also covering 502/503/504); otherwise it surfaces retry_after without retrying — wait that many seconds, then retry. Writes are never retried. Most paginated endpoints default to 50 results per page (coda_list_docs 25, coda_list_columns 100). Use limit to adjust.

Async Mutations

Coda processes write operations (insert, update, delete rows) asynchronously. Tools return a requestId. Check it with coda_get_mutation_status to confirm completion.

Required Permissions

OperationMinimum Coda Doc Role
List docs, read pages, tables, rows, formulas, controlsViewer
Read permissions, analyticsViewer (doc owner for analytics)
Create/update pages, insert/update/delete rowsEditor
Create/delete docs, manage foldersEditor (or doc owner)
Add/remove permissions, publish/unpublishDoc Owner
Trigger automationsEditor

Access Control

LayerMechanism
Server-levelCODA_READ_ONLY=true / MCP_READ_ONLY=true hides every write tool (deployer-owned launch required)
MCP annotationsreadOnlyHint, destructiveHint, idempotentHint for client-side prompts
Coda tokenDoc-level access enforced by Coda's sharing settings

CLI & Transport Options

bash
# Default: stdio transport (for MCP clients)uvx mcp-coda
# HTTP transport (SSE or streamable-http)uvx mcp-coda --transport sse --host 127.0.0.1 --port 8000uvx mcp-coda --transport streamable-http --port 9000
# Binding to a non-loopback host requires a bearer tokenCODA_HTTP_BEARER_TOKEN=$(openssl rand -hex 32) \  uvx mcp-coda --transport streamable-http --host 0.0.0.0 --port 9000# Clients authenticate with the token:#   curl -H "Authorization: Bearer $CODA_HTTP_BEARER_TOKEN" http://host:9000/mcp
# Config comes from env varsCODA_API_TOKEN=your-token uvx mcp-coda --read-only

--coda-token still works but is deprecated and hidden from --help: it exposes the token to ps and shell history. Use CODA_API_TOKEN.

The server loads .env files from the working directory automatically via python-dotenv.

Docker

The image is a minimal, non-root python:3.13-slim build. The image defaults to locked read-only (MCP_READ_ONLY=true); pass -e MCP_READ_ONLY=false to allow writes.

bash
docker build -t mcp-coda .
# stdio (default), locked read-onlydocker run -i --rm -e CODA_API_TOKEN=your-token mcp-coda
# HTTP transport on a non-loopback host requires a bearer token (min 16 chars);# clients then send Authorization: Bearer <token>BEARER=$(openssl rand -hex 32)docker run --rm -p 9000:9000 \  -e CODA_API_TOKEN=your-token \  -e CODA_HTTP_BEARER_TOKEN="$BEARER" \  mcp-coda --transport streamable-http --host 0.0.0.0 --port 9000

FAQ

Does mcp-coda support MCP 2.0 (the 2026-07-28 spec)?

Yes. mcp-coda implements the MCP 2026-07-28 specification, commonly called MCP 2.0. It also works with 2025-11-25 clients.

Which transports does mcp-coda support?

The server supports stdio (the default) and streamable-http. It also supports sse, but the 2026-07-28 specification deprecates it. Prefer streamable-http for remote connections.

Can I run mcp-coda read-only so the assistant cannot change anything?

Yes. Start it with MCP_READ_ONLY=true (or CODA_READ_ONLY=true). The 20 write tools and the write-workflow prompts are then not listed at all, so the model never sees them; a call to one returns "Unknown tool", and nothing can turn writes back on while the process runs. Set it in a launch you control — a managed MCP config, a container or systemd env, or a hosted deployment — because a user who starts the server themselves can start it without the variable. A Coda token has no scopes, so this lock is the only read-only control.

What token scopes does mcp-coda need?

Coda tokens have no scopes. A token reaches every doc its owner can reach. Coda's sharing settings control doc-level access. Use a dedicated service account to limit exposure.

Does mcp-coda work with self-hosted Coda?

Coda is a hosted service, so there is no self-hosted deployment. Set CODA_BASE_URL only to target a proxy or a non-default API base.

Which clients work with mcp-coda?

mcp-coda works with Claude Desktop, Claude Code, Cursor, Windsurf, VS Code Copilot, and any MCP-compatible client over stdio or HTTP.

How many tools, resources, and prompts does it provide?

mcp-coda provides 54 tools, 12 resources, and 5 prompts. They cover docs, pages, tables, rows, formulas, controls, permissions, folders, publishing, automations, and analytics.

Related MCP Servers

  • mcp-gitlab — GitLab integration (83 tools, 7 resources, 6 prompts)
  • mcp-atlassian-extended — Jira + Confluence integration (22 tools, 15 resources, 5 prompts)
  • mcp-argocd — Argo CD integration (37 tools, 7 resources, 7 prompts)

Development

bash
git clone https://github.com/vish288/mcp-coda.gitcd mcp-codauv sync --all-extras
uv run pytest --covuv run ruff check .uv run ruff format --check .

License

MIT

來源:README.md,提交 5b83c6e

工具

54

coda_whoami

Coda Whoami

Get information about the current API token owner. Returns the user's name, email, and token scopes. Use this to verify that the API token is valid and has the expected permissions. If this returns an error, the token is invalid or expired.

無需輸入參數。

coda_get_mutation_status

Coda Get Mutation Status

Check the status of an asynchronous mutation (write operation). Coda write operations return 202 with a requestId. Use this tool to poll whether the mutation has completed, is still processing, or failed. Returns a completed boolean and any error details. Poll every 2 seconds, up to 30 seconds maximum.

輸入參數request_id必填

coda_list_doc_analytics

Coda List Doc Analytics

List analytics data for docs (views, copies, likes, sessions). Returns usage metrics for docs over the specified date range. Includes total views, unique views, copies, and other engagement metrics. Only available to doc owners. Use coda_get_doc_analytics_summary for aggregated totals instead of per-doc breakdown.

輸入參數limitcursordoc_idssince_dateuntil_dateis_published

coda_get_doc_analytics_summary

Coda Get Doc Analytics Summary

Get aggregated analytics summary across all docs. Returns total views, unique viewers, copies, and other metrics summed across all accessible docs. Use this for a high-level overview — use coda_list_doc_analytics for per-doc breakdown.

輸入參數since_dateuntil_dateis_published

coda_list_page_analytics

Coda List Page Analytics

List analytics data for pages within a doc. Returns per-page usage metrics (views, unique views) for the specified doc. Only available to doc owners. Useful for understanding which pages get the most traffic.

輸入參數limitcursordoc_id必填since_dateuntil_date

coda_list_pack_analytics

Coda List Pack Analytics

List analytics data for Coda packs. Returns usage metrics for packs including install counts, doc usage, and formula invocations. Only available to pack makers for their own packs.

輸入參數limitcursorpack_idssince_dateuntil_dateis_published

coda_get_pack_analytics_summary

Coda Get Pack Analytics Summary

Get aggregated analytics summary for packs. Returns total installs, doc usage, and formula invocations summed across packs. Only available to pack makers.

輸入參數pack_idssince_dateuntil_dateis_published

coda_list_pack_formula_analytics

Coda List Pack Formula Analytics

List analytics data for individual formulas within a pack. Returns per-formula invocation counts, error rates, and execution times. Only available to the pack maker.

輸入參數limitcursorpack_id必填since_dateuntil_date

coda_get_analytics_updated

Coda Get Analytics Updated

Get the timestamp of when analytics data was last updated. Returns a timestamp indicating the freshness of analytics data. Analytics are not real-time — they are typically updated every few hours. Check this before relying on analytics data for time-sensitive decisions.

無需輸入參數。

coda_list_docs

Coda List Docs

List Coda docs accessible to the current API token. Returns doc metadata including name, owner, folder, and timestamps. Does NOT return page content or table data — use coda_list_pages or coda_list_tables for those. Rate-limited to 4 calls per 6 seconds. Use the query parameter to search by doc name. Pass cursor to paginate through results.

輸入參數limitquerycursoris_ownerfolder_idresponse_format

coda_get_doc

Coda Get Doc

Get metadata for a single Coda doc by ID. Returns name, owner email, folder, created/updated timestamps, and doc size. Does NOT return page content or table data — use coda_list_pages or coda_list_tables for those. The doc_id can be obtained from coda_list_docs or coda_resolve_browser_link.

輸入參數doc_id必填

coda_create_doc

Coda Create Doc

Create a new Coda doc. Creates a blank doc or a copy of an existing doc. Returns the new doc's ID, name, and browser URL. The doc is created in the specified folder, or the user's root if no folder is given. Use source_doc to clone an existing doc as a template.

輸入參數title必填folder_idsource_doc

coda_update_doc

Coda Update Doc

Update metadata for an existing Coda doc. Updates the doc's title and/or icon. Does NOT update page content — use coda_update_page for that. Returns the updated doc metadata. This is an idempotent operation — calling with the same values produces the same result.

輸入參數titledoc_id必填icon_name

coda_delete_doc

Coda Delete Doc

Permanently delete a Coda doc. This is irreversible — the doc and all its pages, tables, and data will be permanently removed. Verify the doc name with coda_get_doc before calling this. Returns a confirmation status.

輸入參數doc_id必填

coda_list_folders

Coda List Folders

List folders accessible to the current API token, one page at a time. Returns folder metadata (name, ID, parent folder) with pagination — the API defaults to 25 per page, so pass cursor to fetch the rest. Folders organize docs in the Coda workspace. Use the returned folder IDs with coda_create_doc to place new docs in specific folders.

輸入參數limitcursorworkspace_id

coda_get_folder

Coda Get Folder

Get metadata for a single folder. Returns the folder's name, ID, parent folder, and child items. Use coda_list_folders to discover available folders first.

輸入參數folder_id必填

coda_create_folder

Coda Create Folder

Create a new folder in a Coda workspace. Creates a folder in the specified workspace. Returns the new folder's ID and metadata. Use the folder ID when creating docs with coda_create_doc to organize them.

輸入參數name必填descriptionworkspace_id必填

coda_update_folder

Coda Update Folder

Update a folder's name. Renames the specified folder. Returns the updated folder metadata. This is an idempotent operation.

輸入參數namefolder_id必填

coda_delete_folder

Coda Delete Folder

Delete a folder from the Coda workspace. Returns confirmation with folder_id. Permanently removes the folder. Docs inside the folder may be moved to the root level or deleted depending on Coda's behavior. Verify the folder with coda_get_folder before deleting.

輸入參數folder_id必填

coda_trigger_automation

Coda Trigger Automation

Trigger a Coda automation rule. Fires the specified automation rule, optionally passing a JSON payload. The automation must have an API-triggerable event type. The payload schema depends on the automation's configuration. Returns a requestId for tracking. The rule_id can be found in the automation's settings in the Coda UI.

輸入參數doc_id必填payloadrule_id必填

coda_list_formulas

Coda List Formulas

List all named formulas in a Coda doc. Returns formula metadata including name, ID, and value. Named formulas are doc-level computed values (not column formulas). Use coda_get_formula to get a specific formula's current value.

輸入參數limitcursordoc_id必填

coda_get_formula

Coda Get Formula

Get the current value of a named formula in a Coda doc. Returns the formula's name, ID, type, current value, and whether it has an error. The value is computed by Coda and reflects the latest state. Use coda_list_formulas to discover available formulas in a doc.

輸入參數doc_id必填formula_id_or_name必填

coda_list_controls

Coda List Controls

List all controls (sliders, select lists, date pickers, etc.) in a Coda doc. Returns control metadata including name, ID, type, and current value. Controls are interactive UI elements on pages. Use coda_get_control to read a specific control's current value.

輸入參數limitcursordoc_id必填

coda_get_control

Coda Get Control

Get the current value of a control in a Coda doc. Returns the control's name, ID, type, and current value. Controls include sliders, select lists, date pickers, text inputs, and buttons. The value reflects the current user-facing state. Use coda_list_controls to discover available controls.

輸入參數doc_id必填control_id_or_name必填

coda_list_categories

Coda List Categories

List all available publishing categories in Coda. Returns the categories that can be used when publishing a doc to the Coda gallery. Each category has a name and ID. Use these category IDs with coda_publish_doc.

無需輸入參數。

coda_publish_doc

Coda Publish Doc

Publish a Coda doc to make it publicly accessible. Publishes the doc with optional gallery listing and URL slug. Publishing alone makes the doc public by link; setting discoverable=True is a separate, more public step that lists it in the Coda gallery. Use coda_unpublish_doc to revert. Returns the published doc's URL and settings.

輸入參數modeslugdoc_id必填discoverablecategory_names

coda_unpublish_doc

Coda Unpublish Doc

Unpublish a Coda doc, removing public access. Returns confirmation with doc_id. Reverts a previously published doc to private. The public URL will stop working. This is reversible — you can publish again with coda_publish_doc.

輸入參數doc_id必填

coda_list_pages

Coda List Pages

List all pages in a Coda doc. Returns page metadata including name, ID, parent page, and icon. Pages are returned in their tree order. Does NOT return page content — use coda_get_page_content for that. Use the returned page IDs (not names) for all subsequent page operations.

輸入參數limitcursordoc_id必填

coda_get_page

Coda Get Page

Get metadata for a single page in a Coda doc. Returns the page's name, ID, parent, subtitle, icon, and image. Does NOT return the page's text content — use coda_get_page_content for that. Page names can change; always use page IDs for reliable access.

輸入參數doc_id必填page_id_or_name必填

coda_create_page

Coda Create Page

Create a new page in a Coda doc. Creates a page with optional initial content. Returns the new page's ID and metadata. The page is created at the top level unless parent_page_id is specified. Content can be HTML or markdown — specify the format via content_format. Pack formulas cannot be inserted via the API.

輸入參數name必填doc_id必填contentsubtitlecontent_formatparent_page_id

coda_update_page

Coda Update Page

Update a page's name, subtitle, or content in a Coda doc. Updates page metadata and/or content. When updating content, 'replace' mode overwrites the entire page while 'append' adds to the end. There is no partial inline edit — draft full content locally first. Content format must match what you send (HTML or markdown). Returns the updated page metadata.

輸入參數namedoc_id必填contentsubtitleinsert_modecontent_formatpage_id_or_name必填

coda_delete_page

Coda Delete Page

Permanently delete a page from a Coda doc. This is irreversible — the page and all its content will be removed. Child pages are reparented to the deleted page's parent. Verify the page name with coda_get_page before calling this.

輸入參數doc_id必填page_id_or_name必填

coda_get_page_content

Coda Get Page Content

Get the text content of a page in a Coda doc. Returns the page's content in the specified format (HTML or markdown). Markdown output may be lossy for complex Coda content (embedded objects, pack formulas). Use this for reading page text — use coda_get_page for metadata only.

輸入參數doc_id必填output_formatpage_id_or_name必填

coda_delete_page_content

Coda Delete Page Content

Delete all content from a page, leaving it blank. Removes the page's text content but does NOT delete the page itself. The page remains in the doc with its name and metadata intact. This is irreversible. Use coda_delete_page to remove the page entirely.

輸入參數doc_id必填page_id_or_name必填

coda_export_page

Coda Export Page

Export a page's content, initiating an async export if needed. Starts an export job and returns the export status. For small pages, the content may be returned immediately. For large pages, call coda_get_export_status with the returned id. Prefer coda_get_page_content for quick reads — use this only when you need a full export with embedded images resolved.

輸入參數doc_id必填output_formatpage_id_or_name必填

coda_get_export_status

Coda Get Export Status

Check a page export started by coda_export_page. Pass the `id` from coda_export_page as request_id. `status` is inProgress, failed or complete. When complete, `downloadLink` holds the exported file; the link expires after a short time — call this tool again for a fresh one. When failed, `error` says why. Poll every 2 s for up to 30 s (same cadence as coda_get_mutation_status). The request itself expires: 404/410 means start a new export.

輸入參數doc_id必填request_id必填page_id_or_name必填

coda_get_sharing_metadata

Coda Get Sharing Metadata

Get sharing metadata for a Coda doc. Returns whether the doc can be shared, copied, or has sharing restrictions. This is metadata about the doc's sharing configuration, not the list of who has access — use coda_list_permissions for that.

輸入參數doc_id必填

coda_list_permissions

Coda List Permissions

List all permission entries (ACL) for a Coda doc. Returns who has access to the doc and their access level (read, write, etc.). Each entry includes the principal (user or group) and their permission type. Use coda_add_permission to grant access or coda_delete_permission to revoke.

輸入參數limitcursordoc_id必填

coda_add_permission

Coda Add Permission

Add a permission entry to a Coda doc. Grants access to a user by email or to an entire domain. Specify either principal_email or principal_domain (not both). The access level controls what the principal can do: readonly, write, comment, or none (removes implicit access). Returns the created permission entry.

輸入參數access必填doc_id必填principal_emailprincipal_domainsuppress_notification

coda_delete_permission

Coda Delete Permission

Remove a permission entry from a Coda doc. Revokes the specified permission. The principal will lose access to the doc unless they have access through another permission (e.g. domain-level). Get the permission_id from coda_list_permissions first.

輸入參數doc_id必填permission_id必填

coda_search_principals

Coda Search Principals

Search for users and groups that can be added to a doc's permissions. Returns matching principals (users and groups) based on the query string. Use this to look up a user's email or find groups before calling coda_add_permission. Results include the principal's type, email, and name.

輸入參數query必填doc_id必填

coda_get_acl_settings

Coda Get Acl Settings

Get the ACL settings for a Coda doc. Returns doc-level access control settings such as whether the doc allows copying, whether editors can change permissions, and the default access mode. These are administrative settings, not individual permission entries.

輸入參數doc_id必填

coda_list_rows

Coda List Rows

List rows in a Coda table with optional filtering and sorting. Returns row data with column values. By default uses column names (not IDs) for readability. Use the query parameter to filter rows by column values. For a specific row by ID, use coda_get_row instead. Results are paginated — pass cursor to get the next page.

輸入參數limitquerycursordoc_id必填sort_byresponse_formattable_id_or_name必填use_column_names

coda_get_row

Coda Get Row

Get a single row from a Coda table by ID or display column value. Returns all column values for the specified row. Use this when you have a specific row ID or know the display column value. For querying multiple rows with filters, use coda_list_rows instead.

輸入參數doc_id必填row_id_or_name必填table_id_or_name必填use_column_names

coda_insert_rows

Coda Insert Rows

Insert one or more rows into a Coda table, with optional upsert. Inserts up to 500 rows per call. Use column names (not IDs) in the cells. With key_columns, matching rows are updated (upsert) instead of inserted — this is the only way to bulk-update rows. Returns a requestId for async mutation tracking via coda_get_mutation_status. The operation is async (202).

輸入參數rows必填doc_id必填key_columnstable_id_or_name必填

coda_update_row

Coda Update Row

Update a single row in a Coda table. Updates specific column values for one row. Only the specified columns are changed — other columns are left unchanged. Use column names (not IDs). For bulk updates, use coda_insert_rows with key_columns (upsert) instead. Returns a requestId for async mutation tracking.

輸入參數cells必填doc_id必填row_id_or_name必填table_id_or_name必填

coda_delete_row

Coda Delete Row

Delete a single row from a Coda table. Permanently removes the row. This is irreversible. Verify the row with coda_get_row before deleting. For bulk deletion, use coda_delete_rows with a list of row IDs instead.

輸入參數doc_id必填row_id_or_name必填table_id_or_name必填

coda_delete_rows

Coda Delete Rows

Delete multiple rows from a Coda table in a single call. Permanently removes all specified rows. This is irreversible. List the rows first with coda_list_rows to get their IDs. Returns a requestId for async mutation tracking. Prefer this over calling coda_delete_row in a loop for better performance and rate limit efficiency.

輸入參數doc_id必填row_ids必填table_id_or_name必填

coda_push_button

Coda Push Button

Push a button in a Coda table row. Triggers the button's configured action (e.g. run automation, modify row). The button must be in a Button-type column. The effect depends on the button's configuration in the Coda doc. Returns a requestId for async mutation tracking.

輸入參數doc_id必填row_id_or_name必填table_id_or_name必填column_id_or_name必填

coda_list_tables

Coda List Tables

List all tables and views in a Coda doc. Returns table metadata including name, ID, type (table or view), row count, and parent page. Does NOT return row data — use coda_list_rows for that. Use coda_list_columns to get the column schema of a specific table.

輸入參數limitcursordoc_id必填table_types

coda_get_table

Coda Get Table

Get metadata for a single table or view in a Coda doc. Returns the table's name, ID, type, row count, parent page, and sort/filter info. Does NOT return row data or column definitions — use coda_list_rows and coda_list_columns for those.

輸入參數doc_id必填table_id_or_name必填

coda_list_columns

Coda List Columns

List all columns in a Coda table. Returns column metadata including name, ID, type (text, number, date, etc.), and configuration. Column IDs are internal identifiers — use column names when working with row data. This is the table schema — call this before inserting or updating rows to know the available columns and their types.

輸入參數limitcursordoc_id必填table_id_or_name必填

coda_get_column

Coda Get Column

Get metadata for a single column in a Coda table. Returns the column's name, ID, type, format, and configuration details. Use this to check a specific column's type before writing data to it. For the full column schema, use coda_list_columns instead.

輸入參數doc_id必填table_id_or_name必填column_id_or_name必填

版本歷史

22
  1. v0.13.0最新Nov 7, 2026
  2. v0.12.5Nov 5, 2026
  3. v0.12.4Nov 4, 2026
  4. v0.12.3Oct 22, 2026
  5. v0.12.2Oct 18, 2026
  6. v0.12.1Oct 14, 2026
  7. v0.12.0Oct 13, 2026
  8. v0.11.0Oct 13, 2026
  9. v0.10.0Oct 13, 2026
  10. v0.9.0Oct 12, 2026
  11. v0.8.0Oct 10, 2026
  12. v0.7.4Oct 6, 2026
  13. v0.7.2Oct 3, 2026
  14. v0.7.1Sep 28, 2026
  15. v0.7.0Sep 27, 2026
  16. v0.6.1Sep 27, 2026
  17. v0.6.0Sep 27, 2026
  18. v0.5.9Sep 25, 2026
  19. v0.5.8Sep 21, 2026
  20. v0.5.7Sep 20, 2026
  21. v0.5.6Sep 20, 2026
  22. v0.5.3Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分