Skip to main content
Glama

Coda MCP Server

License: MIT Node.js Version

Connecteur MCP (Model Context Protocol) pour intégrer Coda.io dans Claude Code et Claude Desktop.

Permet à Claude d'accéder directement à vos docs, pages, tables et données Coda depuis une conversation — lire, écrire, filtrer, créer, sans quitter Claude.


Table des matières


Related MCP server: Coda MCP Server

Pourquoi ce MCP ?

Coda.io est un outil puissant mais répétitif pour les tâches de données. Ce MCP connecte Claude directement à votre compte Coda, vous permettant par exemple de :

  • "Montre-moi toutes les tâches non terminées dans mon projet"

  • "Ajoute une ligne dans ma table de dépenses"

  • "Résume le contenu de ma page de notes de réunion"

  • "Copie la page template de janvier vers février"

Tout sans ouvrir Coda, sans copier-coller, en langage naturel.


Outils disponibles

Documents & Pages

Outil

Description

coda_list_docs

Lister / rechercher des documents

coda_get_doc

Obtenir les métadonnées d'un doc

coda_create_doc

Créer un nouveau document

coda_search_docs

Rechercher parmi tous les docs

coda_list_pages

Lister les pages d'un doc

coda_update_page

Modifier le titre / icône d'une page

coda_get_page_content

Lire le contenu complet d'une page (markdown)

coda_peek_page

Aperçu des N premières lignes d'une page

coda_create_page

Créer une nouvelle page avec contenu optionnel

coda_replace_page_content

Remplacer entièrement le contenu d'une page

coda_append_page_content

Ajouter du contenu à la fin d'une page

coda_duplicate_page

Dupliquer une page sous un nouveau nom

coda_resolve_link

Résoudre une URL Coda en métadonnées

Tables & Données

Outil

Description

coda_list_tables

Lister les tables et vues d'un doc

coda_list_columns

Lister les colonnes d'une table

coda_list_rows

Lister les lignes avec filtres et tri

coda_get_row

Obtenir une ligne spécifique

coda_upsert_rows

Insérer ou mettre à jour des lignes

coda_update_row

Modifier une ligne existante

coda_delete_row

Supprimer une ligne

coda_delete_rows

Supprimer plusieurs lignes en une opération

coda_push_button

Déclencher un bouton sur une ligne

Formules

Outil

Description

coda_list_formulas

Lister les formules nommées avec leurs valeurs calculées


Installation

Prérequis

Obtenir un token API Coda

  1. Aller sur coda.io/account

  2. Section API SettingsGenerate API token

  3. Laisser le champ "Doc or table" vide pour accéder à tous vos docs

  4. Copier le token généré

⚠️ Ne jamais committer votre token dans le code. Passez-le toujours via variable d'environnement.


Option A — Via npx (recommandé)

Aucune installation requise. Ajoutez directement dans votre config :

Claude Code :

claude mcp add coda npx -y @thierryvm/coda-mcp-server@latest \
  --env CODA_API_TOKEN=VOTRE_TOKEN_ICI \
  -s user

Claude Desktop (claude_desktop_config.json) :

{
  "mcpServers": {
    "coda": {
      "command": "npx",
      "args": ["-y", "@thierryvm/coda-mcp-server@latest"],
      "env": {
        "CODA_API_TOKEN": "VOTRE_TOKEN_ICI"
      }
    }
  }
}

Option B — Via clone git

Utile si vous souhaitez modifier le code ou contribuer.

git clone https://github.com/thierryvm/coda-mcp-server.git
cd coda-mcp-server
npm install
npm run build

Claude Code :

claude mcp add coda node /chemin/vers/coda-mcp-server/dist/index.js \
  --env CODA_API_TOKEN=VOTRE_TOKEN_ICI \
  -s user

Remplacez /chemin/vers/coda-mcp-server/ par le chemin réel :

  • Windows : C:\Users\VotreNom\Documents\coda-mcp-server

  • macOS/Linux : /home/votreNom/Documents/coda-mcp-server


Configuration Claude Desktop

Localisez le fichier claude_desktop_config.json :

OS

Chemin

Windows (Store)

%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\

Windows (classique)

%APPDATA%\Claude\

macOS

~/Library/Application Support/Claude/

Ajoutez la configuration :

{
  "mcpServers": {
    "coda": {
      "command": "node",
      "args": ["/chemin/vers/coda-mcp-server/dist/index.js"],
      "env": {
        "CODA_API_TOKEN": "VOTRE_TOKEN_ICI"
      }
    }
  }
}

Puis redémarrez Claude Desktop.


Installer le skill Coda Formulas (optionnel)

Le fichier coda-formulas.plugin inclus dans ce repo ajoute à Claude une référence complète des formules Coda. Il s'active automatiquement quand vous travaillez avec des formules.

Installation : glisser-déposer coda-formulas.plugin dans la fenêtre Claude Code.

Ou manuellement :

# macOS/Linux
cp -r skills ~/.claude/

# Windows (PowerShell)
Copy-Item -Recurse skills\coda-formulas "$env:USERPROFILE\.claude\plugins\repos\coda-formulas\skills"

Exemples d'utilisation

Une fois configuré, voici ce que vous pouvez demander à Claude :

"Liste mes 10 derniers documents Coda"
"Montre-moi les colonnes de la table Projets dans mon doc Planning"
"Ajoute une dépense de 45€ pour 'électricité' dans ma table budget"
"Lis le contenu de ma page Réunion du 15 mars"
"Duplique la page Template janvier en Template février"
"Quelles sont les formules de mon budget et leurs valeurs ?"
"Supprime toutes les lignes où le statut est Archivé"

Mise à jour

Via npx : automatique à chaque utilisation (@thierryvm/coda-mcp-server@latest).

Via clone git :

git pull
npm run build

Puis relancer Claude Code / Claude Desktop.


