Coda
Docs that act like apps.
Verdict
Common use cases
- Pull roadmap status into sprint planning
- Log support tickets to Coda tracker
- Duplicate project templates for new clients
- Query sales pipeline without opening tabs
- Trigger automations from chat commands
Integration
- Vendor
- Coda
- Category
- docs
- Auth
- OAUTH2
- Tools
- 50
- Composio slug
coda
Tools
- Add a category for pack
Add a publishing category for a given pack.
- Add a maker for pack
Set a maker for a given pack. used to display makers for a pack in the corresponding packs page.
- Add a permission for pack
Create or modify user, workspace, or global permissions for a given pack.
- Add custom domain
Add a custom domain to a published doc.
- Add permission
Adds a new permission to the doc.
- Begin content export
Initiate an export of content for the given page.
- Content export status
Check the status of a page content export
- Copy Document
Creates a copy of an existing coda document. this action allows you to duplicate a document while optionally specifying a new title and location for the copied document.
- Create a new pack release
Creates a new pack release based on an existing pack version.
- Create a page
Create a new page in a doc. note that creating a page requires you to be a doc maker in the applicable workspace.
- Create doc
Creates a new coda doc, optionally copying an existing doc. note that creating a doc requires you to be a doc maker in the applicable workspace (or be auto-promoted to one).
- Create pack
Creates a new pack, essentially registering a new pack id. the contents of the pack will be uploaded separately.
- Delete a category for packdestructive
Delete a publishing category for a given pack.
- Delete a maker for packdestructive
Delete a maker for a given pack, who will not be displayed in the corresponding packs page.
- Delete a pagedestructive
Deletes the specified page.
- Delete a permission for packdestructive
Delete user, workspace, or global permissions for a given pack.
- Delete docdestructive
Deletes a doc.
- Delete multiple rowsdestructive
Deletes the specified rows from the table or view. this endpoint will always return a 202. row deletions are generally processed within several seconds.
- Delete packdestructive
Delete a given pack.
- Delete permissiondestructive
Deletes an existing permission.
- Delete rowdestructive
Deletes the specified row from the table or view. this endpoint will always return a 202, so long as the row exists and is accessible (and the update is structurally valid). row deletions are generally processed within several seconds. when
- Deletes a custom domain
Deletes a custom domain from a published doc.
- Fetch grouped logs by pack org root ingestion id
Retrieve the grouped logs of a pack for debugging purpose.
- Fetch ingestion executions for pack
Retrieve the ingestion execution ids of a root ingestion for debugging purpose.
- Get acl settings
Returns settings associated with acls for this coda doc.
- Get a column
Returns details about a column in a table.
- Get a control
Returns info on a control.
- Get a formula
Returns info on a formula.
- Get analytics last updated day
Returns days based on pacific standard time when analytics were last updated.
- Get a page
Returns details about a page.
- Get a row
Returns details about a row in a table.
- Get a single pack
Returns a single pack.
- Get a table
Returns details about a specific table or view.
- Get detailed listing information for a pack
Get detailed listing information for a pack.
- Get doc analytics summary
Returns summarized analytics data for available docs.
- Get doc categories
Gets all available doc categories.
- Get info about a doc
Returns metadata for the specified doc.
- Get mutation status
Get the status for an asynchronous mutation to know whether or not it has been completed. each api endpoint that mutates a document will return a request id that you can pass to this endpoint to check the completion status. status informati
- Get pack analytics summary
Returns summarized analytics data for packs the user can edit.
- Gets custom doc domains providers
Gets the provider (ie. godaddy) of a custom domain.
- Get sharing metadata
Returns metadata associated with sharing for this coda doc.
- Gets the json schema for pack configuration
Returns a json schema applicable for customizing the pack using pack configurations.
- Get the difference between two pack versions
Gets information about the difference between the specified previous version and next version of a pack.
- Get the next valid version for a pack
Get the next valid version based on the proposed metadata.
- Get the source code for a pack version
Get temporary links used to download the source code for the given packid and version
- Get user info
Returns basic info about the current user.
- List available docs
Returns a list of coda docs accessible by the user, and which they have opened at least once. these are returned in the same order as on the docs page: reverse chronological by the latest event relevant to the user (last viewed, edited, or
- List categories for pack
List publishing categories for a given pack.
- List columns
Returns a list of columns in a table.
- List controls
Returns a list of controls in a coda doc.
Setup
Setup guide
- 1Open your Switchy workspace and navigate to Settings, then Integrations. Find Coda in the list and click Connect. You'll redirect to Coda's OAuth consent screen—sign in with the account that has access to the docs and tables you want Switchy to reach. Grant the requested permissions, which include reading doc structure, querying tables, updating rows, managing permissions, and triggering automations. After you authorize, Switchy confirms the connection and shows a green checkmark. Return to any Space and type @Coda followed by a request like 'show me the top five rows in the Roadmap table' to test. If the MCP responds with data, you're live. If it errors, revisit Settings to confirm the OAuth token didn't expire and that the doc you're querying allows API access in its sharing settings.
What teammates see: by default, memories from Coda are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Spaces have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Roadmap Status Check
@Coda show me the five most recently updated rows in the Product Roadmap table, including Status and Owner columns.Open in a Space →
Add Support Ticket
@Coda add a row to the Support Tickets table with Title 'Login issue on mobile', Priority 'High', and Assignee 'Jordan'.Open in a Space →
Clone Project Doc
@Coda copy the 'Client Onboarding Template' doc and name the new copy 'Acme Corp Onboarding'.Open in a Space →
Export Page Content
@Coda begin a content export for the 'Q1 Retrospective' page and let me know when it's ready.Open in a Space →
Grant Doc Access
@Coda add sam@company.com as an editor on the 'Marketing Calendar' doc.Open in a Space →
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@Coda list all tables in the 'Q1 Planning' doc and show me the row count for each one
Found 4 tables in 'Q1 Planning': 'Feature Roadmap' (23 rows), 'Budget Tracker' (8 rows), 'Team Capacity' (12 rows), and 'Risk Register' (5 rows). The Feature Roadmap table was last modified 2 hours ago and contains columns for Priority, Owner, Status, and Target Date. Budget Tracker includes actual vs. planned spend with formulas calculating variance.
This read-heavy example shows the MCP's ability to introspect doc structure without opening the Coda UI. Requires API key with read access to the specified doc. Response time depends on doc size; large docs with hundreds of tables may take 3-5 seconds to enumerate.
@Coda add a new row to the 'Feature Roadmap' table: Feature name 'Dark mode toggle', Priority 'High', Owner 'Sarah Chen', Status 'Backlog'
Successfully added row to 'Feature Roadmap' in the Q1 Planning doc. New row ID: i-abc123XYZ. The row was inserted with Feature='Dark mode toggle', Priority='High', Owner='Sarah Chen', Status='Backlog', and Target Date left blank. Note that any automation rules or buttons configured in this table will not trigger via API—only manual edits in the Coda UI fire those.
This write example demonstrates direct table manipulation. The MCP returns a row ID you can reference in follow-up prompts. Be aware: Coda's API does not trigger Pack automations, buttons, or cross-doc syncs. If your table has complex formulas or lookups, verify the new row's calculated fields in the UI after creation.
@Coda read all rows from 'Risk Register' where Status is 'Open', then draft a summary email highlighting the top 3 risks by severity
Retrieved 3 open risks from Risk Register: (1) 'API rate limit breach' (Severity: Critical, Owner: Dev Ops), (2) 'Delayed vendor contract' (Severity: High, Owner: Legal), (3) 'Insufficient QA coverage' (Severity: High, Owner: QA Lead). Draft email: 'Team—three open risks need immediate attention this week. Critical: API rate limits are at 87% utilization; Dev Ops is evaluating caching strategies. High priority: vendor contract delayed by 10 days, Legal is expediting review. High priority: QA coverage gaps identified in the checkout flow; QA Lead scheduling additional test cycles.'
This synthesis example pairs the MCP's data retrieval with the AI's summarization. The AI interprets severity rankings and composes prose—useful for standup prep or stakeholder updates. Accuracy depends on your table schema; if column names differ ('Priority' vs 'Severity'), specify them in your prompt to avoid misreads.
Use-case deep-dives
When Coda MCP beats manual doc setup for agencies
A 6-person consulting shop closes 3-4 new clients a month, each needing a project tracker, onboarding checklist, and status dashboard. The Coda MCP's 'Copy Document' tool lets them script the entire setup: duplicate the master template, rename it with the client name, set permissions for the client contact, and add the custom domain if they're on a white-label tier. This cuts onboarding from 20 minutes of clicking to 90 seconds of running a prompt. The break-even is around 2 new clients per month—below that, the API key overhead isn't worth it. If your templates need more than doc-level customization (like pre-filling table rows with CRM data), you'll hit the 50-tool ceiling fast and need to chain multiple calls. For pure template stamping at small-team scale, this MCP is the right call.
Coda MCP for recurring team ritual automation
A 10-person product team runs two-week sprints and resets their sprint planning doc every Monday: archive last sprint's page, export it for the retro, create a new page from template, and notify the team in Slack. The Coda MCP handles the export ('Begin content export', 'Content export status') and page duplication in one workflow. The API key auth means any team member can trigger it from Switchy without individual OAuth. The trade-off: if your sprint doc has complex conditional formatting or cross-doc syncs, the MCP can't replicate those—it's a structural copy, not a logic clone. This works best when your template is data-light and your cadence is predictable. For teams running sprints shorter than a week or with more than 15 active docs, the manual coordination cost drops below the automation threshold.
When Coda MCP scales pack distribution for SaaS teams
A 12-person SaaS company built a Coda Pack for their API and distributes it to 40+ integration partners. Each new partner needs workspace-level permissions added, and each quarter they audit and revoke access for churned accounts. The Coda MCP's 'Add a permission for pack' and related pack tools let them script the entire lifecycle: onboard a partner with one prompt, bulk-revoke at quarter-end, and log every change for compliance. The 50-tool limit isn't a blocker here because pack management is a narrow domain. The constraint: if you're managing permissions across more than 10 packs simultaneously, the API rate limits (not documented in the MCP schema) will slow you down. For single-pack distribution at mid-market scale, this MCP eliminates the spreadsheet tracking and manual Coda UI work. If you're not publishing packs, ignore this scenario entirely.
Frequently asked
What can the Coda MCP do in Switchy?
The Coda MCP lets your team create, copy, and manage Coda docs and packs directly from Switchy. It handles permissions, custom domains, content exports, and pack publishing workflows. You can automate doc creation, bulk-update permissions, or trigger exports without opening Coda's UI. It's built for teams that treat Coda as their system of record and want programmatic control.
Do I need a Coda API key to connect this MCP?
Yes. You'll generate an API key from your Coda account settings and paste it into Switchy during setup. The key inherits your Coda permissions, so if you're a doc maker or workspace admin, the MCP can manage packs and permissions. If you're a doc editor, it's limited to reading and editing content. One key per Switchy workspace is typical.
Can the Coda MCP edit tables and formulas inside docs?
No. The MCP focuses on document-level operations—copying docs, managing permissions, exporting content, publishing packs. It doesn't manipulate rows, columns, or formulas within tables. For that, use Coda's native automations or the Coda API directly. This MCP is for doc orchestration, not cell-level edits.
How is this different from using Coda's API directly?
The MCP wraps Coda's API into 50 natural-language tools that Switchy's AI can call without you writing code. Instead of crafting HTTP requests and parsing JSON, you describe what you want—'copy this doc and add Sarah as an editor'—and the MCP handles the API calls. It's faster for ad-hoc tasks; the raw API is better for custom integrations.
Who on the team should connect the Coda MCP?
Whoever owns your Coda workspace or manages doc permissions. That person's API key determines what the MCP can access. If you connect it with a doc maker's key, the whole team can publish packs and manage permissions through Switchy. If you use an editor's key, it's read-and-edit only. One connection per workspace is standard.