
List columns in a Coda table with pagination. Use pagetoken from pageinfo for next page.
Get a column by ID or name. Use list_columns to find valid column IDs.
List controls (sliders, date pickers, etc.) in a Coda doc with pagination.
Get a control and its current value. Use list_controls to find valid control IDs.
List accessible Coda docs with pagination. Use pagetoken from pageinfo for next page. Supports filtering by owner and search query.
Get a Coda doc by ID. Use list_docs to find valid doc IDs.
Create a new Coda doc. Optionally specify a title, source doc to copy, or folder.
Update a Coda doc's title or icon.
Delete a Coda doc by ID. This is permanent and cannot be undone.
List named formulas in a Coda doc with pagination. Use pagetoken from pageinfo for next page.
Get a named formula and its current value. Use list_formulas to find valid formula IDs.
List pages in a Coda doc with pagination. Use pagetoken from pageinfo for next page.
Get a page by ID or name in a Coda doc. Use list_pages to find valid page IDs.
Update a page's name, subtitle, or icon in a Coda doc.
List rows in a Coda table with pagination. Supports query formula filter (e.g. 'Status = "Done"'), sortBy column, and valueFormat. Use list_columns for column names.
Get a row by ID or name (display column value). Use list_columns to understand cell value keys.
Insert one or more rows into a Coda table. Each row needs cells: [{"column": "Col Name", "value": "val"}]. Returns request ID for async tracking.
Insert or update rows based on key columns. Rows matching keyColumns are updated, others are inserted. Each row needs cells: [{"column": "Col", "value": "val"}].
Update a single row's cell values. Provide row data as cells: [{"column": "Col", "value": "new val"}].
Delete one or more rows by ID from a Coda table. Use list_rows to find valid row IDs.
List tables and views in a Coda doc with pagination. Use pagetoken from pageinfo for next page.
Get a table or view by ID or name. Use list_tables to find valid table IDs.
Validate Coda API credentials by calling the whoami endpoint. Returns {success, message}.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}It’s an MCP server that exposes functionality and data from a Coda instance via tools. Your agents can invoke these tools to create pages, list tables, get specific rows, and more.
Coda currently offers its own official MCP server. You can also access a Coda MCP server from a 3rd-party platform, like Merge Agent Handler.
Here are just a few popular use cases:
Here are some popular tools:
There are several reasons:
Yes, Merge Agent Handler includes a security gateway with data loss protection (DLP) that allows you to define custom rules for tool inputs and outputs.
You can:
You can take the following steps:
1. Create (or sign in to) your Merge Agent Handler account, then open the Agent Handler dashboard.
2. Create a Tool Pack for your Coda workflow (e.g., “Knowledge base updates”). The Tool Pack is where you choose which Coda tools your agent will be allowed to call.
3. Add the Coda connector (MCP server) to that Tool Pack and select the specific Coda tools you want exposed.
4. Create or select the Registered User identity that will make the tool calls (end-user identity or a service account identity), then authenticate Coda for that Registered User so credentials are available at runtime.
5. Configure your security rules for Coda tool traffic (default and any custom DLP rules to block/redact/mask sensitive data in tool inputs/outputs), then test the workflow in a safe sandbox doc/table.
6. Copy your Agent Handler MCP endpoint for that Tool Pack and Registered User. This is the MCP server URL you’ll point your MCP client/agent runtime at.
7. Connect your MCP client/agent framework to that endpoint and provide the required authorization header/token for your Agent Handler environment (per your deployment’s secret management process).
8. In your MCP client, refresh/list tools to confirm the Coda tools appear, run a couple of simple calls, then verify everything in Agent Handler logs (arguments, responses, policy decisions) before widening access or enabling write actions broadly.
Yes, Agent Handler for Employees lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to Coda without bypassing IT governance.
Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Agent Handler and gets individual credentials tied to their identity. A product manager can, for instance, ask their AI to pull data from a Coda table, update a row, or search across their team's docs for a specific spec or decision.
IT provisions access by role or group via SCIM. This means a PM can access Coda, Jira, and GitHub, a marketing manager gets Coda, HubSpot, and Google Sheets, and an engineer gets Coda, GitLab, and Datadog.
Every tool call an employee's AI makes to Coda is inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.
Yes, Agent Handler for Employees lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to Coda without bypassing IT governance.
Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Agent Handler and gets individual credentials tied to their identity.
IT also provisions access by role or group via SCIM. A PM, forexample, gets Coda to manage project docs and tables, Jira to track delivery tasks, and GitHub to reference code decisions; while a marketing manager gets Coda to update campaign trackers, HubSpot to pull campaign and contact data, and Google Sheets to report on marketing metrics.
Every tool call an employee's AI makes to Coda is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now