Skip to content
Share
Explore

Tools and endpoints

List of current MCP endpoints and supported tools
Last edited 16 hours ago by Bharat Batra.

Once connected, your AI assistant can read and write content across your Coda docs by using the many tools the MCP offers. Here are a few tips for working with MCP tools:


📝 Most useful prompts chain a few tools together.
You might search for a doc, read its tables, add some rows, then add a page with a summary of your work and references to the original page.

👉 Knowing what each tool does helps you ask for the right things.
You can see the Key parameters column below to understand how a tool might be used and what kind of context can help make it more accurate.
For example, the page_read tool provides access to comments on a page, which is very useful when responding to feedback on a writeup.

⚠️ Tool names and parameters are subject to change and should not be used directly in Code
Especially while the MCP is in beta, we expect to make changes to make our tools more ergonomic for AI assistants. This may mean that tools can get renamed, removed, or added.
If you are building your own agents, it is advised against using tool names directly, as your agent may stop working if a breaking change is made to this toolset. Instead, let your agent dynamically read the tool description using listTools and call tools by dynamically constructing tool calls with callTools

Available Tools

Search
Object Type
Tool Name
Description
Example Use Cases
Key Parameters
Full Description
4

search

Search for content across documents, pages, tables, and rows. Returns ranked results with URLs.
• Find content across all accessible docs
• Search within a specific document
• Filter results to pages only or table rows only
• Filter by document owner
• Discover relevant information quickly
• Locate docs by keyword
• query (required)
• docUri (filter to specific doc)
• types (page, tableRow)
• limit (1-20, default 10)
• ownerUserId (filter by doc owner)
Open

url_convert

