Skip to main content
Glama
alejoacelas

gdoc MCP

by alejoacelas

gdoc MCP

Typed MCP tools backed by Luca De Leo's gdoc CLI. It follows JP Addison's dharma pattern: the MCP server validates tool inputs, runs the CLI without a shell, returns structured output, and keeps an allowlisted escape hatch for new CLI features.

Chosen deployment

Use the hosted MCP connector for 80,000 Hours. A Claude owner adds one URL; each staff member clicks Connect and authorizes their own Google account. This is the only option that gives staff the same connector-level experience as native Drive.

The local MCPB remains a fallback for development, personal use, or environments where hosting Google refresh tokens is unacceptable. It is not the planned staff deployment.

Related MCP server: Google Workspace MCP Server

Local fallback

Recipients do not need a terminal, Python, Node, uv, or a separate gdoc install:

  1. Open the .mcpb built for the right Google profile and Mac architecture.

  2. In Claude, ask: “Connect Google Docs using the gdoc tools.”

  3. Claude calls connect_google; the bundle opens Google's authorization page.

  4. Sign into Google and approve access once.

The bundle contains the CLI and the profile's Desktop OAuth client. Google stores no password in the extension: the browser returns an authorization code, and gdoc saves the resulting refresh token locally under ~/.config/gdoc/ with mode 0600.

connect_google is separate from Claude's connector-level Connect button. That button is available to remote MCP connectors; a local MCPB initiates OAuth from its own tool.

Remote connector

Follow the personal end-to-end test guide to configure Google Cloud, install the Web OAuth credential without exposing it, add the connector to Claude, and verify read and write calls.

A remote connector is installed by URL, not as an .mcpb: Claude reaches it from Anthropic's infrastructure even when the client is Claude Desktop. After connecting, use the round-trip challenge to test Markdown import, native tables, tabs, exact edits and comment threads. See the update-friction matrix for which releases require a deploy, a new conversation, renewed Google consent, or connector reinstallation.

The remote service gives Claude Team users the native connector flow: an owner adds https://gdoc-mcp-alejo.fly.dev/mcp once, then each user clicks Connect and grants Google access. The deployed endpoint is healthy, but its current personal Desktop OAuth credential cannot accept a hosted callback. Before testing Connect, create a Google OAuth client of type Web application with this authorized redirect URI:

https://gdoc-mcp-alejo.fly.dev/oauth/google/callback

Then replace the two staged Fly secrets and redeploy:

flyctl secrets set --app gdoc-mcp-alejo \
  GOOGLE_CLIENT_ID='<web-client-id>' \
  GOOGLE_CLIENT_SECRET='<web-client-secret>'

flyctl deploy --app gdoc-mcp-alejo --remote-only

For 80,000 Hours, deploy a separate organization-owned instance, set ALLOWED_GOOGLE_DOMAIN=80000hours.org, and use an Internal Web OAuth client owned by the Workspace organization. Keeping personal and organizational deployments separate prevents a credential switch from invalidating another profile's stored grants.

The service implements MCP dynamic client registration, S256 PKCE, OAuth resource indicators, Google identity verification, one-hour MCP access tokens, MCP refresh tokens, and per-user MCP sessions. Google refresh tokens and MCP credentials are stored in one AES-256-GCM encrypted file on an encrypted persistent volume. The encryption key is a deployment secret. A Google token is materialized in a mode-0600 temporary home directory only while gdoc handles a request, then removed.

The current encrypted file store requires one running machine. Before adding replicas, replace it with a transactional shared database or add cross-process locking.

Private build profiles

OAuth client files identify their owning Google Cloud project and must not be committed or attached to a public release. Build profile bundles locally:

npm ci

npm run build:mcpb -- personal \
  ~/.config/credentials/google-oauth-client-mac-air-2020-personal.json

npm run build:mcpb -- 80000hours \
  /path/to/80000hours-google-desktop-oauth-client.json