Sécurité

  • Token API passé via variable d'environnement, jamais dans le code

  • Serveur en local (stdio) — aucun port réseau exposé

  • Toutes les URLs externes validées pour appartenir à coda.io

  • Limite de 100KB sur les écritures de contenu

  • Paramètres validés avec Zod (.strict())

Voir SECURITY.md pour signaler une vulnérabilité.


Contribution

Les contributions sont les bienvenues ! Voir CONTRIBUTING.md pour le workflow complet.

Pour signaler un bug ou proposer une fonctionnalité : ouvrir une issue.


Créé avec Claude Cowork — Licence MIT

Available Tools

35 tools
coda_append_page_contentAppend Page ContentB

Ajoute du contenu markdown à la fin d'une page Coda.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesID du document
contentYesContenu markdown à ajouter
page_idYesID ou nom de la page

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation that is not destructive or idempotent, but the description does not add context beyond stating it appends content. No mention of authorization, rate limits, or exact behavior on existing content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it is minimal and does not provide additional context that could be useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and the description does not explain what the tool returns or any side effects. For a write operation, this lack of return value explanation results in incomplete context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are documented. The description adds no additional parameter meaning beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb (append), the resource (page content), and the scope (to the end of a Coda page), distinguishing it from siblings like replace or update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as replace or update, nor are there any prerequisites or limitations mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_create_docCreate Coda DocA

Create a new Coda document.

Args:

  • title (string): Title for the new document

  • source_doc (string, optional): ID of a doc to duplicate as template

Returns: New doc ID, name, and browserLink.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle for the new document
source_docNoOptional doc ID to duplicate

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false. Description adds return info (doc ID, name, browserLink) and optional template duplication via source_doc, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: three lines. Purpose stated first, then parameters with types and optionality, then return. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with only 2 params and no output schema. Description covers purpose, parameters, and return value. Missing explicit mention of side effects or permissions, but adequate for its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions matching the tool's parameter descriptions. The tool description does not add new semantic info beyond what the schema already provides, meriting baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (Create) and the resource (Coda document). Distinguishes from siblings like coda_list_docs (list), coda_get_doc (read), coda_update_doc, coda_delete_doc. Unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use versus alternatives. Siblings include other CRUD operations, but the description does not state prerequisites or exclusions. Users must infer from tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_create_pageCreate PageA

Crée une nouvelle page dans un document Coda, avec contenu markdown optionnel.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNom de la page
doc_idYesID du document
contentNoContenu markdown initial (optionnel)
parent_page_idNoID de la page parente pour créer une sous-page (optionnel)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate write operation (readOnlyHint=false) and non-destructive nature. Description adds 'avec contenu markdown optionnel,' which provides context about the content parameter beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence in French, front-loaded with purpose, no wasted words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple creation tool with 4 parameters and no output schema. Covers key purpose and optional content, though could mention that parent_page_id creates a subpage. Annotations further fill gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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's mention of 'contenu markdown optionnel' aligns with the content parameter but adds minimal new meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (create) and resource (a new page in a Coda document), with optional markdown content. Distinct from sibling creation tools like coda_create_doc and page manipulation tools like coda_update_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., coda_update_page for existing pages). Implies creation context but lacks prerequisites or scenario-based advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_delete_docDelete Coda DocA
Destructive

Delete a Coda document permanently. THIS ACTION IS IRREVERSIBLE.

Args:

  • doc_id (string): The document ID to delete

Returns: Confirmation of deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID to delete

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description reinforces the irreversible nature of the action, which adds useful context beyond the 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three sentences covering action, irreversibility, parameter, and return. No wasted words; front-loaded with the key purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive tool with one parameter and no output schema, the description covers the essential aspects. It could mention return format or prerequisites, but overall it's adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents doc_id. The description merely restates the parameter without adding new semantic information, resulting in a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete') and the resource ('a Coda document'), and emphasizes permanence. It distinguishes the tool from siblings like coda_create_doc or coda_update_doc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description warns about irreversibility but does not explicitly state when to use this tool vs alternatives. No exclusions or alternatives are provided, though the context of deletion is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_delete_pageDelete Coda PageA
Destructive

Delete a page from a Coda document permanently. THIS ACTION IS IRREVERSIBLE.

Args:

  • doc_id (string): The document ID

  • page_id (string): The page ID or name to delete

Returns: Confirmation of deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
page_idYesPage ID or name to delete

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. Description adds value by stating 'permanently' and 'IRREVERSIBLE', and mentions confirmation as return. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise with two sentences and a list of args. However, the args list duplicates schema info. Could be improved by removing the list and integrating details into prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive action with two string parameters and no output schema, the description covers essential aspects: what it does, irreversibility, and return value. Sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions already for both parameters. The description repeats the args but adds no additional meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action 'Delete a page from a Coda document permanently', specifying the resource and that the action is irreversible. Distinguishes from sibling tools like coda_delete_doc (delete entire doc) and coda_delete_row (delete a row).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage: if you want to delete a page, use this tool. However, no explicit guidance on when not to use it or alternatives among sibling delete tools like coda_delete_doc or coda_delete_row.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_delete_rowDelete Coda RowA
Destructive

Delete a specific row from a Coda table. This action is irreversible.

Args:

  • doc_id (string): The document ID

  • table_id (string): The table ID

  • row_id (string): The row ID to delete

Returns: Confirmation with request ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
row_idYesRow ID to delete
table_idYesTable ID

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'This action is irreversible,' which adds behavioral context beyond the destructiveHint annotation. It also mentions the return value (confirmation with request ID), providing transparency about the tool's side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the action and irreversibility. However, the parameter list is redundant with the schema, and the structure could be slightly more compact by omitting the arg list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema, the description covers the return value (confirmation). It does not mention permissions, rate limits, or error cases, but for a simple deletion tool, the context is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description repeats the parameter names and types with brief explanations (e.g., 'The document ID'), but adds no new meaning beyond what the schema already provides. No extra constraints or format details are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a specific row from a Coda table,' which is a specific verb and resource. However, it does not differentiate this tool from the sibling tool 'coda_delete_rows' (bulk delete) or other row manipulation tools, so it lacks sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like coda_update_row, coda_upsert_rows, or coda_delete_rows. There are no prerequisites or contextual hints for appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_delete_rowsDelete Multiple RowsA
Destructive

Supprime plusieurs lignes d'une table en une seule opération. Action irréversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesID du document
row_idsYesListe des IDs de lignes à supprimer (max 100)
table_idYesID ou nom de la table

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include destructiveHint=true and readOnlyHint=false. The description adds the explicit warning 'Action irréversible' (irreversible), reinforcing the destructive nature 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two front-loaded sentences that convey the core purpose and a critical behavioral trait (irreversibility) without any waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, clear schema with full coverage, and annotations, the description is complete enough. It covers the key behavioral aspect (irreversibility) and does not require additional return value details since there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes each parameter. The description adds no extra information about parameters, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deletes multiple rows from a table in one operation, using a specific verb and resource. It distinguishes from the sibling coda_delete_row (single row) by implying batch deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for bulk deletion but does not explicitly state when to use this tool vs the singular coda_delete_row, nor does it provide when-not-to-use guidance or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_duplicate_pageDuplicate PageA

Duplique une page existante sous un nouveau nom.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesID du document
page_idYesID ou nom de la page à dupliquer
new_nameYesNom de la nouvelle page

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only, not idempotent, and not destructive. The description adds no further behavioral details such as side effects, permissions needed, or locking. It stays at the level of 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence efficiently conveys the core purpose without wasteful words. However, the language is French, which may reduce clarity for non-French-speaking agents, but this is not directly penalized in this dimension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple duplication tool with three required parameters and annotations present, the description is mostly adequate. It could mention what is included in the duplicate (content, structure) or the return value, but given the low complexity, it covers the essential function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well-documented. The description does not add any extra meaning or examples beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('duplicate'), the resource ('page'), and the distinguishing condition ('under a new name'). This clearly differentiates it from sibling tools like coda_create_page or coda_rename_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as coda_create_page, coda_rename_page, or coda_update_page. The description only states the basic function without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_get_columnGet Coda ColumnA
Read-onlyIdempotent

Get detailed information about a specific column, including its formula and format.

Especially useful to inspect calculated column formulas and currency/number format settings.

Args:

  • doc_id (string): The document ID

  • table_id (string): The table ID or name

  • column_id (string): The column ID (e.g. "c-ABC123") or name

  • response_format: 'markdown' or 'json'

Returns: Column details including id, name, type, format (currency code, precision), formula if calculated.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
table_idYesTable ID or name
column_idYesColumn ID (e.g. 'c-ABC123') or name
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds value by detailing the return contents (id, name, type, format, formula). No contradictions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences, front-loads the purpose, and includes a clear parameter list and return description. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations cover safety and the schema covers parameters, the description adequately explains the return value. It is complete for a simple read operation, though could mention error cases like column not found, but that is not essential for tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for all 4 parameters (100% coverage). The description repeats the parameter list and adds a brief return summary, but does not add significant new meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get detailed information about a specific column', with a specific verb and resource. It also mentions including formula and format, and is distinct from siblings like coda_list_columns (which lists columns) and coda_get_table.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes it is 'especially useful to inspect calculated column formulas and currency/number format settings', providing clear context for when to use it. However, it does not explicitly exclude alternatives or mention 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_get_controlGet Coda ControlA
Read-onlyIdempotent

Get details of a specific control (formula cell, button, date picker...) in a Coda document.

Args:

  • doc_id (string): The document ID

  • control_id (string): The control ID or name

  • response_format: 'markdown' or 'json'

Returns: Control details including id, name, type, formula, browserLink.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
control_idYesControl ID or name
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior. The description adds context by specifying return fields (id, name, type, formula, browserLink) and the response_format parameter, adding 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with two clear sections: purpose with examples, and arguments/returns. No unnecessary content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers return values with key fields, though it uses 'including' implying non-exhaustive. No output schema exists, so this is adequate. Lacks mention of error handling or prerequisites, but sufficient for a simple get-tool with read-only annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already well-documented. The description briefly restates parameter roles but adds no significant new information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves details of a specific control, with examples of control types. It distinguishes itself from sibling tools like coda_list_controls (which lists) and coda_push_button (which interacts).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as first listing controls with coda_list_controls to obtain control IDs. It does not mention prerequisites or context for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_get_docGet Coda DocA
Read-onlyIdempotent

Get metadata for a specific Coda document by its ID.

Args:

  • doc_id (string): The doc ID (e.g. "AbCdEfGh")

  • response_format: 'markdown' or 'json'

Returns: Doc metadata including name, owner, pages count, browserLink.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. Description adds that it returns metadata fields (name, owner, pages count, browserLink), which is useful 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at 4 lines, covering purpose, parameters, and return value without any unnecessary information. Each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (read-only, single resource retrieval) and rich annotations, the description is complete. It explains what it does, what inputs it requires, and what it returns. No output schema needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so schema already documents both parameters. Description restates them and adds default value for response_format and example doc_id. This adds marginal value, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves metadata for a specific Coda document by ID. It uses a specific verb (Get) and resource (metadata for a Coda document), distinguishing it from sibling tools like coda_list_docs (list all docs) and coda_get_doc_schema (get schema).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates usage for retrieving a single document's metadata. It does not explicitly contrast with alternatives, but the purpose is clear enough. Could include when-not-to-use guidance, but it's nearly sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_get_doc_schemaGet Doc SchemaA
Read-onlyIdempotent

Get the full schema of a Coda document: all tables with their columns, types, and formulas in a single call.

