mcp-coda
Provides tools for managing Coda documents, pages, tables, rows, formulas, controls, permissions, folders, publishing, automations, and analytics via the Coda API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-codalist my Coda documents"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-coda
Install: uvx mcp-coda | PyPI | MCP Registry | Changelog
mcp-coda is a Model Context Protocol (MCP) server for the Coda API — 54 tools, 12 resources, and 5 prompts covering docs, pages, tables, rows, formulas, controls, permissions, folders, publishing, automations, and analytics. Works with Claude Desktop, Claude Code, Cursor, Windsurf, VS Code Copilot, and any MCP-compatible client.
Built with FastMCP, httpx, and Pydantic.
1-Click Installation
Tip: For other AI assistants (Claude Code, Windsurf, IntelliJ, Gemini CLI), visit the Coda MCP Installation Gateway.
Prerequisite: Install
uvfirst (required for alluvxinstall flows). Install uv.
Claude Code
claude mcp add coda -- uvx mcp-codaWindsurf & IntelliJ
Windsurf: Add to ~/.codeium/windsurf/mcp_config.json
IntelliJ: Add to Settings | Tools | MCP Servers
Note: The actual server config starts at
codainside themcpServersobject.
{
"mcpServers": {
"coda": {
"command": "uvx",
"args": ["mcp-coda"],
"env": {
"CODA_API_TOKEN": "your-token-here"
}
}
}
}Gemini CLI
gemini mcp add -e CODA_API_TOKEN=your-token-here coda uvx mcp-codapip / uv
uv pip install mcp-codaRelated MCP server: Coda MCP Server
Configuration
Variable | Required | Default | Description |
| Yes | - | Coda API token (get one here) |
| No |
| Set to |
| No |
| API base URL |
| No |
| Request timeout in seconds |
| No |
| Set to |
Supported Token Types
The server checks these environment variables in order — first match wins:
CODA_API_TOKENCODA_TOKENCODA_PAT
Tokens are generated at coda.io/account#apiSettings. Tokens grant access to all docs accessible by the token owner. There are no scope restrictions — access is controlled at the doc level via Coda's sharing settings.
Compatibility
Client | Supported | Install Method |
Claude Desktop | Yes |
|
Claude Code | Yes |
|
Cursor | Yes | One-click deeplink or |
VS Code Copilot | Yes | One-click deeplink or |
Windsurf | Yes |
|
Any MCP client | Yes | stdio or HTTP transport |
Tools (54)
Category | Count | Tools |
Account | 4 | whoami, resolve browser link, mutation status, rate limit budget |
Docs | 5 | list, get, create, update, delete |
Pages | 8 | list, get, create, update, delete, get content, delete content, export |
Tables | 4 | list tables, get table, list columns, get column |
Rows | 7 | list, get, insert/upsert, update, delete, bulk delete, push button |
Formulas | 2 | list, get |
Controls | 2 | list, get |
Permissions | 6 | sharing metadata, list, add, delete, search principals, ACL settings |
Publishing | 3 | list categories, publish, unpublish |
Folders | 5 | list, get, create, update, delete |
Automations | 1 | trigger automation |
Analytics | 7 | doc analytics, doc summary, page analytics, pack analytics, pack summary, formula analytics, analytics updated |
Account
Tool | Description |
| Get current user info |
| Convert browser URL to API IDs |
| Check async write status |
| Get remaining rate limit budget |
Docs
Tool | Description |
| List accessible docs |
| Get doc metadata |
| Create a new doc |
| Update doc title/icon |
| Delete a doc |
Pages
Tool | Description |
| List pages in a doc |
| Get page metadata |
| Create a page |
| Update page name/content |
| Delete a page |
| Read page content |
| Clear page content |
| Export page as HTML or markdown |
Tables
Tool | Description |
| List tables and views |
| Get table metadata |
| List columns in a table |
| Get column metadata |
Rows
Tool | Description |
| List and filter rows |
| Get a single row |
| Insert or upsert rows |
| Update a row |
| Delete a row |
| Bulk delete rows by filter |
| Push a button column value |
Formulas
Tool | Description |
| List named formulas |
| Get formula value |
Controls
Tool | Description |
| List controls |
| Get control value |
Permissions
Tool | Description |
| Get sharing config |
| List ACL entries |
| Grant access |
| Revoke access |
| Search users/groups |
| Get ACL settings |
Publishing
Tool | Description |
| List publishing categories |
| Publish a doc |
| Unpublish a doc |
Folders
Tool | Description |
| List folders |
| Get folder details |
| Create a folder |
| Rename a folder |
| Delete a folder |
Automations
Tool | Description |
| Trigger an automation rule |
Analytics
Tool | Description |
| Doc usage metrics |
| Aggregated doc metrics |
| Page usage metrics |
| Pack usage metrics |
| Aggregated pack metrics |
| Formula-level metrics |
| Analytics freshness timestamp |
Resources (12)
The server exposes MCP resources that provide ambient context without consuming tool calls.
Data Resources (live API)
URI | Name | Description |
| Coda Docs | List of docs accessible to the current API token |
| Coda Doc Schema | Table and column definitions for a doc |
Rules (static knowledge)
URI | Name | Description |
| Coda Doc Structure | Doc/page hierarchy, page types, naming, when to split docs vs folders |
| Coda Table Design | Column types, relations, display columns, row limits, table vs view |
| Coda Permission Model | Doc-level vs page-level locking, ACL, domain sharing, principal types |
| Coda Automation Patterns | Webhooks, button triggers, rate limits, payload design, idempotency |
| Coda API Best Practices | Rate limits, pagination, async mutations, error handling, retry |
Guides (how-to)
URI | Name | Description |
| Row Operations Guide | Insert vs upsert, bulk ops, key columns, cell formats, delete strategies |
| Page Content Guide | HTML vs markdown, insert modes, export workflows |
| Formulas & Controls Guide | Named formulas, control types, reading values |
| Publishing & Analytics Guide | Publishing categories, gallery settings, analytics date filtering |
| Folder Organization Guide | Folder CRUD, doc-folder relationships, hierarchy, bulk organization |
Prompts (5)
The server provides MCP prompts — reusable task templates that clients can invoke.
Prompt | Parameters | Description |
|
| Analyze a doc's page hierarchy, table layout, and organization |
|
| Design a table schema from a natural language description |
|
| Guide for migrating CSV/Excel/Sheets data into Coda |
|
| Set up a webhook/button/time automation with error handling |
|
| Audit sharing and permissions, suggest tightening |
Usage Examples
Docs & Pages
"List all my Coda docs"
→ coda_list_docs(is_owner=True)
"Get the content of page 'Sprint Planning' in doc d1"
→ coda_list_pages(doc_id="d1") → find page ID
→ coda_get_page_content(doc_id="d1", page_id_or_name="canvas-abc")
"Create a new doc from a template"
→ coda_create_doc(title="Q1 Planning", source_doc="template-doc-id")Tables & Rows
"List all tables in doc d1"
→ coda_list_tables(doc_id="d1")
"Find rows where Status is 'Done'"
→ coda_list_rows(doc_id="d1", table_id_or_name="Tasks", query="Done")
"Insert a new row into the Tasks table"
→ coda_insert_rows(doc_id="d1", table_id_or_name="Tasks", rows=[{"cells": [{"column": "Name", "value": "New task"}]}])
"Update a row's status"
→ coda_update_row(doc_id="d1", table_id_or_name="Tasks", row_id_or_name="i-abc", row={"cells": [{"column": "Status", "value": "In Progress"}]})Formulas & Controls
"Get the value of the TotalBudget formula"
→ coda_get_formula(doc_id="d1", formula_id_or_name="TotalBudget")
"Check the current value of the DateFilter control"
→ coda_get_control(doc_id="d1", control_id_or_name="DateFilter")Permissions & Sharing
"Share a doc with a teammate"
→ coda_add_permission(doc_id="d1", access="write", principal={"type": "email", "email": "alice@example.com"})
"List who has access to a doc"
→ coda_list_permissions(doc_id="d1")Security Considerations
Token scope: Coda API tokens grant access to all docs the token owner can access. Use a dedicated service account for production deployments to limit exposure.
Read-only mode: Set
CODA_READ_ONLY=trueto disable all write operations (create, update, delete). Read-only mode is enforced server-side before any API call.MCP tool annotations: Each tool declares
readOnlyHint,destructiveHint, andidempotentHintfor client-side permission prompts.SSL verification:
CODA_SSL_VERIFY=trueby default. Only disable for development against local proxies.No credential storage: The server does not persist tokens. Credentials are read from environment variables at startup.
Rate Limits & Permissions
Rate Limits
Coda enforces per-token rate limits (varies by plan). When rate-limited, tools return a 429 error with retry_after seconds. Use coda_rate_limit_budget to check remaining budget before batch operations. Paginated endpoints default to 25 results per page; use limit to adjust.
Async Mutations
Write operations (insert, update, delete rows) are processed asynchronously. Tools return a requestId that can be checked with coda_get_mutation_status to confirm completion.
Required Permissions
Operation | Minimum Coda Doc Role |
List docs, read pages, tables, rows, formulas, controls | Viewer |
Read permissions, analytics | Viewer (doc owner for analytics) |
Create/update pages, insert/update/delete rows | Editor |
Create/delete docs, manage folders | Editor (or doc owner) |
Add/remove permissions, publish/unpublish | Doc Owner |
Trigger automations | Editor |
Access Control
Layer | Mechanism |
Server-level |
|
MCP annotations |
|
Coda token | Doc-level access enforced by Coda's sharing settings |
CLI & Transport Options
# Default: stdio transport (for MCP clients)
uvx mcp-coda
# HTTP transport (SSE or streamable-http)
uvx mcp-coda --transport sse --host 127.0.0.1 --port 8000
uvx mcp-coda --transport streamable-http --port 9000
# CLI overrides for config
uvx mcp-coda --coda-token your-token --read-onlyThe server loads .env files from the working directory automatically via python-dotenv.
Related MCP Servers
mcp-gitlab — GitLab integration (76 tools, 6 resources, 5 prompts)
mcp-atlassian-extended — Jira + Confluence integration (23 tools, 15 resources, 5 prompts)
Development
git clone https://github.com/vish288/mcp-coda.git
cd mcp-coda
uv sync --all-extras
uv run pytest --cov
uv run ruff check .
uv run ruff format --check .License
MIT
Available Tools
54 toolscoda_add_permissionA
Add a permission entry to a Coda doc.
Grants access to a user by email or to an entire domain. Specify either principal_email or principal_domain (not both). The access level controls what the principal can do: readonly, write, comment, or none (removes implicit access). Returns the created permission entry.
| Name | Required | Description | Default |
|---|---|---|---|
| access | Yes | Access level to grant | |
| doc_id | Yes | The doc ID to add permission to | |
| principal_email | No | Email address of the user to grant access to | |
| principal_domain | No | Domain to grant access to (e.g. 'example.com') | |
| suppress_notification | No | If True, don't send an email notification |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (modifying) and the description elaborates on the effect (granting access, removing implicit access with 'none') and the return of the created entry. No contradiction; it adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, front-loading the primary action. Every sentence provides necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of output schema and annotations, the description covers the main functionality, constraints, and return type. It might benefit from mentioning required permissions but is adequate for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so parameters are already documented. The description adds value by clarifying mutual exclusivity of principal_email and principal_domain and the effect of the 'none' access level, which are not in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add a permission entry to a Coda doc' with specific verb and resource. It explains the action (granting access by email or domain) and distinguishes from sibling tools like delete_permission by its focus on adding permissions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage constraints: 'Specify either principal_email or principal_domain (not both)'. It does not explicitly contrast with alternatives but the mutual exclusivity guidance is clear and helpful for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_create_docA
Create a new Coda doc.
Creates a blank doc or a copy of an existing doc. Returns the new doc's ID, name, and browser URL. The doc is created in the specified folder, or the user's root if no folder is given. Use source_doc to clone an existing doc as a template.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title for the new doc | |
| folder_id | No | Folder ID to create the doc in (omit for root) | |
| source_doc | No | Doc ID to copy as a starting point |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) and open-world input. The description adds that it returns the new doc's ID, name, and URL, and respects folder placement, providing useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at 4 sentences, front-loaded the key purpose, and uses clear, direct language with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with 3 parameters and an existing output schema, the description covers all essential aspects without needing to repeat return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining that source_doc clones an existing doc as a template and that folder_id defaults to root, beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new Coda doc' and details the two modes (blank or copy), distinguishing it from sibling tools like coda_create_folder and coda_create_page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (create blank or copy) and mentions folder placement, but does not explicitly state when not to use it or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_create_folderA
Create a new folder in a Coda workspace.
Creates a folder in the specified workspace. Returns the new folder's ID and metadata. Use the folder ID when creating docs with coda_create_doc to organize them.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new folder | |
| description | No | Description for the folder | |
| workspace_id | Yes | Workspace ID where the folder will be created |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate this is a mutation (readOnlyHint=false) and may have side effects (openWorldHint=true). The description adds that it returns ID and metadata, but does not disclose any additional behavioral traits like permission requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loaded with the purpose and followed by a useful usage hint. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description adequately explains the action and how to use the result. The mention of workspace and folder ID provides sufficient context for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, so the description does not need to add detail. It does not elaborate on the parameters beyond what the schema provides, warranting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new folder in a workspace, specifies that it returns ID and metadata, and differentiates from other tools like coda_create_doc and coda_update_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context by suggesting to use the returned folder ID with coda_create_doc for organization. However, it does not discuss when not to use this tool or mention alternatives like coda_update_folder.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_create_pageA
Create a new page in a Coda doc.
Creates a page with optional initial content. Returns the new page's ID and metadata. The page is created at the top level unless parent_page_id is specified. Content can be HTML or markdown — specify the format via content_format. Pack formulas cannot be inserted via the API.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name/title for the new page | |
| doc_id | Yes | The doc ID to create the page in | |
| content | No | Initial page content in HTML or markdown | |
| subtitle | No | Subtitle text for the page | |
| content_format | No | Format of the content parameter | |
| parent_page_id | No | Parent page ID to nest under (omit for top-level) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false). The description adds behavioral context beyond annotations by stating that pack formulas cannot be inserted and that pages are created at top level unless parent_page_id is specified. This is useful for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with 5 sentences, front-loaded with the core purpose, and every sentence adds value. No redundant or vague statements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description correctly omits return details. It covers creation behavior, optional content, and nesting. However, it lacks information on error conditions, permission requirements, or uniqueness constraints, which would be helpful for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description restates some schema info (e.g., content_format for HTML/markdown) but adds no new per-parameter semantics beyond a general note about pack formulas. It does not enhance understanding of each parameter beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and resource 'page', and distinguishes from siblings like coda_create_doc and coda_create_folder by specifying it creates a page within a doc. Additional details about optional content and nesting further clarify the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating a new page but provides no explicit guidance on when not to use it or how to choose between alternatives like coda_update_page. The mention of top-level vs nested creation gives some context, but lacks comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_delete_docADestructive
Permanently delete a Coda doc.
This is irreversible — the doc and all its pages, tables, and data will be permanently removed. Verify the doc name with coda_get_doc before calling this. Returns a confirmation status.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The ID of the doc to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true; description reinforces irreversibility (doc and all pages, tables, data permanently removed). Adds context beyond annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all essential: action, consequence, usage tip and output. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool (one param, clear irreversible action), description covers all needed info. Output schema exists, so return values need not be explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (doc_id) with 100% schema coverage, so baseline is 3. Description adds indirect value by referencing verification step, earning a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it permanently deletes a Coda doc, using specific verb 'delete' and resource 'doc'. Distinguishes from sibling tools like coda_delete_page, coda_delete_row.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to verify the doc name with coda_get_doc before calling, providing a clear prerequisite and when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_delete_folderADestructive
Delete a folder from the Coda workspace. Returns confirmation with folder_id.
Permanently removes the folder. Docs inside the folder may be moved to the root level or deleted depending on Coda's behavior. Verify the folder with coda_get_folder before deleting.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes | The folder ID to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and the description explicitly states the folder is permanently removed. It also discloses that docs inside may be moved or deleted, adding valuable behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no extraneous information. It front-loads the action and return, then adds behavioral details and a recommendation. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema covers the parameter fully, annotations provide destructive hint, and an output schema exists, the description completes the picture by explaining return value, permanence, and effects on documents. It fully equips the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes folder_id as 'The folder ID to delete' with 100% coverage. The description does not add further parameter semantics beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a folder from the Coda workspace, using a specific verb and resource. It distinguishes from sibling tools like coda_create_folder, coda_update_folder, and coda_delete_doc by focusing solely on deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises verifying the folder with coda_get_folder before deletion, and notes potential consequences for docs inside. While it does not explicitly exclude alternative tools, it provides prudent context for when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_delete_pageADestructive
Permanently delete a page from a Coda doc.
This is irreversible — the page and all its content will be removed. Child pages are reparented to the deleted page's parent. Verify the page name with coda_get_page before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the page | |
| page_id_or_name | Yes | Page ID or name to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations: 'irreversible — the page and all its content will be removed. Child pages are reparented to the deleted page's parent.' This goes beyond the destructiveHint annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose. Each sentence adds necessary information without fluff. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive nature and the presence of output schema, the description is complete. It explains irreversibility, child page behavior, and gives a precaution. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add any additional meaning to the parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Permanently delete a page from a Coda doc.' This is a specific verb+resource combination that distinguishes it from sibling tools like coda_delete_doc or coda_delete_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to 'Verify the page name with coda_get_page before calling this,' providing clear context for use. It does not explicitly name alternatives but the context implies when to use this tool versus other delete tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_delete_page_contentADestructive
Delete all content from a page, leaving it blank.
Removes the page's text content but does NOT delete the page itself. The page remains in the doc with its name and metadata intact. This is irreversible. Use coda_delete_page to remove the page entirely.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the page | |
| page_id_or_name | Yes | Page ID or name to clear content from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that only text content is removed, page and metadata remain, and action is irreversible. Adds value beyond annotations which only indicate destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with main action, no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage and output schema, description fully explains behavior and distinct from sibling, covering all needed context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides descriptions for both parameters with 100% coverage; description adds no additional parameter meaning, meeting baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it deletes all content from a page, leaving it blank, and distinguishes from coda_delete_page which removes the page entirely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (to clear content) vs coda_delete_page (to remove page), and notes irreversibility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_delete_permissionADestructive
Remove a permission entry from a Coda doc.
Revokes the specified permission. The principal will lose access to the doc unless they have access through another permission (e.g. domain-level). Get the permission_id from coda_list_permissions first.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID to remove permission from | |
| permission_id | Yes | The permission ID to delete (from coda_list_permissions) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that revocation causes the principal to lose access unless other permissions exist, which is critical behavioral context beyond the annotations (destructiveHint=true). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each carrying essential information: purpose, effect, nuance, and prerequisite. It is front-loaded and concise without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool, the description covers the operation, its implications, and how to obtain the required input. With an output schema present, no further details on return values are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the input schema already describes both parameters with 100% coverage, the description adds value by explaining that permission_id should come from coda_list_permissions, linking the tools together and providing cross-reference information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Remove' and resource 'permission entry' from a Coda doc, clearly distinguishing it from sibling tools like coda_add_permission and coda_list_permissions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool (to revoke a permission), warns about potential access through other permissions, and instructs the agent to get the permission_id from coda_list_permissions first, providing clear guidance on prerequisites and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_delete_rowADestructive
Delete a single row from a Coda table.
Permanently removes the row. This is irreversible. Verify the row with coda_get_row before deleting. For bulk deletion, use coda_delete_rows with a list of row IDs instead.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the table | |
| row_id_or_name | Yes | Row ID or name to delete | |
| table_id_or_name | Yes | Table ID or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true; description adds 'permanently removes' and 'irreversible', reinforcing and contextualizing the destructive nature. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is relatively concise with 5 sentences, each adding value. Front-loaded with the core purpose, though could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, irreversibility, verification, and bulk alternative. With an output schema present, return values are covered. Missing auth/permission hints, but acceptable for this tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The tool description adds no further parameter details, staying at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Delete a single row from a Coda table' using a specific verb and resource. Distinguishes from sibling coda_delete_rows for bulk deletion, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises verifying before deletion and directs to coda_delete_rows for bulk operations. Provides clear when-to-use and when-not-to-use guidance with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_delete_rowsADestructive
Delete multiple rows from a Coda table in a single call.
Permanently removes all specified rows. This is irreversible. List the rows first with coda_list_rows to get their IDs. Returns a requestId for async mutation tracking. Prefer this over calling coda_delete_row in a loop for better performance and rate limit efficiency.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the table | |
| row_ids | Yes | List of row IDs to delete | |
| table_id_or_name | Yes | Table ID or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: operation is irreversible, returns a requestId for async tracking. Annotations already mark destructiveHint=true, but description reinforces permanence and async nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words: purpose, irreversibility, prerequisite, async return, and performance tip. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all essential aspects: what it does, what it requires, what it returns, and why to use it over alternatives. For a 3-parameter destructive tool with async return, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides complete descriptions for all three parameters (100% coverage). Description adds practical guidance for row_ids (use list_rows to get IDs), but doesn't add new semantics for doc_id or table_id_or_name. Still, the schema is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete multiple rows from a Coda table in a single call', distinguishing it from sibling coda_delete_row which deletes a single row. The verb and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to 'List the rows first with coda_list_rows to get their IDs' and recommends this tool over coda_delete_row for performance and rate limit efficiency. Also states irreversibility, guiding appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_export_pageARead-only
Export a page's content, initiating an async export if needed.
Starts an export job and returns the export status. For small pages, the content may be returned immediately. For large pages, poll the returned export ID until complete. Prefer coda_get_page_content for quick reads — use this only when you need a full export with embedded images resolved.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the page | |
| output_format | No | Export format | markdown |
| page_id_or_name | Yes | Page ID or name to export |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes async initiation, immediate content for small pages, and polling for large pages. Annotations (readOnlyHint, openWorldHint) are consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise two-paragraph description with front-loaded purpose, clear structure, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: purpose, usage, async behavior, polling. Missing some details like error handling or prerequisite checks, but sufficient for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. Description does not add new parameter details, but mentions output format context; adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool exports a page's content with async behavior, and distinguishes from coda_get_page_content for quick reads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (full export with embedded images) and when not (prefer coda_get_page_content for quick reads), including polling instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_acl_settingsARead-onlyIdempotent
Get the ACL settings for a Coda doc.
Returns doc-level access control settings such as whether the doc allows copying, whether editors can change permissions, and the default access mode. These are administrative settings, not individual permission entries.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID to get ACL settings for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, so the read-only nature is clear. The description adds behavioral context by specifying the doc-level scope and examples of settings, which is valuable beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states the core purpose, and the second provides illustrative examples and scope clarification. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, existing annotations, and presence of an output schema, the description is sufficiently complete. It explains what administrative settings are and contrasts with individual permissions, covering essential context for an admin tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter doc_id is fully described in the input schema (100% coverage). The description does not add additional semantic details beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves ACL settings for a Coda doc, using a specific verb ('Get') and resource. It lists examples of returned settings (copying, editor permissions, default access) and distinguishes from siblings by noting these are administrative settings, not individual permission entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies appropriate use by contrasting admin-level settings with individual permissions, suggesting an alternative tool (like coda_list_permissions) for the latter. However, it does not explicitly name an alternative or provide when-not scenarios, leaving minor room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_analytics_updatedARead-onlyIdempotent
Get the timestamp of when analytics data was last updated.
Returns a timestamp indicating the freshness of analytics data. Analytics are not real-time — they are typically updated every few hours. Check this before relying on analytics data for time-sensitive decisions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral context beyond annotations: states analytics are not real-time and updated every few hours. Annotations already indicate readOnly and idempotent, but description enhances understanding of staleness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences efficiently convey purpose, result, and usage caveat. No redundancy, front-loaded with the goal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and presence of output schema, description fully covers what the tool does, what it returns, and when to use it. Complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so description does not need to add parameter info. Baseline 4 applies as schema coverage is 100% trivially.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get' and specific resource 'timestamp of when analytics data was last updated'. Distinguishes from sibling analytics tools like summaries and lists by focusing on freshness check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises checking this before relying on analytics for time-sensitive decisions, providing clear context for when to use. Does not mention alternatives but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_columnARead-onlyIdempotent
Get metadata for a single column in a Coda table.
Returns the column's name, ID, type, format, and configuration details. Use this to check a specific column's type before writing data to it. For the full column schema, use coda_list_columns instead.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the table | |
| table_id_or_name | Yes | Table ID or name | |
| column_id_or_name | Yes | Column ID or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and open-world. The description adds context about what is returned (name, ID, type, format, configuration details), which helps the agent understand the output beyond the annotations. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—just three sentences—with no wasted words. It front-loads the core purpose and immediately provides actionable guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, the presence of an output schema, and the clear description of return fields, the description is complete. It covers what the tool does, when to use it, and what it returns, requiring no additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning all parameters are described in the schema. The description does not add additional semantic details beyond what is already in the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get metadata for a single column.' It specifies the verb ('Get'), the resource ('metadata for a single column'), and differentiates from the sibling tool 'coda_list_columns' by noting that the latter provides the full column schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this to check a specific column's type before writing data to it.' It also tells when to use the alternative ('For the full column schema, use coda_list_columns instead'), effectively covering both when and when-not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_controlARead-onlyIdempotent
Get the current value of a control in a Coda doc.
Returns the control's name, ID, type, and current value. Controls include sliders, select lists, date pickers, text inputs, and buttons. The value reflects the current user-facing state. Use coda_list_controls to discover available controls.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the control | |
| control_id_or_name | Yes | Control ID or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states that the value reflects the current user-facing state, adding context beyond the annotations (readOnlyHint, idempotentHint, openWorldHint). No contradictions are present, and the description complements the annotations well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the primary action, and includes only essential information. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description covers the tool's behavior and return values adequately. It also mentions the relationship with a sibling tool, providing sufficient context for a getter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds minimal extra meaning beyond implying the doc and control identification, but it does not introduce new semantic details. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'get', the resource 'control', and identifies the tool's purpose: retrieving the current value of a control in a Coda doc. It lists return fields and control types, distinguishing it from sibling tools like coda_list_controls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use the tool—to get a control's current value—and directs users to coda_list_controls for discovering controls. It lacks explicit 'when not to use' guidance but provides adequate context for the primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_docARead-onlyIdempotent
Get metadata for a single Coda doc by ID.
Returns name, owner email, folder, created/updated timestamps, and doc size. Does NOT return page content or table data — use coda_list_pages or coda_list_tables for those. The doc_id can be obtained from coda_list_docs or coda_resolve_browser_link.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The ID of the doc (from coda_list_docs or coda_resolve_browser_link) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lists the exact fields returned (name, owner email, folder, timestamps, doc size) and states what is not included (page content, table data). Annotations already mark it as readOnly, idempotent, and openWorld, so the description adds useful context beyond those. No hidden behaviors are disclosed, but for a simple metadata retrieval it is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences. It front-loads the core purpose and immediately clarifies scope and exclusions. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects, output schema present), the description is fully complete. It covers what the tool returns, what it does not, how to get parameters, and alternatives for other use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (doc_id) with 100% description coverage. The description adds context by explaining how to obtain the doc_id (from coda_list_docs or coda_resolve_browser_link), which goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get metadata for a single Coda doc by ID', which is a specific verb and resource. It immediately distinguishes itself from siblings by noting it does NOT return page content or table data, and names specific alternatives (coda_list_pages, coda_list_tables).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool (when you need doc metadata) and when not to (when you need pages or tables), and provides clear alternatives. It also tells how to obtain the doc_id from other tools (coda_list_docs, coda_resolve_browser_link).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_doc_analytics_summaryARead-onlyIdempotent
Get aggregated analytics summary across all docs.
Returns total views, unique viewers, copies, and other metrics summed across all accessible docs. Use this for a high-level overview — use coda_list_doc_analytics for per-doc breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| since_date | No | Start date for analytics (ISO 8601) | |
| until_date | No | End date for analytics (ISO 8601) | |
| is_published | No | Filter to published (True) or unpublished (False) docs |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds that it returns 'total views, unique viewers, copies, and other metrics summed across all accessible docs.' This provides behavioral context beyond the annotations. It could mention that results depend on the user's access, but it is overall clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences. The first sentence states the action and result, and the second provides usage guidance with an alternative. No unnecessary words, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has an output schema (likely detailing the returned metrics) and annotations covering safety and idempotence, the description is reasonably complete. It mentions the aggregated metrics and distinguishes from per-doc analytics. It could be more explicit that it aggregates over 'all accessible docs,' but that is implied. Overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters (is_published, since_date, until_date) have descriptions in the input schema (100% coverage). The tool description does not add any further semantics for these parameters; it only mentions the aggregated metrics returned. Since the schema already documents the parameters, a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get aggregated analytics summary across all docs.' It specifies the resource (analytics summary) and scope (all docs). It also distinguishes from the sibling tool coda_list_doc_analytics, which is listed in the siblings. The verb 'Get' combined with the resource makes it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this for a high-level overview — use coda_list_doc_analytics for per-doc breakdown.' It tells when to use this tool and when to use an alternative. However, it does not mention any prerequisites or cases where this tool should not be used, but the alternative is clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_folderARead-onlyIdempotent
Get metadata for a single folder.
Returns the folder's name, ID, parent folder, and child items. Use coda_list_folders to discover available folders first.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes | The folder ID to get details for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and openWorldHint. Description adds valuable detail about exactly what metadata is returned, enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words; first sentence states purpose, second provides guidance and return summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists and annotations cover safety, description sufficiently explains what the tool does and how to use it, though it could mention that folder_id must be obtained from list_folders.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage and the schema description already explaining folder_id, the description adds no additional parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get metadata for a single folder' and lists the specific data returned (name, ID, parent, child items), distinguishing it from sibling tool coda_list_folders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly advises to use coda_list_folders first to discover available folders, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_formulaARead-onlyIdempotent
Get the current value of a named formula in a Coda doc.
Returns the formula's name, ID, type, current value, and whether it has an error. The value is computed by Coda and reflects the latest state. Use coda_list_formulas to discover available formulas in a doc.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the formula | |
| formula_id_or_name | Yes | Formula ID or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds that the value is computed by Coda and reflects the latest state, which provides some behavioral context but goes beyond annotations only minimally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences that front-load the main purpose, then list returned fields, then provide usage guidance. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (2 string params, output schema present), the description covers the core purpose, returned data, and how to discover formulas. It could optionally mention error cases or case sensitivity, but overall it's sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters (doc_id and formula_id_or_name). The description adds no extra meaning beyond what the schema already provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets the current value of a named Coda formula, enumerating returned fields (name, ID, type, value, error status). It distinguishes itself from sibling tool coda_list_formulas by directing users to that tool for discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use this tool (get a formula's value) and explicitly recommends coda_list_formulas as an alternative for discovering formulas. However, it does not mention when to avoid this tool or provide other exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_mutation_statusARead-onlyIdempotent
Check the status of an asynchronous mutation (write operation).
Coda write operations return 202 with a requestId. Use this tool to poll whether the mutation has completed, is still processing, or failed. Returns a completed boolean and any error details. Poll every 2 seconds, up to 30 seconds maximum.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | The requestId returned by a write operation (202 response) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true, but the description adds behavioral details: returns a completed boolean and error details, and specifies polling behavior (2-second intervals, 30-second timeout). This goes beyond what annotations provide, making the tool's behavior transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three sentences that front-load purpose, then context, then behavior. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple polling tool with one parameter, the description covers all necessary aspects: what it does, when to use it, how to use it (polling guidance), and what it returns (completed boolean and error details). Annotations and the presence of an output schema supplement the description without missing gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter request_id is fully described in the input schema: 'The requestId returned by a write operation (202 response)'. Since schema coverage is 100%, the description adds minimal but consistent value by reinforcing the origin of the request_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Check the status of an asynchronous mutation (write operation)', providing a specific verb+resource combination. It uniquely identifies the tool's function among siblings like coda_get_doc or coda_get_row, which are for synchronous reads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the context: 'Coda write operations return 202 with a requestId' and directs to 'Use this tool to poll whether the mutation has completed, is still processing, or failed.' It also provides polling parameters: 'Poll every 2 seconds, up to 30 seconds maximum.' While it doesn't explicitly state when not to use, the guidance is clear and sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_pack_analytics_summaryARead-onlyIdempotent
Get aggregated analytics summary for packs.
Returns total installs, doc usage, and formula invocations summed across packs. Only available to pack makers.
| Name | Required | Description | Default |
|---|---|---|---|
| pack_ids | No | Filter to specific pack IDs | |
| since_date | No | Start date for analytics (ISO 8601) | |
| until_date | No | End date for analytics (ISO 8601) | |
| is_published | No | Filter to published (True) or unpublished (False) packs |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only (readOnlyHint), idempotent (idempotentHint), and non-deterministic but safe (openWorldHint). The description adds the access restriction and specific return metrics, which are not conveyed by annotations. It does not disclose other traits like rate limits or pagination, but the annotations cover the safety profile adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences that effectively communicate the purpose, output, and access restriction. There is no unnecessary information, and the key details are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, return metrics, and access restriction. However, it does not mention the optional filtering capabilities (pack_ids, is_published, date ranges) that are evident in the schema. While the schema covers these, the agent might benefit from knowing that the summary can be scoped. Given the output schema exists and annotations are rich, the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all four parameters. The tool description does not provide any additional parameter information beyond what is in the schema. Therefore, it meets the baseline of 3 without adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get aggregated analytics summary for packs.' It specifies the exact resources (packs) and the metrics returned (total installs, doc usage, formula invocations). This distinguished it from sibling tools like coda_list_pack_analytics, which provide per-pack detail, and coda_get_doc_analytics_summary, which is per-doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the access restriction ('Only available to pack makers'), which helps the agent determine when not to use it. It implies the tool is for aggregated data rather than per-pack analytics via the phrase 'summed across packs', distinguishing it from list tools. However, it does not explicitly state when to use this over alternatives or provide when-not scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_pageARead-onlyIdempotent
Get metadata for a single page in a Coda doc.
Returns the page's name, ID, parent, subtitle, icon, and image. Does NOT return the page's text content — use coda_get_page_content for that. Page names can change; always use page IDs for reliable access.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the page | |
| page_id_or_name | Yes | Page ID or name (prefer ID — names are unstable) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and open-world. The description adds valuable behavioral context: what specific fields are returned, that it excludes text content, and that page names are unstable. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: first states purpose, second lists returns and exclusions, third gives best practice. No fluff, every sentence earns its place. Front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description is complete enough. It covers functionality, return fields, a limitation, and a usage tip. Could mention error handling, but not required for basic completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have full descriptions in the input schema (100% coverage). The description adds extra semantic value by explaining why page IDs are preferred over names for page_id_or_name, which aids correct tool invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets metadata for a single page, lists the returned fields (name, ID, parent, subtitle, icon, image), and explicitly states it does NOT return page text content. It also distinguishes itself from coda_get_page_content, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use guidance by directing users to coda_get_page_content for text content and advising to use page IDs over names. While it does not explicitly mention alternatives for listing pages, the advice given is actionable and sufficient for correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_page_contentARead-onlyIdempotent
Get the text content of a page in a Coda doc.
Returns the page's content in the specified format (HTML or markdown). Markdown output may be lossy for complex Coda content (embedded objects, pack formulas). Use this for reading page text — use coda_get_page for metadata only.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the page | |
| output_format | No | Content output format | markdown |
| page_id_or_name | Yes | Page ID or name to read content from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. Description adds valuable behavioral context: returns content in HTML or markdown, marks markdown as lossy for complex content. This goes beyond the annotations to inform agent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with purpose, no filler. Every sentence provides necessary information: purpose, output format, usage guidance and lossy warning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 fully described parameters, annotations for safety and idempotency, and an output schema (present but not shown), the description completes the picture by explaining the return content type and usage differentiation. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description mentions 'in the specified format' referencing output_format, but does not add new semantic information beyond the schema's enum and descriptions. No improvement over schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the text content of a page in a Coda doc' with a specific verb and resource. It also distinguishes from the sibling tool coda_get_page by noting that the latter is for metadata only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use this for reading page text — use coda_get_page for metadata only.' It also mentions that markdown output may be lossy, implying when HTML might be preferred. Could be slightly more explicit about when to choose each format, but overall clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_rowARead-onlyIdempotent
Get a single row from a Coda table by ID or display column value.
Returns all column values for the specified row. Use this when you have a specific row ID or know the display column value. For querying multiple rows with filters, use coda_list_rows instead.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the table | |
| row_id_or_name | Yes | Row ID or name (display column value) | |
| table_id_or_name | Yes | Table ID or name | |
| use_column_names | No | Use column names (True) or IDs (False) in row values |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so safety profile is clear. Description adds that it returns all column values, which is useful but not critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, return value, and usage guidance. No extraneous text. Front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with output schema present, description covers purpose, return, and alternatives. Annotations fill in behavioral details. Complete for agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so descriptions already define each parameter. The description does not add new information beyond what the schema provides, hence baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves a single row by ID or display column value and returns all column values. It explicitly distinguishes from sibling tool coda_list_rows for querying multiple rows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Use this when you have a specific row ID or know the display column value. For querying multiple rows with filters, use coda_list_rows instead.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_sharing_metadataARead-onlyIdempotent
Get sharing metadata for a Coda doc.
Returns whether the doc can be shared, copied, or has sharing restrictions. This is metadata about the doc's sharing configuration, not the list of who has access — use coda_list_permissions for that.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID to get sharing metadata for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description transparently discloses the behavioral traits: it returns metadata about sharing configuration. Annotations already indicate read-only, idempotent, and open-world behavior, and the description complements them by specifying exactly what the tool returns, without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, containing only three sentences. It is front-loaded with the main purpose, then specifies return information, and ends with a sibling differentiation. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, clear output schema), the description is complete. It covers purpose, return type, and usage context. Annotations and schema cover the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter (doc_id) with a description. The tool description does not add additional semantics beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets sharing metadata for a Coda doc, specifying the exact information returned (sharable, copiable, restrictions). It also distinguishes from coda_list_permissions, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (to get sharing configuration metadata) and when not (use coda_list_permissions for access list). This provides clear guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_get_tableARead-onlyIdempotent
Get metadata for a single table or view in a Coda doc.
Returns the table's name, ID, type, row count, parent page, and sort/filter info. Does NOT return row data or column definitions — use coda_list_rows and coda_list_columns for those.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the table | |
| table_id_or_name | Yes | Table ID or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readonly and idempotent behavior. The description adds value by detailing the specific metadata returned (name, ID, type, row count, etc.) and confirming what is excluded, without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, with the purpose and scope front-loaded. Every sentence adds essential information with no redundancy or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an existing output schema, the description appropriately focuses on what is not returned. Given the tool's simplicity (2 parameters, no enums) and the annotations covering safety, the description is complete and leaves no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with descriptions for both parameters (doc_id, table_id_or_name). The description does not add further parameter-level detail, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get metadata' for a single table or view, lists the returned fields, and explicitly contrasts with sibling tools like coda_list_rows and coda_list_columns, making the tool's purpose highly specific and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when not to use this tool (e.g., for row data or column definitions) and suggests alternatives, though it could more explicitly state when the tool should be preferred over similar metadata tools like coda_get_doc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_insert_rowsA
Insert one or more rows into a Coda table, with optional upsert.
Inserts up to 500 rows per call. Use column names (not IDs) in the cells. With key_columns, matching rows are updated (upsert) instead of inserted — this is the only way to bulk-update rows. Returns a requestId for async mutation tracking via coda_get_mutation_status. The operation is async (202).
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | List of rows to insert. Each row is a dict with 'cells' key containing a list of {column: name, value: val} objects. Example: [{'cells': [{'column': 'Name', 'value': 'Alice'}]}] | |
| doc_id | Yes | The doc ID containing the table | |
| key_columns | No | Column names to use as upsert keys. If a row matches on these columns, it is updated instead of inserted. Omit for pure insert. | |
| table_id_or_name | Yes | Table ID or name to insert rows into |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses async operation (202), returns requestId for status tracking, and upsert behavior. Annotations indicate write and open world, and description adds specific behavioral details without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each essential: purpose and upsert variant, limit and column name guidance, async behavior and return value. Efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main use case, limits, async nature, and return value. Output schema exists, so no need to detail return shape. No significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with good descriptions; description adds extra guidance about using column names vs IDs, which adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'insert rows' and the resource 'Coda table', with optional upsert. Distinguishes from siblings like coda_update_row by noting 'only way to bulk-update rows'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context: limit of 500 rows, use column names not IDs, upsert via key_columns. While it doesn't mention alternatives for single-row operations, it implies the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_categoriesARead-onlyIdempotent
List all available publishing categories in Coda.
Returns the categories that can be used when publishing a doc to the Coda gallery. Each category has a name and ID. Use these category IDs with coda_publish_doc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe read operation (readOnlyHint, idempotentHint). The description adds that the output contains name and ID, and links to a related tool, providing useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, and every sentence is essential. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no inputs and an output schema exists, the description adequately covers the purpose and the nature of the output (name and ID). It is complete for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% (trivially). The description does not need to explain parameters, but it clarifies the purpose of the output, which adds value. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists available publishing categories in Coda, using the verb 'list' and specifying the resource. It distinguishes from sibling tools like coda_list_docs by focusing on categories for publishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions using the returned category IDs with coda_publish_doc, providing clear context. It does not explicitly state when not to use it, but the reference to the sibling tool is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_columnsARead-onlyIdempotent
List all columns in a Coda table.
Returns column metadata including name, ID, type (text, number, date, etc.), and configuration. Column IDs are internal identifiers — use column names when working with row data. This is the table schema — call this before inserting or updating rows to know the available columns and their types.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of columns to return (1-200) | |
| cursor | No | Pagination cursor from a previous response | |
| doc_id | Yes | The doc ID containing the table | |
| table_id_or_name | Yes | Table ID or name to list columns from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnly, idempotent, and openWorld hints. The description adds behavioral context: column IDs are internal identifiers and should not be used for row data; names should be used instead. This goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no filler. The key purpose is stated first, followed by useful behavioral and usage hints. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool returns, how to use the output (use column names for row data), and when to call it (before insert/update). With an output schema present, it provides sufficient context for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions in the schema are already clear. The description does not add new semantic details about parameters like doc_id or table_id_or_name beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all columns in a Coda table and returns metadata (name, ID, type, configuration). While it doesn't explicitly differentiate from sibling tool coda_get_column, the verb 'list' and context imply it returns all columns vs a single one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises calling this before inserting or updating rows to know available columns and types. It provides clear context but does not mention exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_controlsARead-onlyIdempotent
List all controls (sliders, select lists, date pickers, etc.) in a Coda doc.
Returns control metadata including name, ID, type, and current value. Controls are interactive UI elements on pages. Use coda_get_control to read a specific control's current value.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of controls to return (1-200) | |
| cursor | No | Pagination cursor from a previous response | |
| doc_id | Yes | The doc ID to list controls from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, which already indicate safety. Description adds that the tool returns metadata including name, ID, type, and current value, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is four sentences, front-loaded with the purpose. Every sentence adds value: purpose, returned metadata, definition of controls, and alternative tool. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with an output schema, the description explains what is returned. Combined with annotations and schema, it provides a complete picture. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are described in the input schema (100% coverage). Description does not add extra meaning beyond what is already in the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists all controls (sliders, select lists, etc.) in a Coda doc. It distinguishes from sibling coda_get_control by specifying that the latter reads a specific control's current value. The purpose is clear and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description indicates when to use this tool ('list all controls') and mentions an alternative (coda_get_control). Does not explicitly state when not to use it, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_doc_analyticsARead-onlyIdempotent
List analytics data for docs (views, copies, likes, sessions).
Returns usage metrics for docs over the specified date range. Includes total views, unique views, copies, and other engagement metrics. Only available to doc owners. Use coda_get_doc_analytics_summary for aggregated totals instead of per-doc breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-200) | |
| cursor | No | Pagination cursor from a previous response | |
| doc_ids | No | Filter to specific doc IDs | |
| since_date | No | Start date for analytics (ISO 8601, e.g. '2024-01-01') | |
| until_date | No | End date for analytics (ISO 8601) | |
| is_published | No | Filter to published (True) or unpublished (False) docs |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and open-world. Description adds ownership requirement and data scope (date range, engagement metrics), complementing annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: 4 short sentences, each adding essential info. Purpose in first sentence, metrics in second, restriction in third, alternative in fourth. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage, presence of output schema, and comprehensive annotations, the description covers purpose, usage, restrictions, and alternatives. Adequate for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds minimal value beyond parameter names and types. It implies date-range filtering, but schema already covers that. Baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists analytics data for docs with specific metrics (views, copies, likes, sessions). It distinguishes from sibling tool 'coda_get_doc_analytics_summary' by noting aggregated totals vs per-doc breakdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states availability only to doc owners and provides a clear alternative for aggregated totals via 'coda_get_doc_analytics_summary', guiding appropriate tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_docsARead-onlyIdempotent
List Coda docs accessible to the current API token.
Returns doc metadata including name, owner, folder, and timestamps. Does NOT return page content or table data — use coda_list_pages or coda_list_tables for those. Rate-limited to 4 calls per 6 seconds. Use the query parameter to search by doc name. Pass cursor to paginate through results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of docs to return (1-200) | |
| query | No | Search query to filter docs by name | |
| cursor | No | Pagination cursor from a previous response | |
| is_owner | No | Filter to docs owned by the API token owner | |
| folder_id | No | Filter to docs in a specific folder | |
| response_format | No | 'json' for structured data, 'markdown' for readable text | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint. Description adds rate limit info and that it returns metadata, which is consistent and adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences: first states purpose, second describes return, third notes what it does not include and alternatives, fourth covers rate limit and parameter hints. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description adequately covers purpose, exclusions, alternatives, rate limit, and parameter usage. Complete for a list tool with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3. Description adds usage context for query and cursor parameters, explaining how to search by name and paginate, which is extra value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List Coda docs accessible to the current API token' with specific verb and resource. Distinguishes from siblings by noting it does not return page content or table data, and mentions alternatives like coda_list_pages and coda_list_tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (to list docs), when not to (for page/table content), and names alternative tools. Also mentions rate limiting (4 calls per 6 seconds) and parameter usage hints for query and cursor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_foldersARead-onlyIdempotent
List all folders accessible to the current API token.
Returns folder metadata including name, ID, and parent folder. Folders organize docs in the Coda workspace. Use the returned folder IDs with coda_create_doc to place new docs in specific folders.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds that it returns metadata (name, ID, parent folder) and gives context about folders organizing docs, but does not disclose additional behavioral traits such as pagination or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, return description, and usage hint. Front-loaded and no excess verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, rich annotations, and an existing output schema, the description is complete. It explains the tool's purpose, return contents, and downstream usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description adds no parameter-specific semantics. Baseline for 0 parameters is 4, and the description does not need to compensate further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all folders accessible to the current API token,' using a specific verb and resource. It distinguishes from siblings like coda_get_folder by focusing on listing all folders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context by noting that returned folder IDs can be used with coda_create_doc, but does not explicitly state when to use this tool versus alternatives like coda_get_folder.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_formulasARead-onlyIdempotent
List all named formulas in a Coda doc.
Returns formula metadata including name, ID, and value. Named formulas are doc-level computed values (not column formulas). Use coda_get_formula to get a specific formula's current value.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of formulas to return (1-200) | |
| cursor | No | Pagination cursor from a previous response | |
| doc_id | Yes | The doc ID to list formulas from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context beyond annotations by explaining that named formulas are doc-level computed values (not column formulas) and describing the return metadata. Consistent with readOnlyHint and idempotentHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with the main action, then supporting details. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and all parameters are documented in the schema, the description fully covers what the tool does, what it returns, and how it relates to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 3 parameters. The description does not add additional parameter-level detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'list all named formulas in a Coda doc' with specific verb and resource. It distinguishes from column formulas and points to an alternative tool (coda_get_formula) for specific formula retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (list all) and when to use the alternative coda_get_formula (get specific formula). Provides clear context for selecting the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_pack_analyticsARead-onlyIdempotent
List analytics data for Coda packs.
Returns usage metrics for packs including install counts, doc usage, and formula invocations. Only available to pack makers for their own packs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-200) | |
| cursor | No | Pagination cursor from a previous response | |
| pack_ids | No | Filter to specific pack IDs | |
| since_date | No | Start date for analytics (ISO 8601) | |
| until_date | No | End date for analytics (ISO 8601) | |
| is_published | No | Filter to published (True) or unpublished (False) packs |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint. Description adds that it returns usage metrics and access note, consistent with no additional behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is adequate given full schema coverage, output schema, and annotations. Covers purpose, access, and general output content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description does not add parameter-specific details beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action (list analytics), resource (Coda packs), and gives examples of metrics returned. However, does not distinguish from sibling analytics tools like coda_get_pack_analytics_summary or coda_list_pack_formula_analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States access restriction (pack makers only) but lacks when-not-to-use or comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_pack_formula_analyticsARead-onlyIdempotent
List analytics data for individual formulas within a pack.
Returns per-formula invocation counts, error rates, and execution times. Only available to the pack maker.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-200) | |
| cursor | No | Pagination cursor from a previous response | |
| pack_id | Yes | The pack ID to get formula analytics for | |
| since_date | No | Start date for analytics (ISO 8601) | |
| until_date | No | End date for analytics (ISO 8601) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond annotations: it specifies the return data (invocation counts, error rates, execution times) and notes the access restriction (pack maker only). Annotations already indicate read-only, idempotent, and open-world; description complements them without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: first states the purpose, second lists the return data, third notes access restriction. Every sentence adds value without redundancy, and it is front-loaded with the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and five parameters with full schema descriptions, the description sufficiently covers what the tool returns (per-formula analytics) and its access constraint. It could mention pagination implied by cursor, but the overall completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all parameters. The description does not add additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists analytics data for individual formulas within a pack, specifying metrics like invocation counts, error rates, and execution times. The name and description distinguish it from pack-level analytics (e.g., coda_list_pack_analytics), but there is no explicit contrast with siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that the data is 'only available to the pack maker,' implying a prerequisite. However, it does not specify when to use this tool versus other analytics tools (e.g., coda_list_pack_analytics, coda_get_pack_analytics_summary) or provide guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_page_analyticsARead-onlyIdempotent
List analytics data for pages within a doc.
Returns per-page usage metrics (views, unique views) for the specified doc. Only available to doc owners. Useful for understanding which pages get the most traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-200) | |
| cursor | No | Pagination cursor from a previous response | |
| doc_id | Yes | The doc ID to get page analytics for | |
| since_date | No | Start date for analytics (ISO 8601) | |
| until_date | No | End date for analytics (ISO 8601) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral context beyond annotations by stating the owner-only restriction and specifying the metrics returned. This helps the agent understand access requirements and data scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with the key action and details front-loaded. No unnecessary words or repetition; every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to explain return values. It adequately covers purpose, availability, and the nature of the analytics. However, it could mention that results are per-page, which is already implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description does not add meaning beyond what the schema provides for parameters. The description focuses on the output rather than parameter details, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists analytics data for pages within a doc, specifying the verb 'list', the resource 'page analytics', and the returned metrics (views, unique views). It distinguishes from siblings by focusing on per-page metrics, though not explicitly naming alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a key usage constraint: 'Only available to doc owners.' This gives context on when the tool can be used, but it does not offer guidance on when to choose this over other analytics tools (e.g., coda_get_doc_analytics_summary) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_pagesARead-onlyIdempotent
List all pages in a Coda doc.
Returns page metadata including name, ID, parent page, and icon. Pages are returned in their tree order. Does NOT return page content — use coda_get_page_content for that. Use the returned page IDs (not names) for all subsequent page operations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of pages to return (1-200) | |
| cursor | No | Pagination cursor from a previous response | |
| doc_id | Yes | The doc ID containing the pages |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint. Description adds useful behavior: pages returned in tree order, metadata only, IDs to use. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with purpose, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description covers what is returned (metadata, no content) and how to use results. Adequate for a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add semantics beyond what's in the schema for doc_id, limit, cursor.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists pages in a Coda doc, returns metadata, and explicitly distinguishes from coda_get_page_content by stating it does NOT return content. Verb and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (listing pages) and when not to (for content, use coda_get_page_content). Also advises to use returned page IDs for subsequent operations, but does not cover all possible alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_permissionsARead-onlyIdempotent
List all permission entries (ACL) for a Coda doc.
Returns who has access to the doc and their access level (read, write, etc.). Each entry includes the principal (user or group) and their permission type. Use coda_add_permission to grant access or coda_delete_permission to revoke.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of permissions to return (1-200) | |
| cursor | No | Pagination cursor from a previous response | |
| doc_id | Yes | The doc ID to list permissions for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, openWorldHint. Description adds that the tool returns an ACL list with principal and permission type, which is behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is four sentences, front-loaded with the primary purpose. No unnecessary words, each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 3 parameters and an output schema. Description explains return values (list with principal and permission type) and mentions pagination indirectly via cursor parameter in schema. Missing explicit explanation of cursor pagination but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already described in the input schema. The description does not add extra parameter details but reinforces the tool's purpose. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all permission entries (ACL) for a Coda doc.' It uses specific verb 'list' and resource 'permission entries for a Coda doc', distinguishing it from siblings like coda_add_permission and coda_delete_permission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains that the tool returns who has access and their access level, and mentions related tools for granting or revoking permissions. It provides context for when to use this tool but does not explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_rowsARead-onlyIdempotent
List rows in a Coda table with optional filtering and sorting.
Returns row data with column values. By default uses column names (not IDs) for readability. Use the query parameter to filter rows by column values. For a specific row by ID, use coda_get_row instead. Results are paginated — pass cursor to get the next page.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return (1-500) | |
| query | No | Filter formula (e.g. 'Status:"Active"' or 'c-abc123:"value"') | |
| cursor | No | Pagination cursor from a previous response | |
| doc_id | Yes | The doc ID containing the table | |
| sort_by | No | Sort by column (prefix with '-' for descending, e.g. '-Created') | |
| response_format | No | 'json' for structured data, 'markdown' for readable text | json |
| table_id_or_name | Yes | Table ID or name to list rows from | |
| use_column_names | No | Use column names (True) or IDs (False) in row values |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and openWorldHint. The description adds valuable behavioral context: 'Returns row data with column values. By default uses column names (not IDs) for readability.' and 'Results are paginated — pass cursor to get the next page.' This supplements the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and efficient: four sentences, each adding essential information. It starts with the main purpose, then details, then pagination, and finally an alternative tool reference. No redundant or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, pagination, filtering, sorting, and an output schema (not shown but referenced in context), the description covers the key usage aspects: filtering, sorting, default column naming, pagination, and distinction from get_row. It doesn't need to explain return values since the output schema exists. Minor omissions: no mention of open-world behavior (covered by annotation) and no explicit note about result limits (schema has min/max). Overall complete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, so all parameters are already described. The description mentions the query parameter for filtering and the use_column_names default, but does not add significant meaning beyond the schema. The schema descriptions for parameters like sort_by and limit are already clear. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List rows in a Coda table with optional filtering and sorting.' This is a specific verb+resource combination. It also distinguishes from the sibling tool coda_get_row by noting 'For a specific row by ID, use coda_get_row instead.' The purpose is unambiguous and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (listing rows with filtering/sorting) and when not (for a specific row, use coda_get_row). It mentions pagination and how to handle it with the cursor parameter. However, it does not explicitly mention alternatives for row mutation (e.g., coda_insert_rows, coda_update_row, coda_delete_row), but the context is clear enough for a listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_list_tablesARead-onlyIdempotent
List all tables and views in a Coda doc.
Returns table metadata including name, ID, type (table or view), row count, and parent page. Does NOT return row data — use coda_list_rows for that. Use coda_list_columns to get the column schema of a specific table.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of tables to return (1-200) | |
| cursor | No | Pagination cursor from a previous response | |
| doc_id | Yes | The doc ID to list tables from | |
| table_types | No | Filter by type: 'table' for base tables, 'view' for views |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent behavior; the description adds that it returns metadata but not row data, which is valuable context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-load the purpose, then describe returns and alternatives with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with robust annotations and output schema, the description fully covers purpose, scope, exclusions, and alternatives, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage, so parameter details are already well-defined. The description adds no additional parameter semantics, justifying a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists tables and views, which is specific and distinguishes from sibling tools like coda_list_rows and coda_list_columns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly notes that row data is not returned and directs users to coda_list_rows for that, and to coda_list_columns for column schema, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_publish_docA
Publish a Coda doc to make it publicly accessible.
Publishes the doc with optional gallery listing and URL slug. The doc becomes accessible via a public URL. Use coda_unpublish_doc to revert. Returns the published doc's URL and settings.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Publishing mode (e.g. 'view', 'play', 'edit') | |
| slug | No | URL slug for the published doc | |
| doc_id | Yes | The doc ID to publish | |
| discoverable | No | Whether the doc is discoverable in the Coda gallery | |
| category_names | No | Category names for the published doc (from coda_list_categories) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that doc becomes publicly accessible and returns URL/settings. Annotations already indicate write operation; description adds side effects and reversible action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with front-loaded purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has output schema and full parameter coverage. Description provides essential context: public access, optional settings, and revert option. Complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description mentions slug and gallery listing, but not mode or categories. Schema descriptions cover these.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Publish a Coda doc'. Explicitly states making it publicly accessible, and distinguishes from sibling coda_unpublish_doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context for when to use and mentions the revert tool (coda_unpublish_doc). Could include prerequisites like ownership, but adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_push_buttonA
Push a button in a Coda table row.
Triggers the button's configured action (e.g. run automation, modify row). The button must be in a Button-type column. The effect depends on the button's configuration in the Coda doc. Returns a requestId for async mutation tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the table | |
| row_id_or_name | Yes | Row ID or name containing the button | |
| table_id_or_name | Yes | Table ID or name | |
| column_id_or_name | Yes | Column ID or name of the button column |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds that the effect depends on the button's configuration and returns a requestId for async mutation tracking, disclosing important behavioral traits beyond annotations which only indicate readOnlyHint=false and openWorldHint=true. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with no fluff. The first sentence states the primary purpose. Each subsequent sentence adds necessary detail without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 required params, async behavior, config-dependent effects), the description covers purpose, usage, behavioral notes, and return value (requestId for tracking). Output schema exists but its details are not needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so baseline is 3. The description adds the context that the button must be in a Button-type column, which is not in schema descriptions, providing extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'push' and the resource 'button in a Coda table row', and is distinguishable from sibling tools like update_row or trigger_automation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that the button must be in a Button-type column and triggers its configured action, providing clear context for when to use the tool. It does not explicitly state alternatives or when not to use, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_rate_limit_budgetARead-onlyIdempotent
Check the current rate limit budget for reads and writes.
Returns how many read and write API calls remain in the current sliding window (6 seconds). Coda allows 100 reads/6s and 10 writes/6s. Use this before batch operations to avoid hitting 429 errors. The budget is tracked locally — it resets if the server restarts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld hints. The description adds valuable behavioral context: the 6-second sliding window, local tracking, and reset on server restart, going beyond annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) with the primary action front-loaded. Every sentence adds value, no redundant or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no parameters, clear output), and the description covers purpose, usage, return values, and important caveats (local tracking, reset behavior). It is complete and self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (100% schema coverage), so the description cannot add parameter details. However, it explains the return values (read/write budget), which compensates for the lack of parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Check the current rate limit budget for reads and writes', using a specific verb and resource. It is distinct from sibling tools, none of which perform this function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use this tool 'before batch operations to avoid hitting 429 errors' and explains the rate limits (100 reads/6s, 10 writes/6s), providing clear context for when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_resolve_browser_linkARead-onlyIdempotent
Resolve a Coda browser URL to API resource IDs.
Converts a browser URL (e.g. from the address bar or a shared link) into API-compatible IDs for the doc, page, table, row, or column it points to. Use this as the first step when a user provides a Coda URL instead of IDs. Returns a type field indicating the resource kind and corresponding IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | A Coda browser URL to resolve (e.g. https://coda.io/d/...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld hints. Description adds that output includes a 'type' field and corresponding IDs, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, clear sentences. No fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity, one parameter, and presence of output schema, the description fully covers what the tool does and returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'url' with schema coverage 100%. Schema already describes the URL format; description adds purpose context but not new parameter-level detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool resolves a Coda browser URL to API resource IDs. It uses specific verbs and resources, and differs from all sibling tools, which are CRUD operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises use as the first step when a user provides a URL instead of IDs. While it doesn't enumerate when not to use it, the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_search_principalsARead-onlyIdempotent
Search for users and groups that can be added to a doc's permissions.
Returns matching principals (users and groups) based on the query string. Use this to look up a user's email or find groups before calling coda_add_permission. Results include the principal's type, email, and name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (name or email prefix) | |
| doc_id | Yes | The doc ID to search principals in |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. The description adds that results include principal type, email, and name. It does not contradict annotations and provides useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no unnecessary words. It is front-loaded and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, the description adequately covers the tool's purpose and usage. It mentions what results include, and the annotations cover safety. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate descriptions for both parameters. The description does not add extra semantics beyond what the schema provides, so baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses the verb 'search' with the resource 'principals' and specifies the context: users and groups for doc permissions. It distinguishes from siblings by explicitly mentioning use before coda_add_permission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states to use this tool to look up user email or find groups before calling coda_add_permission, providing explicit context. It does not explicitly state when not to use it, but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_trigger_automationA
Trigger a Coda automation rule.
Fires the specified automation rule, optionally passing a JSON payload. The automation must have an API-triggerable event type. The payload schema depends on the automation's configuration. Returns a requestId for tracking. The rule_id can be found in the automation's settings in the Coda UI.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID containing the automation | |
| payload | No | Optional JSON payload to pass to the automation | |
| rule_id | Yes | The automation rule ID to trigger |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (write operation), and the description adds that the tool fires the automation, optionally passes a payload, and returns a requestId. It clarifies the need for an API-triggerable event type, adding behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with five short, clear sentences. It is front-loaded with the main action ('Trigger a Coda automation rule') and avoids unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema (implied by context signals), the description covers prerequisites, parameter guidance, and return value (requestId) adequately. No additional context seems needed for an agent to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explicitly mentioning the optional JSON payload and explaining how to find the rule_id, which is not detailed in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it triggers a Coda automation rule using verbs like 'Trigger' and 'Fires'. It distinguishes the resource (automation rule) but does not explicitly differentiate from sibling tools like coda_push_button, which might serve a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (automation must have API-triggerable event type) and notes the rule_id location, providing context for when to use. However, it lacks explicit when-not-to-use scenarios or guidance on alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_unpublish_docADestructive
Unpublish a Coda doc, removing public access. Returns confirmation with doc_id.
Reverts a previously published doc to private. The public URL will stop working. This is reversible — you can publish again with coda_publish_doc.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The doc ID to unpublish |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint and readOnlyHint. The description adds context beyond annotations, noting reversibility and the effect on the public URL. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with front-loaded main action and no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter, annotations, and existence of output schema, the description covers the tool's function, effect, and reversibility. It lacks explicit error conditions or prerequisites but is otherwise complete for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for doc_id. The tool description does not add additional meaning to the parameter beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Unpublish' and the resource 'Coda doc', explains it removes public access and reverts to private. It distinguishes from sibling coda_publish_doc by indicating it is the reverse operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says it reverts a previously published doc and mentions the public URL will stop working. It also notes reversibility via coda_publish_doc, providing clear context for when to use and an alternative. However, it does not explicitly state prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_update_docAIdempotent
Update metadata for an existing Coda doc.
Updates the doc's title and/or icon. Does NOT update page content — use coda_update_page for that. Returns the updated doc metadata. This is an idempotent operation — calling with the same values produces the same result.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New title for the doc | |
| doc_id | Yes | The ID of the doc to update | |
| icon_name | No | New icon name (e.g. 'rocket', 'star') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and idempotentHint=true. The description adds context by confirming idempotency and clarifying what the tool does not affect (page content). This complements the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, each serving a distinct purpose: stating general action, specifying updated fields, excluding page content with sibling reference, and noting idempotency. No redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 params, full schema coverage, output schema, and good annotations, the description covers key aspects: what it updates, what it doesn't, and idempotency. It lacks error conditions or prerequisites, but overall is sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes the parameters. The description mentions 'title and/or icon' matching the parameters, but adds no additional semantic meaning beyond what the schema provides. Since schema does the heavy lifting, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update metadata for an existing Coda doc' and specifies what is updated (title and/or icon). It explicitly distinguishes from sibling tools by stating 'Does NOT update page content — use coda_update_page for that', making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (for updating doc title/icon) and when not to (for page content, use coda_update_page). It also mentions idempotency, which informs usage. However, it does not elaborate on prerequisites or context beyond that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_update_folderAIdempotent
Update a folder's name.
Renames the specified folder. Returns the updated folder metadata. This is an idempotent operation.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name for the folder | |
| folder_id | Yes | The folder ID to update |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond annotations by stating 'Returns the updated folder metadata' and confirming idempotency (matches annotation). It does not contradict annotations and provides useful behavioral context about output, though it omits details on handling null name or partial updates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (4 sentences) but has slight redundancy between the first two sentences. It is front-loaded with the core action, making it efficient. Minor redundancy prevents a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward rename operation, the description covers purpose, return value, and idempotency. With a full input schema, output schema, and annotations, the description is sufficiently complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds only the context that the update is a rename, which is minimally additive. Baseline 3 is appropriate as the schema already carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Update a folder's name' and 'Renames the specified folder', providing a clear verb-resource pairing with specificity to folder renaming. It distinguishes from sibling folder tools (create, delete, get) by focusing solely on name updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for renaming a folder but does not explicitly state when to use this tool versus alternatives (e.g., use for renaming, not for other folder properties). No exclusions or contextual guidance for sibling tools is provided, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_update_pageAIdempotent
Update a page's name, subtitle, or content in a Coda doc.
Updates page metadata and/or content. When updating content, 'replace' mode overwrites the entire page while 'append' adds to the end. There is no partial inline edit — draft full content locally first. Content format must match what you send (HTML or markdown). Returns the updated page metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name for the page | |
| doc_id | Yes | The doc ID containing the page | |
| content | No | New page content (replaces existing content) | |
| subtitle | No | New subtitle for the page | |
| insert_mode | No | How to insert content: 'replace' overwrites, 'append' adds to end | |
| content_format | No | Format of the content parameter | |
| page_id_or_name | Yes | Page ID or name to update |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations: explains that updates can be metadata-only or content updates, outlines replace/append modes, warns against partial inline edits, specifies format consistency, and mentions return value. No contradiction with annotations (readOnlyHint=false, idempotentHint=true, openWorldHint=true).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two short paragraphs. The first sentence immediately states the core purpose. Every subsequent sentence adds essential detail without fluff. No redundant or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, output schema, few enums), the description is quite complete: covers what can be updated, modes, format, and return value. It could briefly mention that doc_id and page_id_or_name are required or that updates are idempotent (annotations already signal idempotency), but overall it suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the behavioral implications of parameters (e.g., 'replace' overwrites entire page, 'append' adds to end) and the requirement that content format matches. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a page's name, subtitle, or content in a Coda doc, distinguishing it from create, delete, and other page-related tools. The verb 'update' and resource 'page' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use (to update page metadata/content) and how to use (modes: replace vs append, draft full content locally, matching format). It does not mention when not to use or list alternatives, but the context with siblings implies differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_update_rowAIdempotent
Update a single row in a Coda table.
Updates specific column values for one row. Only the specified columns are changed — other columns are left unchanged. Use column names (not IDs). For bulk updates, use coda_insert_rows with key_columns (upsert) instead. Returns a requestId for async mutation tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| cells | Yes | Column values to update. List of {column: name, value: val} objects. Example: [{'column': 'Status', 'value': 'Done'}] | |
| doc_id | Yes | The doc ID containing the table | |
| row_id_or_name | Yes | Row ID or name to update | |
| table_id_or_name | Yes | Table ID or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that only specified columns are modified while others remain unchanged, and that it returns a requestId for async mutation tracking. This adds behavioral context beyond the annotations (idempotentHint, openWorldHint). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with three front-loaded sentences that cover purpose, behavior, and usage guidance. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated), the description adequately covers the tool's behavior, parameters, and return value (requestId). It is complete for an update operation with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, baseline is 3. The description provides an example for the 'cells' parameter showing the format {column: name, value: val}, which adds valuable meaning beyond the schema's generic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates a single row in a Coda table, specifying that only specific column values are changed. It distinguishes itself from sibling tools like coda_insert_rows by noting that for bulk updates, that tool should be used instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using column names instead of IDs, and explicitly mentions an alternative tool (coda_insert_rows) for bulk upsert. It lacks explicit exclusion conditions but provides clear guidance on when to use the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coda_whoamiARead-onlyIdempotent
Get information about the current API token owner.
Returns the user's name, email, and token scopes. Use this to verify that the API token is valid and has the expected permissions. If this returns an error, the token is invalid or expired.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, openWorldHint. The description adds behavioral context: it returns user info, checks token validity, and errors indicate token issues. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences total, front-loaded with the purpose, then returning to detail, then usage. Every sentence is necessary; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, and the description covers what is returned (name, email, scopes). For a simple read-only verification tool, this is fully complete without needing additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description does not need to explain parameters. Baseline for zero-parameter tools is 4, and the description meets that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get information') and resource ('current API token owner'), and lists the returned fields (name, email, token scopes). It clearly distinguishes this identity/verification tool from all sibling tools which operate on docs, pages, rows, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('verify that the API token is valid and has the expected permissions') and what happens on error (token invalid/expired). Does not explicitly list when not to use or name alternatives, but the context is self-explanatory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Tools are mostly distinct with clear descriptions, but there is potential confusion between similar pairs like get vs list for rows/pages, and between export vs get page content. Some analytics tools also overlap (summary vs list). Overall, agents should be able to distinguish them with careful reading.
All tools follow a consistent 'coda_verb_noun' pattern in snake_case. Verbs like create, delete, update, get, list, publish, unpublish, insert, trigger, search, resolve, whoami, push, and export are well-chosen and predictable. Minor exceptions like 'coda_get_analytics_updated' have a non-standard noun but are still clear.
With 54 tools, the server is quite large, covering an extensive API surface (docs, folders, pages, rows, columns, permissions, analytics, publishing, automation). While each tool has a purpose, the number may overwhelm agents and suggests some potential consolidation (e.g., merging some analytics tools).
The tool set provides comprehensive coverage for Coda's core features: CRUD for docs, folders, pages, rows, and permissions, plus analytics, publishing, automation, and utility tools. Minor gaps include no column update operations and no folder sharing management, but these are not critical for typical use cases.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect AI assistants to Google Sheets through controlled tools for reading and updating rows.
Create and manage documents, spreadsheets, and presentations from your AI assistant.
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
One place to build, share, and govern the skills and tools your AI agents use at work.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides programmatic access to GitBook's API, enabling AI assistants to search, retrieve, and analyze documentation content across organizations, spaces, and collections with 12 tools and 6 AI-powered prompts.18925MIT
- FlicenseAqualityNot gradedmaintenanceProvides 15 core tools for managing Coda documents, tables, and rows through HTTP, SSE, and stdio transports. It is specifically optimized for stability with LangSmith Agent Builder and supports document manipulation, data retrieval, and formula execution.15
- FlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to interact with Google Docs to list, read, create, search, and update documents in a user's Google Drive. It provides a suite of tools and prompts for document management and content analysis using OAuth 2.0 authentication.1,303
- AlicenseBqualityDmaintenanceProvides full access to the Coda API v1, enabling AI agents to interact with Coda docs, tables, rows, formulas, and more through 51 tools.51131MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vish288/mcp-coda'
If you have feedback or need assistance with the MCP directory API, please join our Discord server