# Coda MCP

> Coda MCP connects your AI agent directly to your collaborative workspace data. You can manage structured documents and spreadsheets through conversation—list tables, update project rows, run formula checks, and orchestrate complex workflows without opening a browser tab.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** document-automation, structured-data, workspace-management, spreadsheet-integration, collaborative-docs, api-orchestration

## Description

This connector gives your AI client full control over your Coda docs and databases. Instead of jumping between tabs to check row statuses or pull data points from different documents, you talk to your agent, and it does the work for you. You can manage entire project trackers like they’re a database: listing out all available tables, checking column names, and retrieving specific formula values on demand. Need to update task status across 50 rows? Your agent handles that in one command. This capability is managed through Vinkius, making it easy for any MCP-compatible client to access your data structures immediately.

## Tools

### delete_rows
Removes specified rows from a table in the workspace.

### get_doc_details
Retrieves metadata and structural details for a specific Coda document.

### get_table_details
Gets detailed information about the structure of a single table, including its columns.

### insert_rows
Adds one or more new, specified rows into a target table.

### list_columns
Lists all column names and types for an existing table.

### list_docs
Retrieves a list of every document available in your Coda workspace.

### list_formulas
Lists all named formulas used within a specific document for analysis.

### list_rows
Retrieves and filters row data from a specified table using natural language queries.

### list_tables
Lists all tables contained within a single document ID.

### update_row
Changes the values in specific fields of an existing row.

### get_user_profile
Fetches your personal Coda profile details and associated workspace metadata.

## Prompt Examples

**Prompt:** 
```
List all tables in Coda document ID 'doc_123'.
```

**Response:** 
```
I've retrieved the tables for your doc. You have 3 active tables: 'Task_List' (ID: grid-abc), 'Project_Timeline', and 'Team_Resources'. Which one should we inspect for rows?
```

**Prompt:** 
```
Add a row to 'Tasks' with Title 'Design API' and Priority 'High'.
```

**Response:** 
```
Action complete! I've inserted the new row into the 'Tasks' table. The record is now visible in your Coda doc with the specified title and priority metadata.
```

**Prompt:** 
```
Retrieve the value of the named formula 'Total_Project_Budget'.
```

**Response:** 
```
Fetching formula... The current value of 'Total_Project_Budget' in your document is $15,420.00. Shall I list all other named formulas in this workspace for you?
```

## Capabilities

### Manage document metadata
Retrieves high-level details about specific Coda documents or the entire workspace profile.

### List and inspect tables
Finds all available tables within a document, then lists the columns and row data for any selected table.

### Read structured data points
Pulls specific field values or calculates named formula results from your project records.

### Modify database content
Adds new rows, updates existing fields in a row, or deletes entire records programmatically.

## Use Cases

### A project needs an audit of all tasks.
The analyst asks the agent to list all documents (`list_docs`) and then retrieve specific rows from every table. The agent consolidates this into a single report, identifying stale or incomplete records using `list_rows`.

### Onboarding a new team member.
The manager needs to ensure the new employee's profile is accurate. They ask the agent to check both their personal details (`get_user_profile`) and update their role in the main 'Team Roster' table using `update_row`.

### Data cleanup after a merger.
The ops team needs to prune old project data. Instead of manually deleting sheets, they instruct the agent to run `delete_rows` on specific tables and confirm that all necessary metadata was captured using `get_doc_details` first.

### Quickly validating a financial metric.
A product lead needs to know the current project budget. They ask the agent to fetch the value of 'Total Budget' by running through `list_formulas`, getting an immediate, accurate number without opening any sheets.

## Benefits

- Stop toggling between tabs. Instead of manually navigating to a document, asking the AI client to use `list_docs` immediately shows you all available workspaces in one query.
- Manage project status like a database. If you need to update task priorities across 50 different rows, just tell your agent. It runs `update_row`, and the changes happen instantly.
- Instant structural checks. Before building something, run `list_tables` or `get_table_details`. This confirms exactly what data structures are available, saving hours of guesswork.
- No more manual formula checking. You can ask for a specific metric—like 'What is the total budget?'—and your agent runs through `list_formulas` to get that value directly.
- Full lifecycle control: Need to clean up old records? Use `delete_rows` or `insert_rows`. It gives you write access across every table, making it a true data ops tool.

## How It Works

The bottom line is that your AI acts as a dedicated data architect for your Coda workspace.

1. Subscribe to this MCP and grab your API Token from Coda's account settings.
2. Connect your AI client (Claude, Cursor, etc.) using the token. The agent now sees your entire document structure.
3. Tell your agent what you need—for example, 'Update task X status to complete.' It executes the necessary write operations and confirms completion.

## Frequently Asked Questions

**How do I list all the documents using list_docs?**
Run `list_docs` first. This gives you a complete inventory of every document ID in your workspace, so you know exactly what data sources are available to your agent.

**Is there a single tool to update all project fields?**
No. You must use `update_row` and specify the exact table name, row ID, and which field needs its value changed. The more specific you are, the better the result.

**How can I check if a formula exists using list_formulas?**
Use `list_formulas` to get a roster of all named formulas in a document. If it's not listed there, your agent won't be able to retrieve its value.

**Can I read data from multiple tables at once?**
Yes. You can chain requests: first, use `list_tables` to find the relevant tables, then ask the agent to run `list_rows` on each one and combine the results.

**How do I check my account details using get_user_profile?**
It retrieves your full Coda profile metadata. You can use this to confirm the owner's name, email address, and other operational reporting data for validation purposes.

**Before I read any records, how do I find all available tables using list_tables?**
This function lists every table within a document. You get the unique ID and names of all potential data sources, which is essential for targeting your operations.

**What information does get_table_details provide about a table's schema?**
It gives you the full structure of the table. You learn the column names, their associated data types, and any unique constraints before attempting to insert or update records.

**Can I use delete_rows to clean up old or incorrect records?**
Yes, you can specify which rows need removal. The tool requires the table ID and row identifiers, ensuring you only delete exactly what's needed for data hygiene.

**How do I find my Coda API Token?**
Log in to Coda, navigate to **Account Settings** > **API Settings**, and generate a new token for your integration.

**Where do I find my Doc ID?**
The Doc ID is the string of characters in your Coda document's URL after the '/d/'.

**Can I filter rows using natural language?**
Yes! The `list_rows` tool supports a `query` parameter where the agent can apply filters like `Status:"Done"` to find specific data.