Equivalent to running coda_list_tables + coda_list_columns for every table at once. Especially useful to understand table structure before writing data or debugging formulas.

Args:

  • doc_id (string): The document ID

  • response_format: 'markdown' or 'json'

Returns: All tables with their columns (id, name, type, formula if calculated, currency code).

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description adds behavioral insight by explaining that it returns the full schema in one call and details the output structure (tables with columns, types, formulas). This goes beyond 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise, using four sentences plus a bullet-style Args/Returns section. It front-loads the core functionality and then explains the value. The structure is clear but could be tightened slightly (e.g., integrating Args into the prose).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich annotations and full schema coverage, the description provides sufficient context: it explains the tool's utility, the output structure, and its relationship to sibling tools. While no output schema is provided, the description outlines the return data sufficiently for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are described. The description repeats the param names and values (doc_id, response_format with 'markdown' or 'json'). It adds the default response_format behavior implicitly. This meets the baseline but does not significantly enrich the schema's existing description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: getting the full schema of a Coda document, including all tables, columns, types, and formulas in a single call. It explicitly differentiates from sibling tools like coda_list_tables and coda_list_columns by noting the equivalence of multiple calls, making the intent unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: it is equivalent to running multiple list commands and is especially useful before writing data or debugging formulas. While it doesn't explicitly state when not to use it or enumerate all alternatives, the comparison to sibling tools gives sufficient guidance for the AI to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_get_formulaGet Coda FormulaA
Read-onlyIdempotent

Get details of a specific named formula in a Coda document.

Args:

  • doc_id (string): The document ID

  • formula_id (string): The formula ID or name

  • response_format: 'markdown' or 'json'

Returns: Formula name, id, and computed value.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
formula_idYesFormula ID or name
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds that it returns the formula name, id, and computed value, which is not covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively short and structured with an Args list, but could be more front-loaded. No wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description mentions return values. Tool complexity is low, and parameters are well-documented in the schema. Covers essential information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already explains all parameters. The description adds minimal additional meaning beyond listing the args and the response_format enum values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('get details') and the resource ('specific named formula'), distinguishing it from sibling tools like coda_list_formulas which list formulas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving details of a specific formula, but does not explicitly state when to use vs. alternatives 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_get_page_contentGet Page ContentB
Read-onlyIdempotent

Récupère le contenu complet d'une page Coda au format markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesID du document
page_idYesID ou nom de la page

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the description's burden is lower. It adds that output is in markdown format, which is useful. However, no additional behavioral details (e.g., rate limits, authentication needs) are provided, and the description does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the key information (action, resource, output format). Every word is necessary and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the output format (markdown) but does not specify what 'full content' includes (e.g., whether images, tables, or metadata are preserved). Without an output schema, additional details like response structure or length limitations would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters documented. The description implicitly clarifies that 'doc_id' and 'page_id' refer to a Coda document and page, but this is already clear from the schema descriptions. No extra meaning is added beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (récupère), resource (contenu complet d'une page Coda), and output format (markdown). It effectively conveys the tool's purpose but does not explicitly differentiate it from sibling tools like 'coda_peek_page' which likely provides a summary, missing an opportunity for clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidelines are provided about when to use this tool versus alternatives. It does not mention when not to use it or what prerequisites (e.g., page must exist) are required. The description only states the function, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_get_rowGet Coda RowA
Read-onlyIdempotent

Get a specific row from a Coda table by its ID or name.

Args:

  • doc_id (string): The document ID

  • table_id (string): The table ID or name

  • row_id (string): The row ID or name

  • value_format: 'simple' or 'rich'

  • response_format: 'markdown' or 'json'

Returns: Row with all column values.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
row_idYesRow ID or name
table_idYesTable ID or name
value_formatNosimple
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds that it returns 'Row with all column values' but does not discuss other behaviors like rate limits, auth requirements, or error conditions. It is consistent with annotations, so 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, front-loaded with the main verb and resource, and uses bullet-like args for parameters. Every sentence is necessary and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters (3 required), schema coverage at 80%, and no output schema, the description provides the return type but lacks guidance on when to use the tool, required permissions, error scenarios, or handling of edge cases like invalid IDs. It is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover most parameters (80%), so the baseline is 3. However, the description incorrectly lists value_format as 'simple' or 'rich' while the schema includes 'simpleWithArrays'. This omission reduces clarity. The description adds value for response_format by explaining output types, but the error in value_format lowers the score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'specific row from a Coda table by its ID or name'. It distinguishes from sibling tools like coda_list_rows (which lists all rows) and other mutation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (when you know the row ID/name) but does not explicitly state when to use this tool vs alternatives like coda_list_rows. It provides no exclusions or when-not-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_get_tableGet Coda TableA
Read-onlyIdempotent

Get metadata for a specific table or view.

Args:

  • doc_id (string): The document ID

  • table_id (string): The table ID or name

  • response_format: 'markdown' or 'json'

Returns: Table metadata including id, name, type, rowCount, browserLink.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
table_idYesTable ID or name
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds context by specifying the return fields (id, name, type, rowCount, browserLink). This informs the agent of the output structure without repeating annotation information. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: first sentence states the purpose, then a compact parameter list, then a clear return description. It is front-loaded and every sentence provides essential information without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given rich annotations (readOnly, idempotent) and full schema coverage, the description adequately covers purpose, parameters, and return format. It doesn't explicitly address error cases or prerequisites, but for a simple read operation, it is sufficient. The lack of output schema is compensated by the return description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 lists parameters and their types but does not add significant new meaning beyond the schema's descriptions. The mention of response_format options is already in the schema with default and enum. The return information is not parameter semantics. Thus, minimal added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get metadata for a specific table or view' with a clear verb (get) and resource (table/view metadata). It distinguishes itself from sibling tools like coda_list_tables (which lists all tables) and coda_get_table is for a single table's metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when you need metadata of a specific table or view) but does not explicitly state when not to use or provide alternatives. Given the many sibling tools, some guidance on distinguishing from coda_list_tables or coda_get_row would be helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_list_columnsList Coda ColumnsA
Read-onlyIdempotent

