Coda for AI agents

Coda turns documents into flexible tools, combining text, tables, and automation so a team can build trackers and workflows inside a single doc. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

ProductivityAPI keyMCP + RESTcoda.io
AUDIT LOG · CODAPOLICY: acme-support
09:41:07 · claude · u_8f2read
coda.list_packs
List packs✓ allowed · 212ms
09:41:08 · claude · u_8f2read
coda.get_a_row
Get a row✓ allowed · 164ms
09:41:09 · claude · u_8f2write
coda.create_doc
Create doc✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
coda.delete_doc
Delete doc✕ blocked · policy: deny
EVERY CODA CALL, ON THE RECORD
01 · USE CASES

What agents do in Coda.

01

Create a new page in a doc

Create a new page inside a doc, ready to hold notes or a table.

02

Delete a row from a table

Delete a specific row from a table once its data is no longer needed.

03

Confirm before deleting a doc

Confirm before deleting a doc, since every page and table inside it is removed too.

02 · ACTIONS

110 Coda actions, graded by risk.

Every Coda action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

57

Look things up. Allowed by default.

  • coda.get_a_row
    Get a row
  • coda.get_a_page
    Get a page
  • coda.get_folder
    Get folder
  • coda.list_packs
    List packs
  • coda.list_pages
    List pages
  • coda.get_a_table
    Get a table
  • coda.list_tables
    List tables
  • coda.get_a_column
    Get a column
  • coda.list_columns
    List columns
  • coda.list_folders
    List Folders
  • coda.get_a_control
    Get a control
  • coda.get_a_formula
    Get a formula
  • coda.get_user_info
    Get user info
  • coda.list_controls
    List controls
  • coda.list_formulas
    List formulas
  • coda.list_table_rows
    List table rows
+ 41 MORE

write

40

Create and change things. Allow, or ask the user first.

  • coda.create_doc
    Create doc
  • coda.update_doc
    Update doc
  • coda.update_row
    Update Row in Coda Table (Deprecated)
  • coda.create_pack
    Create Pack
  • coda.update_pack
    Update pack
  • coda.create_a_page
    Create a page
  • coda.create_folder
    Create Folder
  • coda.update_a_page
    Update a page
  • coda.update_folder
    Update Folder
  • coda.add_permission
    Add permission
  • coda.add_custom_domain
    Add custom domain
  • coda.update_acl_settings
    Update acl settings
  • coda.add_a_maker_for_pack
    Add a maker for pack
  • coda.create_pack_invitation
    Create Pack Invitation
  • coda.add_a_category_for_pack
    Add a category for pack
  • coda.add_a_permission_for_pack
    Add a permission for pack
+ 24 MORE

destructive

13

Delete, cancel or archive. Ask first, or deny outright.

  • coda.delete_doc
    Delete doc
  • coda.delete_row
    Delete row
  • coda.delete_pack
    Delete pack
  • coda.delete_a_page
    Delete a page
  • coda.delete_folder
    Delete Folder
  • coda.delete_permission
    Delete permission
  • coda.delete_page_content
    Delete Page Content
  • coda.delete_multiple_rows
    Delete multiple rows
  • coda.delete_a_maker_for_pack
    Delete a maker for pack
  • coda.delete_pack_listing_draft
    Delete Pack listing draft
  • coda.delete_a_category_for_pack
    Delete a category for pack
  • coda.delete_a_permission_for_pack
    Delete a permission for pack
  • coda.unpublish_doc
    Unpublish doc
03 · HOW IT WORKS

Coda in three steps.

  1. 01Your users connect CodaThey add their Coda api key on Arc0 Connect, under your brand. It goes straight into the vault.
  2. 02You set the rulesReads run, writes like “create doc” can wait for the user, and “delete doc” can be denied outright.
  3. 03Any agent can actYour agent calls Coda through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('coda', {
  read: 'allow',
  write: 'ask',        // create_doc
  destructive: 'deny',  // delete_doc
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How Coda connects.

Users add their Coda api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

The same Coda connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
API key
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use Coda from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Coda and Arc0, answered.

Q01

Can I use Coda with Claude, ChatGPT or Cursor?

Yes. Connect Coda to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Coda actions you allow.

Q02

How do users connect Coda?

Users add their Coda api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

Q03

Which Coda actions can my agent take?

110 in total: 57 read, 40 write and 13 destructive, such as “create doc”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in Coda?

Yes. Actions like “delete doc” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.

Q05

Can my own backend call Coda too?

Yes. The same Coda connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug Coda into your agent.

Your users connect Coda once, under your brand. Your agent gets 110 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan