gdoc MCP
This server provides typed MCP tools to interact with Google Docs and Sheets via the gdoc CLI, supporting authentication, file management, content reading/writing, collaboration, and an escape hatch for advanced operations.
Authentication:
connect_googleto authorize a Google account via OAuth.File Discovery:
list_files(list Docs/Sheets in Drive or a folder, filterable by type) andsearch_files(search by name or content, with optional title-only).Reading & Metadata:
read_documentreads a Doc as Markdown or Sheet as a table, with options for tabs, revisions, comments, ranges, and image handling.document_inforetrieves metadata.list_tabsandtable_of_contentsprovide structure, andlist_revisionsshows revision history.Comments: Full comment management:
list_comments,get_comment,add_comment(with quoted text anchors),reply_to_comment,resolve_comment, andreopen_comment.Writing & Editing:
edit_documentreplaces text or table cells (case-sensitive, replace-all).write_documentreplaces an entire document or tab with Markdown.insert_documentinserts at start/end.create_documentcreates a new Doc, optionally from Markdown.add_tabadds a tab.Organization & Sharing:
copy_documentduplicates a document,share_documentshares with email and role (reader/writer/commenter).Escape Hatch:
gdoc_cliruns allowlistedgdocsubcommands for advanced operations not covered by typed tools.
Provides tools for managing Google Documents, including reading, searching, editing, commenting, sharing, and creating documents.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gdoc MCPfind documents about budget planning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:
Open the
.mcpbbuilt for the right Google profile and Mac architecture.In Claude, ask: “Connect Google Docs using the gdoc tools.”
Claude calls
connect_google; the bundle opens Google's authorization page.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/callbackThen 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-onlyFor 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.jsonOutputs on an Apple Silicon Mac:
dist/gdoc-personal-arm64.mcpb
dist/gdoc-80000hours-arm64.mcpbThe 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 startThe 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 testThe 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/mcpTests 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
0600and 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 toolsadd_commentC
Add a document comment, optionally anchored to quoted text.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| text | Yes | ||
| quiet | No | ||
| quote | No | ||
| account | No | Authenticated gdoc account name or email |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| quiet | No | ||
| title | Yes | ||
| account | No | Authenticated gdoc account name or email |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Google account email or local account name; defaults to this bundle's configured account |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| quiet | No | ||
| title | Yes | ||
| account | No | Authenticated gdoc account name or email |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| account | No | Authenticated gdoc account name or email | |
| content | No | ||
| folder_id | No | ||
| page_mode | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| quiet | No | ||
| account | No | Authenticated gdoc account name or email |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| tab | No | ||
| cell | No | Cell label or ROW,COL coordinates | |
| quiet | No | ||
| table | No | ||
| column | No | ||
| account | No | Authenticated gdoc account name or email | |
| new_text | Yes | ||
| old_text | No | ||
| normalize | No | ||
| replace_all | No | ||
| case_sensitive | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments after the subcommand; add --account when needed | |
| command | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| quiet | No | ||
| account | No | Authenticated gdoc account name or email | |
| comment_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| tab | No | ||
| force | No | ||
| quiet | No | ||
| account | No | Authenticated gdoc account name or email | |
| content | Yes | ||
| position | No | ||
| force_collapse_tabs | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| quiet | No | ||
| account | No | Authenticated gdoc account name or email | |
| include_resolved | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| account | No | Authenticated gdoc account name or email | |
| folder_id | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| limit | No | ||
| quiet | No | ||
| account | No | Authenticated gdoc account name or email |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| quiet | No | ||
| account | No | Authenticated gdoc account name or email |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| tab | No | ||
| quiet | No | ||
| range | No | A1 range for Sheets | |
| account | No | Authenticated gdoc account name or email | |
| all_tabs | No | ||
| comments | No | ||
| revision | No | ||
| max_bytes | No | ||
| no_images | No | ||
| include_resolved_comments | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| quiet | No | ||
| account | No | Authenticated gdoc account name or email | |
| comment_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| text | Yes | ||
| quiet | No | ||
| account | No | Authenticated gdoc account name or email | |
| comment_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| quiet | No | ||
| account | No | Authenticated gdoc account name or email | |
| message | No | ||
| comment_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| account | No | Authenticated gdoc account name or email | |
| title_only | No |
TDQS
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.
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.
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.
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.
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.
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.
table_of_contentsC
Extract a document heading outline with deep links.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| tab | No | ||
| quiet | No | ||
| account | No | Authenticated gdoc account name or email | |
| no_links | No | ||
| max_depth | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Google Doc/Sheet URL or file ID | |
| tab | No | ||
| force | No | ||
| quiet | No | ||
| account | No | Authenticated gdoc account name or email | |
| content | Yes | ||
| position | No | ||
| force_collapse_tabs | No |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Google Docs MCP Pack — read, create, and edit Google Docs via OAuth.
Provides tools for searching Google Workspace documentation and much more.
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Team docs served to AI agents over MCP - search, Markdown reads, version pinning, read audit.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with collaborative Docs instances, providing document management, content editing, access control, and AI-powered transformations via MCP.1MIT
- FlicenseNot gradedqualityCmaintenanceEnables interaction with Gmail and Google Docs via MCP, including email search, read, send, and document read/create operations.
- AlicenseNot gradedqualityDmaintenanceEnables MCP clients like Claude Desktop and Cursor to interact with Google Docs, Sheets, and Drive, providing tools for reading, writing, formatting documents, managing spreadsheets, and searching Drive files.MIT
- FlicenseNot gradedqualityBmaintenanceProvides read/write access to Google Sheets and Google Docs through MCP tools, enabling operations like reading sheets, appending rows, and editing documents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alejoacelas/gdoc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server