List all columns in a Coda table, including their IDs and types.

Useful to get column IDs before reading/writing rows, since Coda rows use column IDs as keys.

Args:

  • doc_id (string): The document ID

  • table_id (string): The table ID or name

  • response_format: 'markdown' or 'json'

Returns: List of columns with id, name, type, format.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
table_idYesTable ID or name
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds behavioral context: it lists columns, returns IDs and types, and the response format parameter. It does not contradict annotations and adds value by explaining the use case.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences plus 'Args:' and 'Returns:' sections. Every sentence serves a purpose. Information is front-loaded and well-structured. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description properly explains returns: 'List of columns with id, name, type, format.' This is sufficient for a simple list tool. It does not cover pagination or errors, but given the tool's simplicity and annotations (readOnly, idempotent), it is complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 'Args:' section in the description repeats parameter info but adds minimal additional meaning beyond the schema (e.g., 'response_format: markdown or json' is already in schema). No extra semantic depth.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all columns in a Coda table, including their IDs and types.' It specifies the verb (list), resource (columns in a Coda table), and key output (IDs, types). It also distinguishes from siblings like 'coda_get_column' by indicating it lists all columns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states it is 'Useful to get column IDs before reading/writing rows, since Coda rows use column IDs as keys.' This provides clear when-to-use guidance. It does not mention when not to use or alternatives, but the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_list_controlsList Coda ControlsA
Read-onlyIdempotent

List all controls (formula cells, buttons, date pickers, etc.) in a Coda document.

Args:

  • doc_id (string): The document ID

  • limit (number): Max controls (default 25)

  • page_token (string, optional): Pagination token

  • response_format: 'markdown' or 'json'

Returns: List of controls with id, name, type, formula, browserLink.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return (1–500, default 25)
doc_idYesCoda document ID
page_tokenNoToken for next page of results (from previous response)
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds return field details (id, name, type, formula, browserLink) but does not disclose new behavioral traits beyond what annotations provide. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences plus a clear arg/return list. It is front-loaded with the purpose and contains no unnecessary information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with rich annotations and complete schema, the description adequately covers pagination, limit, response format, and return fields. No output schema exists, but the return description suffices. Complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all four parameters with descriptions (100% coverage). The description does not add parameter-level meaning beyond the schema; it only lists the args in a docstring format. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all controls (formula cells, buttons, date pickers) in a Coda document. It uses a specific verb and resource, and the mention of control types distinguishes it from sibling tools like coda_list_formulas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While the name and description imply listing multiple controls, there is no mention of when not to use it or references to siblings like coda_get_control for single controls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_list_docsList Coda DocsA
Read-onlyIdempotent

List and search Coda documents accessible by the API token.

Returns doc titles, IDs, owner, creation dates and URLs.

Args:

  • query (string, optional): Filter by title keywords

  • limit (number): Max docs to return, 1–500 (default 25)

  • page_token (string, optional): Pagination token from previous response

  • response_format: 'markdown' or 'json'

Returns: List of docs with id, name, owner, createdAt, updatedAt, browserLink.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return (1–500, default 25)
queryNoSearch keyword in doc title
page_tokenNoToken for next page of results (from previous response)
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the description's burden is lower. It adds value by disclosing that the tool returns a list of docs with specific fields, supports pagination via page_token, and accepts a query filter. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a two-sentence purpose, then a structured Args list. Every sentence earns its place. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with 4 parameters and no output schema, the description covers the key aspects: what it returns, parameters with defaults, and pagination. It lacks sibling differentiation and error handling, but is otherwise complete given the annotations and schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 goes beyond schema by clearly explaining each parameter's purpose in the 'Args' block (e.g., query for keyword search, page_token for pagination, response_format for output type), adding meaning about range and usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List and search') and the resource ('Coda documents accessible by the API token'), and specifies the return fields (titles, IDs, owner, dates, URLs). It distinguishes from sibling tools like coda_get_doc and coda_search_docs by focusing on listing multiple docs, but does not explicitly differentiate from coda_search_docs, which may also list/search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., coda_search_docs). It mentions accessibility by the API token, which implies a scope, but lacks when-not-to-use or prerequisite information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_list_formulasList Coda FormulasA
Read-onlyIdempotent

List all named formulas in a Coda document.

Args:

  • doc_id (string): The document ID

  • response_format: 'markdown' or 'json'

Returns: List of formulas with id, name, and value.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesCoda document ID
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the description adds value by specifying the output format options (markdown/json) and return fields (id, name, value). 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences and a bullet list of arguments. It front-loads the main purpose and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains return values (list with id, name, value) despite no output schema. It lacks details on error handling or pagination, but for a simple list tool, it is mostly complete given the annotations and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing baseline 3. The description adds context by explaining that response_format accepts 'markdown' (human-readable) or 'json' (machine-readable), which is not fully captured in the schema's enum description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all named formulas in a Coda document.' with a specific verb ('list') and resource ('named formulas'), distinguishing it from sibling tools like coda_get_formula (single formula) and coda_list_docs (list documents).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The description implies usage through its name and title, but does not mention alternatives or conditions for choosing this tool over related tools like coda_get_formula.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_list_pagesList Coda PagesA
Read-onlyIdempotent

List all pages in a Coda document.

Args:

  • doc_id (string): The document ID

  • limit (number): Max pages to return (default 25)

  • page_token (string, optional): Pagination token

  • response_format: 'markdown' or 'json'