Outputs on an Apple Silicon Mac:

dist/gdoc-personal-arm64.mcpb
dist/gdoc-80000hours-arm64.mcpb

The personal profile defaults to alejoacelas@gmail.com. The 80,000 Hours profile leaves the account open for each employee and sends 80000hours.org as Google's account chooser hint. The organization OAuth application should use an Internal audience; that, not the hint, enforces the Workspace domain.

The build fails before creating a bundle if the selected credential file is absent or is not a Google Desktop OAuth client.

Run from source

Developers can use an installed gdoc and any credential source it supports:

npm ci
GDOC_BIN=/absolute/path/to/gdoc npm start

The server exposes typed tools for browser authorization, reading, search, tabs, revisions, comments, writes, direct and suggested edits, sharing, and document creation. gdoc_cli passes arguments to an explicit subcommand allowlist without invoking a shell; auth, config, update, and internal hooks cannot be reached through that raw tool.

Test

npm test

The live deployment can be checked without Google credentials:

curl -fsS https://gdoc-mcp-alejo.fly.dev/health
curl -fsS https://gdoc-mcp-alejo.fly.dev/.well-known/oauth-protected-resource/mcp

Tests use a fake CLI: they do not open a browser or call Google. The profile build also validates the manifest and packages a platform-native CLI. After unpacking a built bundle, a smoke test should list tools and call gdoc_cli with cat --help; this proves the server can find and execute the bundled binary without accessing Drive.

Platform support

The current builds contain a PyInstaller CLI and are architecture-specific:

  • arm64: Apple Silicon Macs;

  • x64: Intel Macs when built on an Intel Mac;

  • Windows is not built yet.

MCPB itself supports macOS and Windows. Windows support requires building a Windows gdoc.exe on Windows and either publishing a separate bundle or adding runtime OS/architecture selection to one multi-platform bundle.

Security boundaries

  • Profile OAuth clients are copied only into ignored local build artifacts.

  • Refresh tokens are created by Google's browser flow; they are never committed or placed in the .mcpb.

  • Model-provided values go to execFile, never a shell.

  • The raw CLI tool excludes authentication and administrative commands.

  • Temporary Markdown files used for writes are mode 0600 and removed after use.

  • Remote Google grants and MCP credentials are encrypted at rest; OAuth state and PKCE bind each browser callback to the initiating Claude connection.

  • The bundled executable is unsigned, so a downloaded bundle may need Gatekeeper approval.

MIT.

Available Tools

22 tools
add_commentC

Add a document comment, optionally anchored to quoted text.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
textYes
quietNo
quoteNo
accountNoAuthenticated gdoc account name or email

TDQS

C2.6/5.0
Behavior2/5

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

No annotations; description lacks details on side effects, permissions, or return format. Mutation implied but not elaborated.

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?

Very short, but front-loaded. Could include more detail without becoming verbose. Adequate but not optimal.

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?

Missing output schema, no error info, no return value description. For a mutation tool with 5 parameters, description is insufficient.

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 coverage is low (40%); description adds no parameter details beyond the schema. The 'quote' parameter is hinted but not explained.

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?

Description clearly states action (add comment) and optional anchoring to quoted text. Distinguishes from sibling tools like reply_to_comment. Could be more specific about scope, but adequate.

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 on when to use versus alternatives like reply_to_comment, or prerequisites. Agent must infer context from sibling list.

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

add_tabC

Add a tab to an existing Google Doc.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
quietNo
titleYes
accountNoAuthenticated gdoc account name or email

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only says 'Add a tab'. It does not disclose behavioral traits like side effects, authentication needs (though 'account' param implies it), or changes to the document.

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 extremely concise with a single sentence, but it sacrifices necessary detail. It earns 4 for being front-loaded and efficient, though it could be more informative.

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?