Convert between coda:// resource URIs and Coda web URLs. Use action "encode" for coda:// → https, "decode" for https → coda://. After decode, pass uri to table/page tools, docUri to formula_execute. No need to call document_read or tool_guide first.
• Parse user-shared Coda links to get resource URIs
• Convert browser URLs to coda:// URIs for use with all other tools
• Convert coda:// URIs back to shareable web URLs
• Extract both resource-level and document-level URIs in one call
• action ("encode" or "decode", required)
• url (Coda web URL, for decode)
• uri (coda:// URI, for encode)
• Returns: uri (most specific resource) and docUri (document scope)
Open

whoami

Get the current authenticated user information (ID, name, email).
• Ask about tasks belonging to you or pages authored by you
• Verify which Coda account is authenticated
• Get userId for search's ownerUserId filter
None (no parameters required)
Open

tool_guide

Get detailed guidance before working in specific areas. Call with the relevant topic before performing operations.
• Learn CFL formula syntax before writing formulas
• Understand content_modify operations before editing pages
• Review comment_manage actions before working with comments
• Check table column types before creating or modifying tables
• Get document creation best practices
• topic (required): comment, content, document, formula, getting_started, navigation, page, table
• subTopic (optional, for deeper guidance within a topic)
Open
3

document_create

Create a new Coda document. Call tool_guide with "document" topic first for usage patterns.
• Start a new project from scratch
• Organize docs into specific workspaces and folders
• Set up a blank doc before adding pages and tables
• title (required)
• destination.workspaceId
• destination.folderId
Open

document_read

Get document structure: pages list and metadata (tables, formulas, controls, comments). Call tool_guide with "page" topic for content type options.
• Explore doc structure before making changes
• Discover all tables/formulas across pages
• Audit comments across a document
• Check document organization before reading specific pages
• uri (coda://docs/{docId})
• contentTypesToInclude (tables, formulas, controls, comments)
• pageLimit (1-50, default 25)
• pageOffset
Open

document_delete

Permanently delete a Coda document. This action cannot be undone.
• Clean up test documents
• Remove deprecated or archived docs permanently
• uri (coda://docs/{docId})
Open
4

page_create

Create a new page. To copy existing pages or documents, use content_duplicate instead. Call tool_guide with "page" topic for options.
• Create nested wiki structures with parent/child pages
• Set up polished pages with icons and cover photos
• Build branded templates with consistent styling
• Control metadata display (author, timestamps)
• uri (document URI for top-level, page URI for nested)
• title (required)
• icon
• subtitle
• coverPhoto (url, width, height)
• position
• showLastEdited, showAuthor, showIcon, showCoverPhoto, showSubtitle
Open

page_read

Read page content and metadata. Call tool_guide with "page" topic for content type options.
• Read page content as markdown for AI analysis
• Get element IDs (with annotations) for precise content editing
• Review all comments on a page
• Discover tables and get their URIs for data operations
• Search for specific text within a page
• Paginate through long pages
• uri (page or canvas URI)
• contentTypesToInclude (markdown, tables, formulas, controls, comments)
• markdownBlockLimit (default 100)
• markdownBlockOffset
• markdownIncludeAnnotations (adds [[elementId]] for editing)
• markdownSearchTerms (filter blocks by text)
Open

page_update

Update an existing page. Call tool_guide with "page" topic for options.
• Polish docs with beautiful cover photos and icons
• Reorganize page hierarchy by changing parents
• Reorder pages with position
• Toggle metadata visibility for cleaner presentations
• uri (page URI)
• updateFields.title
• updateFields.subtitle
• updateFields.icon
• updateFields.coverPhoto (url, width, height)
• updateFields.parentPageUri (null for top-level)
• updateFields.position
• updateFields.showLastEdited, showAuthor, showCoverPhoto, showIcon, showSubtitle
Open

page_delete

Delete a page from a document. Set shouldDeleteChildren to delete child pages recursively.
• Remove a single outdated page
• Delete an entire section including all nested sub-pages
• Clean up page hierarchies
• uri (page URI)
• shouldDeleteChildren (recursive delete)
Open
9

table_create

Create a new table on a page with specified columns and optional initial data. Supports various column types, formulas, and positioning. Call tool_guide with "table" topic for column types.
• Build task trackers with checkboxes and dates
• Create CRM tables with person and email columns
• Set up project timelines with date columns
• Create rating systems with scale columns
• Pre-populate with initial data
• Control table placement on the page
• uri (page or canvas URI)
• name (table name)
• columns (name, format, formula, isDisplayColumn)
• columns.format types: text, checkbox, email, link, person, select list, lookup, number, percentage, currency, date, time, datetime, scale, slider, reaction, canvas
• rows (initial data in column order)
• insertPosition (element ID or "page_start")
Open

table_delete

Delete an entire table from a document. This permanently removes the table and all its data.
• Remove deprecated tables
• Clean up document structure
• Delete temporary data tables
• uri (table or view URI)
Open

table_rows_read

Read row data from a table with cell values. Pass table uri directly.
• Fetch specific rows by ID for targeted updates
• Filter rows with CFL formulas (e.g., status = "Active")
• Select only specific columns to reduce payload
• Paginate through large tables
• Get row IDs required for update/delete operations
• Include row-level comments
• uri (table or view URI)
• filterFormula (CFL expression to filter rows)
• filterColumnNames (return only specific columns)
• rowLimit (max 100)
• rowOffset (pagination)
• rowNumbersOrIds (specific rows)
• includeComments (default false)
Open

table_rows_manage

Add or update table rows. Use action "add" to insert new rows, or "update" to modify existing rows. Supports markdown formatting in cell values (e.g. "**bold**"). Call tool_guide with "table" topic for usage patterns.
• Bulk import data from external sources
• Add multiple records in a single API call
• Batch update task statuses
• Modify multiple records efficiently
• Sync external data into Coda
• Insert rows with markdown-formatted text content
• uri (table or view URI)
• data.action ("add" or "update")
• For add: data.columns (column IDs), data.rows (value arrays, max 100)
• For update: data.rows[].rowNumberOrId, data.rows[].updateCells[].columnId, data.rows[].updateCells[].value
• Exclude formula and reaction columns
Open

table_rows_delete

Delete rows from a table. Call tool_guide with "table" topic for usage patterns.
• Clean up completed tasks in bulk
• Remove archived entries
• Delete all rows to reset a table
• Efficiently delete up to 500 rows in one call
• uri (table or view URI)
• data.action ("delete_specific" or "delete_all")
• data.rowNumbersOrIds (for delete_specific, max 500)
Open

table_columns_manage

Add or update table columns (name, type, formula). For action “update”: cannot change cell text formatting — use table_rows_manage with markdown (e.g. “bold”) instead. Call tool_guide with “table” topic for column types.
• Add calculated formula columns
• Extend schema with new field types
• Insert columns at specific positions
• Create lookup columns linking to other tables
• Rename columns for clarity
• Change column types (e.g., text to select list)
• Update formula expressions
• uri (table or view URI)
• data.action ("add" or "update")
• For add: columns[].name, columns[].format, columns[].formula, columns[].isDisplayColumn, position
• For update: columns[].columnId, columns[].updatedFields (name, format, formula, isDisplayColumn)
• Max 20 columns per request
Open

table_columns_delete

Delete columns from a table. Call tool_guide with "table" topic for usage patterns.
• Remove deprecated fields
• Clean up unused columns
• Simplify table schema
• uri (table or view URI)
• columnIds (array of column IDs to delete)
Open

table_view_manage

Add a new view to a table (action "add") or configure an existing view (action "configure"): name, filter, layout.
• Create filtered views for different audiences
• Switch table display to card, calendar, or timeline layout
• Apply shared filter formulas to views
• Rename views for clarity
• Set up sort orders and column grouping
• Hide specific columns in a view
• Add conditional formatting rules
• uri (table URI for "add", view URI for "configure")
• data.action ("add" or "configure")
• name (required)
• viewLayout ("default grid", "card", "calendar", "timeline")
• filterFormula (CFL expression, null to clear)
• sorts (columnId + direction)
• groups (left and/or top column IDs)
• columnVisibility.hideColumnIds
• conditionalFormats (condition, formatStyles, scope)
Open

table_view_delete

Delete a table's view.
• Remove unused or deprecated views
• Clean up view clutter
• uri (view URI: coda://docs/{docId}/tables/{tableId}/views/{viewId})
Open
4

content_modify

Modify canvas content: insert, replace, or delete elements. Call tool_guide with "content" topic first for usage patterns.
• Add formatted documentation with headers and lists
• Insert styled callouts for tips, warnings, alerts
• Add syntax-highlighted code blocks
• Replace text within specific elements or by text match
• Delete content by element ID or text match
• Insert image placeholders (then upload via content_image_upload)
• Build rich page layouts programmatically
• uri (page or canvas URI) • operations (up to 10 per request): — insert_element (blockType: markdown, callout, codeblock, divider, image) — replace_element_text (by elementId + oldText/newText) — replace_text (by oldText/newText, supports all flag) — delete_element (by elementId) — delete_element_by_text (by oldText, supports all flag) • callout: style, icon, color, dismissible • codeblock: language (70+) • divider: style • insertPosition
Open

content_duplicate

Duplicate content from one location to another. Can copy pages and documents into both new or existing documents. Call tool_guide with "content" topic for usage patterns.
• Copy a page (with subpages) to another document
• Fork a document into a new standalone copy
• Merge a document's pages into an existing doc
• Create templates by duplicating master pages
• Clone page structure with or without row data
• copy.copyType ("copyPage" or "copyDocument")
• copy.sourceDocUri (required)
• copy.sourcePageUri (for copyPage)
• copy.destinationDocUri (omit to create new doc)
• copy.destinationParentPageUri
• copy.destinationWorkspaceId / destinationFolderId
• copy.includeTableRows (default false, always true for new docs)
• copy.newTitle
Open

content_image_upload

Upload an image to fill a previously inserted image placeholder. Use after inserting an image block via content_modify. Two modes: (1) provide imageUrl to upload directly using an https:// URL, or (2) omit imageUrl and provide contentType to get an uploadUrl for local file upload via curl. Base64 data URLs are not supported. Call tool_guide with "content" topic for usage patterns.
• Add images to page content
• Upload screenshots or diagrams
• Embed external images by URL
• Upload local files via curl
• uri (document URI)
• blobId (from content_modify image placeholder)
• imageUrl (https:// URL, or omit for upload mode)
• contentType (MIME type, required when imageUrl is omitted)
• altText
Open

comment_manage

Add, reply to, or delete comments and comment threads. Call tool_guide with "comment" topic for usage patterns.
• Add feedback comments on specific page elements
• Reply to existing comment threads
• Add comments to specific table rows
• Delete individual replies or entire threads
• Anchor comments to specific text within an element
• uri (document URI) • data.action: add_to_page, add_to_row, add_reply, delete_reply, delete_thread • data.content (markdown) • data.pageUri + elementId (for page comments) • data.tableUri + rowId (for row comments) • data.threadUri (for replies/deletes) • data.text (anchor to specific text within element)
Open
3

formula_execute

Evaluate a Coda Formula Language (CFL) expression and return the result. Requires a document URI. Call tool_guide with "formula" topic first for usage patterns.
• Count rows matching a condition
• Calculate sums, averages, or aggregates from table data
• Compare values across groups
• Test formula expressions before creating formula controls
• Answer analytical questions about table data
• uri (document URI, coda://docs/{docId})
• formula (CFL expression, required)
Open

control_manage

Create or update a canvas control (formula or button). Use action "create" to add a new control, or "update" to modify an existing one. Call tool_guide with "formula" topic for usage patterns.
• Display live KPI summaries on dashboards
• Calculate totals/averages from table data
• Create dynamic status indicators
• Build real-time metrics displays
• Format output as currency, percentage, dates
• Create action buttons that execute formulas
• Build interactive controls with disable conditions
• uri (canvas URI for "create", formula/control URI for "update")
• data.action ("create" or "update")
• For create: control.type ("formula" or "button"), control.formula, control.name, control.format, insertPosition
• For button: control.actionFormula, control.label, control.color, control.disableIfFormula
• For update: updatedFields (formula, name, format, label, actionFormula, color, disableIfFormula)
Open

control_delete

Delete a control from the document. This permanently removes the control.
• Remove unused dashboard formulas
• Clean up deprecated calculations
• Delete obsolete buttons
• uri (formula or control URI: coda://docs/{docId}/formulas/{formulaId} or coda://docs/{docId}/controls/{controlId})
Open

Learn more about Coda MCP

Guides to help you get started, build something real, and go further.
Not sure what MCP is or where to begin? Start here.
Follow along to build a real working doc using Coda's MCP.
Ready to do more? Explore intermediate use cases and workflows.

Get help with Coda MCP

Everything you need to connect, use, and stay secure.
Step-by-step instructions for connecting your AI client.
A reference for working with MCP day-to-day.
Best practices to keep your setup safe.


Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.