Returns: List of pages with id, name, type, browserLink.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return (1–500, default 25)
doc_idYesCoda document ID
page_tokenNoToken for next page of results (from previous response)
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds value by specifying the return fields (id, name, type, browserLink) and pagination behavior via page_token. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a clear structure: a one-line summary, an 'Args' section listing parameters with types and defaults, and a 'Returns' section describing output. Every sentence is necessary and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with 4 parameters and no output schema, the description is complete. It explains pagination, required vs optional parameters, output format options, and the structure of return data. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description clarifies the purpose of page_token ('from previous response') and response_format ('markdown for human-readable, json for machine-readable'), adding meaning beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all pages in a Coda document' with a specific verb and resource. It distinguishes from sibling tools like coda_get_page (single page) and coda_create_page (create) by focusing on listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on pagination parameters (limit, page_token) and output format selection, but does not explicitly state when to use this tool versus other list tools (e.g., coda_list_tables) or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_list_rowsList Coda RowsA
Read-onlyIdempotent

List rows from a Coda table with optional filtering and sorting.

Args:

  • doc_id (string): The document ID

  • table_id (string): The table ID or name

  • query (string, optional): Filter rows — format: "columnId:value"

  • sort_by (string, optional): Sort column ID

  • limit (number): Max rows (default 25, max 500)

  • page_token (string, optional): Pagination token

  • value_format (string): 'simple' (default) or 'simpleWithArrays' or 'rich'

  • response_format: 'markdown' or 'json'

Returns: List of rows with their values keyed by column name.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return (1–500, default 25)
queryNoFilter rows: 'columnId:value'
doc_idYesCoda document ID
sort_byNoColumn ID to sort by
table_idYesTable ID or name
page_tokenNoToken for next page of results (from previous response)
value_formatNoValue format for row cellssimple
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, confirming safe read operation. The description adds useful behavioral details: pagination via page_token, default limit, and value_format options. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a concise docstring with a clear purpose sentence followed by a well-organized parameter list. Every sentence adds value, no redundancy, and it is appropriately front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations (readOnly, idempotent, openWorld), the description fully covers the tool's behavior: listing with filters, pagination, sorting, value format, and response format. No output schema exists, but the return description is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 8 parameters. The description adds extra meaning by explaining the query format (columnId:value) and clarifying response_format options (markdown vs json). This goes beyond the schema's basic descriptions, though not extensively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists rows from a Coda table with optional filtering and sorting. It distinctly identifies the resource (rows) and the action (list), and differentiates from siblings like coda_get_row (single row) and coda_upsert_rows (create/update).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing rows with filters but does not explicitly state when to use this tool versus alternatives like coda_get_row for single row retrieval or coda_upsert_rows for batch operations. No guidance on 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_tablesList Coda TablesA
Read-onlyIdempotent

List all tables and views in a Coda document.

Args:

  • doc_id (string): The document ID

  • table_type (string, optional): Filter by type — 'table' or 'view'

  • limit (number): Max tables (default 25)

  • page_token (string, optional): Pagination token

  • response_format: 'markdown' or 'json'

Returns: List of tables with id, name, type, rowCount, browserLink.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return (1–500, default 25)
doc_idYesCoda document ID
page_tokenNoToken for next page of results (from previous response)
table_typeNoFilter: 'table' or 'view'
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive. Description adds specific output fields and parameter options (filter, pagination, format). Does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise, front-loaded purpose, clear parameter list. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, all parameters, output format, and return fields. Lacks explicit mention of default limit or that pagination token comes from previous response, but mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptions. Description reinforces with a readable summary and adds default values and format options, but doesn't provide new meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action 'List all tables and views' and scope 'in a Coda document.' Differentiates from siblings like coda_get_table (single table) or coda_list_docs (docs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly used when you need a list of tables/views in a doc. No explicit when-not or alternative mentions, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_peek_pagePeek PageA
Read-onlyIdempotent

Aperçu des premières lignes d'une page Coda (évite de charger tout le contenu).

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesID du document
page_idYesID ou nom de la page
num_linesNoNombre de lignes à retourner (défaut 30)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds that it only returns the first lines, not full content, which is valuable 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence) and front-loaded with the core purpose. Every word contributes value, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple peek tool with well-documented parameters and rich annotations, the description is complete. It explains the key benefit (avoiding full content load) and is sufficient for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% descriptive coverage for its three parameters. The description does not add any additional semantics beyond what the schema already provides, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool previews the first lines of a Coda page, using a specific verb 'Aperçu' (preview) and resource 'page Coda'. It explicitly distinguishes from full content loading, differentiating it from sibling tools like coda_get_page_content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by stating it 'avoids loading all content', implying it should be used when only a preview is needed. However, it does not explicitly name alternatives or 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_push_buttonPush ButtonA

Déclenche un bouton Coda sur une ligne spécifique d'une table.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesID du document
row_idYesID ou nom de la ligne
table_idYesID ou nom de la table
column_idYesID ou nom de la colonne bouton

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false) and not idempotent (idempotentHint=false). The description adds the specific context that it triggers a button, but does not disclose potential side effects, error conditions, or the nature of the button execution beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence front-loaded with the action and resource, containing no extraneous information. Every word contributes to the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the core purpose is clear, the description lacks important context about the consequences of triggering the button (e.g., potential data mutations, execution behavior). With openWorldHint=true and no output schema, more detail on side effects or return values would improve decision-making for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with adequate descriptions for all four parameters. The tool's description does not add any extra meaning or usage hints 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Déclenche' (triggers) and identifies the resource 'bouton Coda' (Coda button) on a specific row and table, clearly distinguishing it from all sibling tools which do not involve button triggering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when wanting to run a button's action, but it does not provide any explicit when-to-use, when-not-to-use, or alternative suggestions, leaving the agent without clear guidance on appropriate contexts or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_rename_pageRename PageA
Idempotent