Given the tool has 4 parameters with some unspecified and no output schema or annotations, the description is insufficient. It omits details like required title format, behavior of 'quiet', and account usage.

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 description coverage is 50%, but the description adds no additional meaning for parameters 'title' and 'quiet', which lack schema descriptions. The description does not compensate for the missing parameter information.

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 ('Add') and the resource ('tab to an existing Google Doc'), which is specific and distinct from sibling tools like 'list_tabs' or 'edit_document'.

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 'edit_document' which might also modify tabs. There is no mention of prerequisites 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.

connect_googleA

Connect Google Docs by opening Google's authorization page in the user's browser. Use this when gdoc reports that it is not authenticated. The bundled OAuth client is selected automatically; no terminal or copied token is needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNoGoogle account email or local account name; defaults to this bundle's configured account

TDQS

A4.4/5.0
Behavior4/5

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

The description details the auth flow (opens browser page, automatic OAuth client, no token entry) but omits whether it returns a result or waits for authorization.

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 sentences with no extraneous words; the purpose is front-loaded and every sentence adds value.

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

Completeness4/5

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

For a simple auth tool with one optional parameter and no output schema, the description adequately covers action, trigger, and key behavior, though post-authorization state is not mentioned.

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% and the description reiterates the account parameter's optionality and default, adding 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 the tool's action ('Connect Google Docs by opening Google's authorization page') and distinguishes it from sibling tools that perform document operations.

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

Usage Guidelines5/5

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

It explicitly specifies when to use ('when gdoc reports that it is not authenticated') and notes advantages ('no terminal or copied token needed'), providing clear guidance.

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

copy_documentC

Duplicate a document with a new title.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
quietNo
titleYes
accountNoAuthenticated gdoc account name or email

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only says 'duplicate.' It doesn't disclose whether the original is preserved, if permissions are copied, or if it requires write access. For a mutation tool, this is insufficient.

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 one-sentence description is front-loaded and avoids unnecessary words. However, it sacrifices completeness for brevity.

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

Completeness1/5

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

Given no output schema, no annotations, and only 50% schema coverage, the description fails to explain what the tool returns, prerequisites, or behavioral nuances. The agent is left with significant ambiguity.

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 coverage is 50%, yet the description adds no meaning beyond listing 'title.' Parameters like 'quiet' and 'account' are unexplained, requiring the agent to guess their purpose.

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 'Duplicate a document with a new title,' clearly indicating the action (duplicate) and resource (document). This distinguishes it from siblings like create_document (creates new) and edit_document (modifies).

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 on when to use this tool versus alternatives (e.g., create_document for new, read_document for viewing). An agent would have to infer context from the name alone.

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

create_documentC

Create a Google Doc, optionally initialized from Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
accountNoAuthenticated gdoc account name or email
contentNo
folder_idNo
page_modeNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full disclosure burden. It states creation (mutation) but fails to mention required authentication, permission scopes, rate limits, or any side effects like overwriting existing documents. The minimal description does not adequately inform an agent of behavioral traits.

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

Conciseness4/5

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

The description is concise (one sentence) and front-loaded with the core action. However, it could benefit from structured bullet points to list parameters or usage notes, but the brevity is not detrimental.

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?

Given 5 parameters and no output schema, the description is incomplete. It does not specify return values (e.g., document ID), error conditions, or prerequisites like authentication. Compared to sibling tools, it lacks contextual cues for correct selection and invocation.

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 description coverage is only 20% (only 'account' has a description). The tool description adds no new information about parameters beyond the schema; it only hints that 'content' can be Markdown. Most parameters (title, folder_id, page_mode) remain underdocumented.

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 'create' and the resource 'Google Doc', with optional Markdown initialization. This distinguishes it from sibling tools like 'write_document' or 'insert_document' that modify existing documents.

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 (e.g., 'write_document' for updates). The description implies creating a new document but doesn't contrast with other creation-related siblings like 'copy_document' or 'add_tab'.

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

document_infoB

Get document metadata, ownership, modified time, and size.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
quietNo
accountNoAuthenticated gdoc account name or email

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not declare read-only behavior, authentication needs, error handling, or rate limits. Only states what is returned, not how it behaves.

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, front-loaded with verb and resource. No wasted words. Efficiently communicates core purpose.

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?

Minimal description for a tool with 3 parameters and no output schema. Lacks details on output format, error conditions, or parameter effects beyond schema. Not sufficient for complex use.

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 coverage is 67%, but description adds no explanation beyond schema. The 'quiet' parameter has no description in schema or description, leaving its purpose unclear.

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 verb 'Get' and resource 'document metadata' with specific attributes (ownership, modified time, size). Distinguishes from sibling tools like 'read_document' and 'list_files'.

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 when-to-use or when-not-to-use guidance provided. No mention of alternatives or prerequisites. The context from sibling tools is insufficient.

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

edit_documentC

Replace text or a table cell in a document. Replacement text supports Markdown formatting.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
tabNo
cellNoCell label or ROW,COL coordinates
quietNo
tableNo
columnNo
accountNoAuthenticated gdoc account name or email
new_textYes
old_textNo
normalizeNo
replace_allNo
case_sensitiveNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided. The description only implies a mutation (replace) without detailing permissions, reversibility, or side effects. Key behavioral parameters like replace_all, case_sensitive, normalize are not explained.

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 very short (two sentences) and front-loaded with purpose. However, it is too sparse for the tool's complexity, bordering on under-specification rather than conciseness.

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

Completeness1/5

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

With 12 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to explain return values, errors, or behavior of half the parameters.

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 description coverage is only 25%, and the description adds no parameter details beyond Markdown support for new_text. Most parameters (doc, tab, cell, etc.) are left unexplained.

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 'replace' and the resource 'text or a table cell', distinguishing it from sibling tools like write_document or insert_document. Mention of Markdown formatting adds specificity.

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 on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or best practices.

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

gdoc_cliA

Run an allowlisted gdoc command for options not covered by typed tools. Arguments are passed directly without a shell.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoArguments after the subcommand; add --account when needed
commandYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only mentions shell-less argument passing but does not disclose any other behavioral traits such as destructive actions, authentication needs, or error handling, which is insufficient for a generic CLI tool with many subcommands.

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 two sentences, no redundant information, and the main purpose is front-loaded. Every sentence adds value.

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?

Given the lack of output schema and annotations, and the tool's generic nature with 20 subcommands, the description is incomplete. It does not mention return values, error behavior, or the scope of allowable commands, leaving agents underinformed.

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 description coverage is 50%, and the description adds minimal value beyond the schema. The command parameter has an enum without any explanation of what each subcommand does, and the args parameter's note is already in the schema. The description does not explain how parameters affect behavior.

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 runs an allowlisted gdoc command for options not covered by typed tools, with a specific verb and resource, and distinguishes from sibling tools by indicating it fills gaps.

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 'for options not covered by typed tools,' which provides clear context for when to use this tool versus the typed siblings. It also notes that arguments are passed directly without a shell, implying safety, but lacks explicit 'when-not' statements or prerequisites.

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

get_commentC

Get one comment thread with full detail.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
quietNo
accountNoAuthenticated gdoc account name or email
comment_idYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description bears full burden. It states a read operation ('Get') but gives no details on authentication requirements, rate limits, or what 'full detail' entails. No side effects are mentioned, but the minimal information is insufficient for a complete behavioral profile.

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 a single sentence with no wasted words. It is front-loaded with the essential action. However, it could be slightly expanded to include usage context without losing conciseness.

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?

No output schema exists, so the description should clarify the return value. 'Full detail' is vague; it does not specify what fields or structure to expect. Given the tool's complexity and sibling tools, the description is incomplete for safe and effective use.

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 coverage is 50%, with only doc and account having descriptions. The description does not add meaning to any parameter, especially quiet and comment_id which lack schema descriptions. It relies on parameter names, which is inadequate.

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 specifies the verb 'get' and the resource 'comment thread', and adds 'with full detail' to indicate comprehensive information. It differentiates from sibling tools like list_comments (which likely lists threads without details) and mutation tools, though not explicitly.

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. There is no mention of using list_comments for listing multiple threads or any exclusion criteria. The absence of user must rely on implicit understanding.

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

insert_documentC

Insert Markdown at the start or end of a document tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
tabNo
forceNo
quietNo
accountNoAuthenticated gdoc account name or email
contentYes
positionNo
force_collapse_tabsNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, and the description lacks disclosure of behavioral traits such as whether insertion is additive, permissions needed, or behavior on missing tabs. For an 8-parameter tool, this is insufficient.

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?

Extremely concise (one sentence), but at the cost of missing critical details. While no filler, the structure is too minimal for a complex tool.

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?

With 8 parameters, no output schema, and no annotations, the description is incomplete. It does not cover parameter meanings, return values, or error conditions.

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 coverage is only 25% (2 of 8 parameters documented). The description adds value for 'content' (Markdown) and 'position' (start/end), but fails to explain 'tab', 'force', 'quiet', 'account', or 'force_collapse_tabs'.

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 (Insert), resource (document tab), and specifics (Markdown, position start/end). It conveys the core purpose effectively, though it does not differentiate from siblings like write_document or edit_document.

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 on when to use this tool versus alternatives (e.g., write_document, edit_document). No context on prerequisites or scenarios where this tool is preferred.

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

list_commentsC

List open comments, optionally including resolved threads.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
quietNo
accountNoAuthenticated gdoc account name or email
include_resolvedNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavioral traits. It does not state whether the tool is read-only, if it returns all comments or paginates, or any side effects. The phrase 'List open comments' implies no modification, but this is not explicit.

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, front-loaded sentence with no wasted words. All essential information is present in a compact form.

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?

Lacks details on output format, pagination, authentication requirements, and how to interpret results. For a list tool, this information is crucial for effective use, especially given no output schema and no annotations to 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 description coverage is 50% (doc and account described). The description adds value by linking 'include_resolved' to the optional resolved threads feature. However, 'quiet' and 'account' remain unexplained beyond schema descriptions, which are minimal.

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 tool lists open comments with an option to include resolved ones. It uses a specific verb (list) and resource (comments). However, it does not explicitly tie the comments to a document, which is implicit via the required 'doc' parameter.

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 on when to use this tool versus siblings like 'get_comment' (single) or 'resolve_comment'. No mention of prerequisites (e.g., doc access, authentication) or scenarios where it is appropriate.

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

list_filesC

List Google Docs or Sheets in Drive or a folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
accountNoAuthenticated gdoc account name or email
folder_idNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided, so description should allay behavioral concerns. It implies read-only, but lacks details on pagination, rate limits, or what constitutes 'listing' (names, metadata, etc.). Auth is implied via account but not explained.

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?

Single sentence, concise but under-specified. Could benefit from a second sentence covering return format or parameter usage.

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?

With no output schema, no annotations, and low parameter coverage, the description is incomplete. Missing return format, behavior without folder_id, and account authentication details.

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 description coverage is only 33% (account has description). Description adds no detail beyond enum values for type and optional folder_id. Does not explain how to list root Drive vs. a specific folder.

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 tool lists Google Docs or Sheets in Drive or a folder, which distinguishes it from siblings like search_files (which searches content). However, it does not specify what information is returned (e.g., names vs. metadata).

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 on when to use this tool vs alternatives like search_files or list_tabs. No mention of prerequisites (e.g., need to connect_google first).

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

list_revisionsB

List retained revisions for a document.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
limitNo
quietNo
accountNoAuthenticated gdoc account name or email

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It only states the action without revealing side effects, authentication needs, or the meaning of 'retained revisions'. Key behaviors such as read-only nature and response format are omitted.

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 with no filler. It gets straight to the point, front-loading the key information.

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?

Given the tool has 4 parameters (1 required) and no output schema or annotations, the description is incomplete. It fails to explain what 'retained revisions' means, how 'limit' affects results, or what the 'quiet' parameter does, leaving the agent unprepared.

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 description coverage is 50% (doc and account have descriptions, limit and quiet do not). The description adds no additional meaning beyond the schema. It does not explain the behavior of the 'limit' or 'quiet' parameters, leaving gaps the schema already has.

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 'List retained revisions for a document' uses a specific verb ('list') and identifies the resource ('retained revisions') and scope ('for a document'), making the purpose clear. It distinguishes from sibling tools like 'read_document' and 'document_info' which serve different functions.

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 usage guidelines are provided. The description does not specify when to use this tool versus alternatives (e.g., 'read_document'), nor does it mention prerequisites or context in which this tool is appropriate.

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

list_tabsB

List document tabs or spreadsheet worksheets.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
quietNo
accountNoAuthenticated gdoc account name or email

TDQS

B3.3/5.0
Behavior3/5

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

Without annotations, the description should explicitly state that the tool is read-only and non-destructive. While 'list' implies this, it does not confirm safety or mention any 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 a single, efficient sentence. No wasted words.

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?

No output schema is provided, and the description does not mention return values or format. Given the tool's simplicity, agents would benefit from knowing what the list contains (e.g., tab names, IDs).

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 coverage is 67% (quiet parameter lacks description), and the tool description adds no additional meaning to parameters. It does not explain the purpose of quiet or clarify input expectations 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 lists tabs or worksheets, using a specific verb and resource. It distinguishes from siblings like add_tab or read_document.

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 on when to use this tool versus alternatives. For an AI agent, explicit context about when to list vs. add or modify tabs would improve decision-making.

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

read_documentB

Read a Google Doc as Markdown or a Sheet as a table. Can include tabs, revisions, and inline comments.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
tabNo
quietNo
rangeNoA1 range for Sheets
accountNoAuthenticated gdoc account name or email
all_tabsNo
commentsNo
revisionNo
max_bytesNo
no_imagesNo
include_resolved_commentsNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions output formats but lacks details on authentication needs, rate limits, error handling, or side effects. Overly brief for a read operation.

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 concise (two sentences) but at the expense of completeness for a tool with 11 parameters. It could be more structured without adding much length.

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?

Given the high parameter count, low schema coverage, no annotations, no output schema, and many siblings, the description lacks necessary context about parameters, return format details, and error scenarios.

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 description coverage is only 27%; the description adds no parameter-specific information beyond the schema. It hints at tabs, revisions, and comments but does not explain their usage or constraints.

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 reads a Google Doc as Markdown or a Sheet as a table, with specific verb and resource. It distinguishes between two document types, adding clarity.

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 mentions optional features (tabs, revisions, comments) but does not provide guidance on when to use this tool versus siblings like 'document_info' or 'list_files'. No explicit context for alternatives.

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

reopen_commentB

Reopen a resolved comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
quietNo
accountNoAuthenticated gdoc account name or email
comment_idYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention any side effects (e.g., permissions required, impact on replies), making it insufficient for a mutation tool.

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 single-sentence description is efficient and front-loaded, but could benefit from additional contextual details without becoming verbose.

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?

Given 4 parameters, no output schema, and no annotations, the description is too brief. It does not clarify expected behavior (e.g., can any resolved comment be reopened? what happens to replies?) or provide operational context.

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?

The description adds no insight into parameters; schema coverage is 50%, and the two undocumented parameters (quiet, comment_id) are left unexplained. The description does not compensate for this gap.

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 (reopen) and the resource (resolved comment), distinguishing it from sibling tools like resolve_comment or add_comment.

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 a resolved comment needs to be reopened, but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions.

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

reply_to_commentC

Reply to a document comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
textYes
quietNo
accountNoAuthenticated gdoc account name or email
comment_idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits. It does not mention that the tool modifies a document (mutation), requires specific permissions, or whether the 'quiet' parameter suppresses notifications. With no annotations, the description must provide this context but fails to do so.

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 extremely concise—one sentence of five words. While brevity is good, it sacrifices clarity and completeness. The description is not structured to front-load key information; it simply states the action. A slightly longer description would improve usability without losing conciseness.

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?

Given the tool's complexity (5 parameters, no output schema, 21 sibling tools), the description is woefully incomplete. It does not explain how replying relates to comments, authentication requirements, or the effect of the 'quiet' parameter. The description fails to provide a complete picture for an AI agent.

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 description coverage is only 40% (only 'doc' and 'account' have descriptions). The tool's description adds nothing beyond the schema. It does not explain the purpose of 'text', 'quiet', or 'comment_id'. For a tool with 5 parameters, this is insufficient to guide correct invocation.

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 ('reply') and the target ('to a document comment'). It is a verb+resource pair that immediately conveys the tool's core function. However, it lacks detail to distinguish it from siblings like 'add_comment' or 'resolve_comment'.

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. It does not mention that this tool replies to an existing comment thread, nor does it contrast with 'add_comment' or 'resolve_comment'. This omission makes it harder for an AI agent to select the correct tool.

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

resolve_commentC

Resolve a comment, optionally with a final message.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
quietNo
accountNoAuthenticated gdoc account name or email
messageNo
comment_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations present, so description must disclose behavior. Only states 'resolve' without explaining what resolution entails (e.g., visibility, notifications) 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?

Description is concise at two sentences, but the second sentence is vague and offers little value. Could be more structured.

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?

With 5 parameters, no output schema, and no annotations, the description is too sparse. Lacks details on outcome, required permissions, or behavioral context for a complex operation.

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 coverage is 40% (only doc and account have descriptions). Description adds no new meaning for quiet, message, or comment_id, and doesn't compensate for undocumented parameters.

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 verb 'resolve' and resource 'comment', distinguishing it from siblings like reopen_comment or add_comment.

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 on when to use vs alternatives like reopen_comment or add_comment; no context for appropriate invocation.

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

search_filesC

Search Drive files by name or content.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
accountNoAuthenticated gdoc account name or email
title_onlyNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are supplied, so the description must disclose behavior. It only states the search scope (name or content) but omits details on pagination, limits, authentication needs, or what happens when no results are found.

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 a single, front-loaded sentence that is concise and to the point. No words are wasted, though it could include more context without becoming verbose.

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?

Given no output schema, no annotations, and minimal parameter info, the description fails to cover essential context such as return format, result limits, or examples. The tool is left underspecified.

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?

With only 33% schema description coverage, the description should compensate; however, it adds no parameter details. The purpose of 'title_only' and 'account' is not clarified beyond their names.

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 uses a clear verb 'Search' and resource 'Drive files', and specifies criteria 'by name or content'. It effectively communicates the tool's function, though it does not differentiate from sibling tools like list_files.

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 list_files or document search. The description lacks context for appropriate usage scenarios.

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

share_documentC

Share a document with an email address.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
roleNo
emailYes
quietNo
accountNoAuthenticated gdoc account name or email

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description must fully disclose behavioral traits. It only states the action but does not mention authentication requirements, whether the share is permanent, if notifications are sent, or how existing permissions are affected. This leaves critical gaps for an agent.

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 extremely concise (one sentence). While front-loading is good, the brevity sacrifices critical detail. Every word earns its place, but the description is under-specified for a tool with multiple parameters and actions.

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?

Given 5 parameters (2 required), no output schema, and no annotations, the description is insufficiently complete. It omits context like default behavior, error conditions, or side effects. An agent would lack essential information for proper invocation.

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 description coverage is 40% (only 'doc' and 'account' have descriptions). The tool description does not explain the 'role', 'quiet', or 'email' parameters beyond the schema. For a tool with 5 parameters and low coverage, the description should add meaningful clarification but fails to do so.

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: sharing a document via email. It includes a specific verb-phrase ('Share a document with an email address') that directly conveys the action and distinguishes this tool from other document operations among siblings.

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. There is no mention of prerequisites, excluded scenarios, or comparison to other sharing methods. Sibling tools like 'connect_google' or 'gdoc_cli' might relate, but the description offers no context.

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

table_of_contentsC

Extract a document heading outline with deep links.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
tabNo
quietNo
accountNoAuthenticated gdoc account name or email
no_linksNo
max_depthNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavior. It mentions extraction of headings with links but omits details about tabs, quiet mode, account requirements, or error states. The behavior for missing headings or unsupported document types is unspecified.

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 sentence with no wasted words. However, given the tool has 6 parameters, a more structured description (e.g., listing key options) would improve usability without adding much length.

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?

With 6 parameters, no output schema, and no annotations, the description is too minimal. It does not explain return format, error handling, or parameter interactions. A more complete description is needed for reliable agent invocation.

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 coverage is only 33% (2 of 6 parameters described). The description does not add meaning to any parameters beyond the schema. Key parameters like 'tab', 'quiet', 'no_links', and 'max_depth' lack explanation of their effect on the extraction.

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 ('Extract'), the target resource ('document heading outline'), and the output ('deep links'). It distinguishes this tool from siblings like 'read_document' or 'document_info' by specifying a structured heading extraction with links.

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 on when to use this tool versus alternatives such as 'read_document' or 'document_info'. No mention of prerequisites, limitations, or scenarios where this tool is preferred.

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

write_documentC

Replace a whole document or one tab with Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYesGoogle Doc/Sheet URL or file ID
tabNo
forceNo
quietNo
accountNoAuthenticated gdoc account name or email
contentYes
positionNo
force_collapse_tabsNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. It implies destructive overwrite but does not mention what happens to existing formatting, tab structure, or permissions. It lacks details on idempotency, side effects, or return values.

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 sentence, which is concise, but it omits critical details making it under-specifying. It could be improved by adding a sentence on parameter roles.

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?

Given 8 parameters, no output schema, and no annotations, the description is insufficient. It does not explain behavior for edge cases (e.g., replacing only a tab vs whole doc), error handling, or confirmation requirements.

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 description coverage is only 25%; only 'doc' and 'account' have descriptions. The description adds no parameter explanations, leaving 6 parameters (tab, force, quiet, content, position, force_collapse_tabs) undefined. It fails to compensate for the coverage gap.

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 it replaces a whole document or a tab with Markdown, using the verb 'Replace' which distinguishes it from siblings like 'edit_document' or 'insert_document'. However, it does not specify that 'whole document' means all content is overwritten.

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 on when to use this tool versus alternatives like 'edit_document' or 'insert_document'. No when-not-to-use or prerequisite information is provided.

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

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a specific action (e.g., create, write, insert, edit for content; list, get, add, reply, resolve, reopen for comments) with clear boundaries. No two tools have overlapping purposes.

Naming Consistency4/5

Most tools follow verb_noun pattern in snake_case (e.g., create_document, list_comments). A few like document_info and table_of_contents are noun_noun, but overall consistent and intuitive.

Tool Count5/5

22 tools cover a wide range of document and comment operations without being excessive. Each tool serves a distinct purpose, well-scoped for a Google Docs integration.

Completeness3/5

Covers most CRUD operations and commenting lifecycle, but missing a delete_document tool. Also lacks undo or restore revision functionality, leaving a notable gap for basic document management.

Maintenance

ActivityMaintained
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/alejoacelas/gdoc-mcp'

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