Renomme une page existante. Raccourci explicite pour changer uniquement le nom.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesID du document
page_idYesID ou nom de la page
new_nameYesNouveau nom de la page

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not read-only, not destructive, and idempotent. The description adds value by specifying that it only changes the name (not other properties), reinforcing the idempotent and non-destructive nature. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the verb and resource. Every word adds value. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 simple parameters and no output schema, the description is sufficiently complete. It explains the action and scope. Minor omission: no mention of return values or error cases, but these are not critical given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameter schema has 100% coverage with basic descriptions. The tool description does not add additional semantics beyond what the schema provides. However, the context of renaming clarifies the purpose of 'new_name'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool renames an existing page ('Renomme une page existante'), with a specific verb and resource. It distinguishes itself from the sibling 'coda_update_page' by explicitly calling itself a shortcut for changing only the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (only for renaming) by stating it's a shortcut for changing the name, contrasting with a full page update. However, it does not explicitly state when not to use it or name alternatives beyond the implication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_replace_page_contentReplace Page ContentA
Destructive

Remplace entièrement le contenu d'une page par du markdown. ATTENTION : action irréversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesID du document
contentYesNouveau contenu markdown
page_idYesID ou nom de la page

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reinforces the destructiveHint annotation by warning 'action irréversible', but adds limited new behavioral context beyond what annotations already provide. It does not discuss auth needs, rate limits, or other side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—one sentence plus a warning—with no wasted words. It front-loads the action and the cautionary note, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and full schema coverage, the description adequately covers core functionality and irreversibility. It omits return value details but is sufficient for a straightforward destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter having a basic description. The tool description adds no additional meaning beyond the schema's parameter descriptions, so it meets the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool replaces entire page content with markdown, specifying the verb 'remplace', the resource 'page content', and the format. It distinguishes from siblings like coda_update_page or coda_append_page_content by emphasizing full replacement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description warns that the action is irreversible, implying caution, but does not explicitly state when to use this tool versus alternatives like coda_update_page or coda_append_page_content. No direct comparison or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_resolve_uriResolve Coda URIA
Read-onlyIdempotent

Parse a coda:// URI (returned by the official Coda MCP) and extract the raw IDs usable with this server.

Supports URIs like:

  • coda://docs/{docId}

  • coda://docs/{docId}/pages/{pageId}

  • coda://docs/{docId}/tables/{tableId}

  • coda://docs/{docId}/tables/{tableId}/columns/{columnId}

  • coda://docs/{docId}/tables/{tableId}/rows/{rowId}

Args:

  • uri (string): A coda:// URI

Returns: Extracted doc_id, table_id, page_id, column_id, row_id (whichever apply).

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYescoda:// URI to parse

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description adds extraction behavior and supported URI patterns, enhancing transparency 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: a single-purpose statement, a bulleted list of URI patterns, and Args/Returns. No unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single parameter with full schema coverage, annotations covering safety, and no output schema, the description adequately explains input, process, and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% with a description for 'uri'. The description adds value by listing all supported URI patterns and the IDs returned, going beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool parses a coda:// URI and extracts raw IDs. It is distinct from sibling tools, none of which perform URI parsing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage context: URIs returned by the official Coda MCP. While not explicitly stating when not to use or alternatives, the unique purpose makes guidance adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_search_docsSearch Coda DocsA
Read-onlyIdempotent

Search across all accessible Coda documents by title keyword.

Args:

  • query (string): Search term

  • limit (number): Max results (default 25)

  • response_format: 'markdown' or 'json'

Returns: Matching docs with id, name, browserLink.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return (1–500, default 25)
queryYesSearch keyword
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, openWorldHint, idempotentHint as true, and destructiveHint false. The description adds that the tool returns matching docs with id, name, browserLink, which is helpful but does not elaborate on behavioral traits like scope or side effects beyond what annotations cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: one sentence for purpose, followed by a clear parameter list and return value summary. Every sentence is necessary and front-loaded, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with full parameter documentation, the description provides a complete picture: scope ('all accessible documents'), search target (title), return fields, and output format options. No output schema is needed given the description's return summary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters. The description restates the parameters and adds that response_format can be 'markdown' or 'json', but the schema already specifies enumeration and defaults. Thus the description adds minimal new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'search across all accessible Coda documents by title keyword', specifying the verb (search) and resource (documents). This distinguishes it from sibling tools like coda_list_docs (list all) and coda_get_doc (get one doc).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching by title keyword but does not explicitly provide when-to-use or when-not-to-use, nor does it mention alternatives. No guidance on scenarios better served by other sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_update_docUpdate Coda DocB
Idempotent

Update a document's title or icon.

Args:

  • doc_id (string): The document ID

  • title (string, optional): New title for the document

  • icon_name (string, optional): Emoji icon name (e.g. "gear")

Returns: Confirmation with updated doc info.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNew document title
doc_idYesCoda document ID
icon_nameNoEmoji icon name

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotent, non-destructive, and write operations. The description adds that it updates title or icon, but does not elaborate on potential side effects (openWorldHint is true) or authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with one sentence and a brief bullet list. Main action is front-loaded with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple update tool with 3 parameters and no output schema, the description gives a basic return note but lacks details on edge cases like omitting both optional fields or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all parameters with descriptions, and the tool description provides an example for icon_name ('gear') and clarifies optionality. This adds value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool updates a document's title or icon, which distinguishes it from creation, deletion, and listing siblings. However, it could specify that it only allows updating those two fields and not other properties.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like updating pages. There are no when-not-to-use or prerequisite conditions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_update_pageUpdate Coda PageB
Idempotent

Update a page's name or content in a Coda document.

Args:

  • doc_id (string): The document ID

  • page_id (string): The page ID or name

  • name (string, optional): New name for the page

  • subtitle (string, optional): New subtitle

  • icon_name (string, optional): Emoji icon name (e.g. "gear")

  • image_url (string, optional): Cover image URL

Returns: Confirmation with updated page info.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew page title
doc_idYesCoda document ID
page_idYesPage ID or name
subtitleNoNew subtitle
icon_nameNoEmoji icon name
image_urlNoCover image URL

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-readonly, non-destructive, and idempotent behavior. The description adds minimal context beyond stating 'update'; no mention of permissions or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a single purpose statement and parameter list. It is front-loaded and efficiently communicates the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description provides a vague return statement. It is minimally complete but lacks details on error handling or result structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with quality descriptions. The description re-lists parameters but adds no additional semantics beyond the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 or content in a Coda document, listing specific fields. This distinguishes it from sibling tools like coda_create_page or coda_rename_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly guide when to use this tool versus alternatives like coda_rename_page or coda_replace_page_content. Usage is implied but not delineated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_update_rowUpdate Coda RowB
Idempotent

Update specific cells in an existing row.

Args:

  • doc_id (string): The document ID

  • table_id (string): The table ID

  • row_id (string): The row ID

  • cells (array): Array of {column, value} pairs to update

Returns: Request ID confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellsYesCells to update
doc_idYesCoda document ID
row_idYesRow ID
table_idYesTable ID

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read, non-destructive, idempotent write operation. The description adds the return value ('Request ID confirmation') which is not in annotations, providing some additional transparency. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with one sentence for purpose, a bullet list of args, and a return statement. All information is front-loaded and relevant. Could be slightly more streamlined but no unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple update tool, the description provides essential information. However, given the openWorldHint annotation and many sibling tools, more context about side effects, partial updates, or error handling would improve completeness. The description is adequate but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description's parameter descriptions are largely redundant with the schema. However, it clarifies the cells format as '{column, value} pairs' which is slightly more explicit than the schema's object structure. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (update) and the resource (specific cells in an existing row). It differentiates from sibling tools like coda_upsert_rows (which can insert) and coda_delete_row (deletion).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives such as coda_upsert_rows. It does not mention that the row must exist or when not to use it. The description only states what it does, not the context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_upsert_rowsUpsert Coda RowsA

Insert or update rows in a Coda table (base table only, not views).

Provide row data as an array of objects, each with column IDs as keys. Use coda_list_columns to get the column IDs first.

Args:

  • doc_id (string): The document ID

  • table_id (string): The BASE table ID (not a view)

  • rows (array): Array of row objects. Each object has a "cells" array with {column, value} pairs. Example: [{"cells": [{"column": "c-ABC123", "value": "Hello"}]}]

  • key_columns (array, optional): Column IDs to use as unique keys for upsert matching

Returns: Request ID and number of rows added/updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYesRows to insert/update
doc_idYesCoda document ID
table_idYesBase table ID (not a view)
key_columnsNoColumn IDs used as unique keys for upsert matching

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a mutating operation (readOnlyHint=false) and non-idempotent but non-destructive. The description adds useful context: it works only on base tables (not views), and returns the number of rows added/updated. It does not contradict annotations and provides behavioral cues beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a brief summary, a prerequisite hint, then clear parameter explanations with an example. It is concise with no wasted words, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (upsert with optional key columns, requiring column IDs), the description is complete. It covers the prerequisite, parameter format, base-table constraint, and return value. No output schema exists, but the description sufficiently describes the return.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 `rows` parameter with a concrete example and clarifying the `key_columns` purpose. This goes beyond the schema descriptions which are concise but lack usage examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Insert or update rows in a Coda table (base table only, not views)', specifying the verb (upsert), resource (rows in a Coda table), and scope (base table only). It distinguishes from sibling tools like coda_list_rows, coda_get_row, coda_update_row, and coda_delete_row by focusing on the upsert operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a prerequisite ('Use coda_list_columns to get the column IDs first') which guides the agent on preparation. However, it does not explicitly state when to use this tool versus alternatives like coda_update_row (for updating by row ID) or coda_insert_row (if available). The usage context is implied but lacks exclusions or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coda_whoamiWho Am I (Coda)A
Read-onlyIdempotent

Retrieve information about the currently authenticated Coda user.

Useful to verify which account is active and confirm the API token is valid.

Args:

  • response_format: 'markdown' or 'json'

Returns: User name, email (loginId), and account type.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNoOutput format: 'markdown' for human-readable, 'json' for machine-readablemarkdown

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description's primary behavioral disclosure is listing the returned fields (name, email, account type). It adds value by specifying what information the user gets, which annotations don't cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences plus an Args line. Every sentence serves a purpose—stating function, use case, and parameter details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one optional parameter and no output schema, the description covers everything needed: what it does, why it's useful, what it returns, and the parameter format. It is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description's 'Args' section essentially repeats the schema's parameter description. It does not add meaning beyond what the schema already provides (output format options), 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve information about the currently authenticated Coda user,' which is a specific verb+resource. It is distinct from sibling tools that operate on docs, pages, rows, etc., leaving no ambiguity about its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Useful to verify which account is active and confirm the API token is valid,' providing clear context for when to use the tool. While it does not list exclusions or alternatives, the purpose is so specific that no further guidance is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap: coda_update_page and coda_rename_page (rename is redundant), coda_delete_row and coda_delete_rows (bulk vs single), and coda_list_docs vs coda_search_docs (both search). However, descriptions help differentiate.

Naming Consistency4/5

Predominantly follows 'coda_verb_noun' pattern (e.g., coda_list_docs). Minor deviations: coda_upsert_rows, coda_push_button, coda_whoami, and some verbs like 'peek', 'replace', 'append' are acceptable but break the pattern slightly.

Tool Count3/5

35 tools is high but justified by Coda's rich API (docs, pages, tables, rows, columns, formulas, controls). Some tools seem redundant (e.g., coda_rename_page, coda_delete_rows, coda_peek_page), suggesting potential trimming.

Completeness3/5

Covers core CRUD for docs and rows well, but missing create/update/delete for tables and columns. Schema management is read-only. Utility tools (resolve, whoami) are good additions. Notable gaps for full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/thierryvm/coda-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server