Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.chrischall/gogcli-mcp-docs

NPM · GOGCLI-MCP-DOCS

Extended Google Docs for Claude via gogcli — auth + full Docs and comments support

Available components

0 this week 94 Trust /100

Last scanned (5 hours ago)

Scores higher than 97% of npm servers

Category Documents and Files

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 4 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to chrischall/gogcli-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability69
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 17320 tokens (~208/item across 83 items; 83 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 83 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 0
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 4.8.1 → 4.9.1 functional
  • 30 Oct 26 0
    • Package version: 4.8.0 → 4.8.1 functional
  • 22 Oct 26 0
    • Package version: 4.8.0 → 4.8.1 functional
  • 17 Oct 26 +1
    • Stability: 0.97 → pass security
  • 16 Oct 26 0
    • Stability: 0.93 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 4.8.0 → 4.8.1 functional
  • 15 Oct 26 +44
    • Injection markers: unverified → pass ▲ security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Stability: unverified → 0.93 ▲ functional
    • Package version: 4.6.1 → 4.8.0 functional
  • 12 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
    • Package version: 4.6.1 → 4.8.0 functional
  • 11 Oct 26 −45
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Security disclosure: fail → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Package version: 4.6.1 → 4.7.1 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed npm/gogcli-mcp-docs@4.9.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo chrischall/gogcli-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/chrischall/gogcli-mcp/.github/workflows/release-please.yml@refs/heads/main
Rekor log index 3691860832
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:564ad674f18a6134d103f26e1e8818d65e434331a9c2f9ffa4ac2f4ded9911a04625cc9b11432f0f89b8b2b068b785bb2202f861eebbed62feffc4cdc

Background: How many MCP packages publish verified provenance →

Dependencies 4 packages
Packages resolved 4
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 83 exposed · ~17,320 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
gog_auth_add ~251

Authorize a Google account via browser-based OAuth. Opens a browser window where the user must sign in and grant access. Blocks for up to 5 minutes waiting for the user to complete authorization. If the browser does not open automatically, a fallback URL is included in the response. Use gog_auth_list to check which accounts are already configured.

NameTypeReqDescription
emailstringyesGoogle account email to authorize
extraScopesstring–Additional raw OAuth scope URIs to request, comma-separated, on top of the ones `services` implies. Use for scopes no service covers — e.g. https://www.googleapis.com/auth/bigquery.readonly, required…
servicesstring–Services to authorize: "all" or comma-separated list (e.g. "sheets,gmail,calendar"). Default: "docs". Prefer the narrowest set you need — requesting a service whose Google API is not enabled on the O…

No output schema declared.

No examples provided.

gog_auth_add_complete ~211

Complete REMOTE/headless Google authorization (step 2 of 2). Takes the full redirected localhost URL the user copied after finishing gog_auth_add_url, exchanges it for a refresh token, and stores it. Use the SAME `services` value you passed to gog_auth_add_url. Must run within 10 minutes of step 1 and against the same gogcli host.

NameTypeReqDescription
emailstringyesGoogle account email being authorized (same as step 1)
extraScopesstring–Extra OAuth scope URIs — MUST match the value passed to gog_auth_add_url, for the same reason `services` must: the two steps have to describe the same grant.
redirectUrlstringyesThe full localhost redirect URL the user copied from the browser address bar after signing in (contains code and state; the page itself fails to load, which is expected).
servicesstring–Services authorized — MUST match the value passed to gog_auth_add_url. Default: "docs".

No output schema declared.

No examples provided.

gog_auth_add_url ~337

Begin REMOTE/headless Google authorization (step 1 of 2). Returns a sign-in URL to open in any browser — no local server or terminal on the gogcli host is needed, so this works on a hosted deployment where the interactive gog_auth_add cannot. Hand the URL to the user; after they sign in, the browser is redirected to a localhost URL that fails to load — that is expected. They copy that full redirected URL (from the address bar) and you pass it to gog_auth_add_complete. The link is valid for 10 minutes. If you pass a custom `services` here, pass the SAME value to gog_auth_add_complete or the second step will not match this one.

NameTypeReqDescription
emailstringyesGoogle account email to authorize
extraScopesstring–Additional raw OAuth scope URIs to request, comma-separated, on top of the ones `services` implies. Use for scopes no service covers — e.g. https://www.googleapis.com/auth/bigquery.readonly, required…
servicesstring–Services to authorize: "all" or comma-separated list (e.g. "sheets,gmail,calendar"). Default: "docs". Prefer the narrowest set you need — requesting a service whose Google API is not enabled on the O…

No output schema declared.

No examples provided.

gog_auth_health ~198

Check the LIVE health of each stored Google account. Unlike gog_auth_status (which only reports keyring/config setup), this performs a real token refresh against Google, so it detects expired or revoked (invalid_grant) refresh tokens — the account-wide sign-out that blocks every service. Reports per account: whether the token is currently valid, the mapped cause when it is not, how long ago it was authorized, and a warning as it approaches the 7-day refresh-token limit that applies to OAuth apps whose consent screen is still in "Testing" mode. Run it proactively to re-authorize on your own schedule instead of mid-task. On a hosted deployment this is the ONLY check that measures Google: a connector showing "connected" or "refreshed" has verified the client's connection to the MCP host, and nothing else — the Google credential lives in gog's keyring on that host and can be dead while the connection looks perfectly healthy.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

gog_auth_list ~81

List the Google accounts stored in gogcli, with their scopes. This reads local configuration only — it does not contact Google and does NOT tell you whether an account still works: a signed-out account whose refresh token expired or was revoked is listed here exactly like a healthy one, scopes and all. Use gog_auth_health to check whether an account can actually authenticate.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

gog_auth_run ~230

Run any gog auth subcommand not covered by the other tools. Run `gog auth --help` for the full list of subcommands, or `gog auth <subcommand> --help` for flags on a specific subcommand. Only these subcommands are available: list, status, services, alias. Flags that override server safety controls (--readonly, --enable-commands, --disable-commands, --account, --access-token, --home, --client, --gmail-no-send, --no-input) and a bare "--" are refused. Local file paths (--out, --out-dir, --attach, --file, --*-file, @file JSON) must be inside GOG_FILE_ROOTS; subcommands that take a local path positionally (e.g. drive upload) are refused in favour of their dedicated tools. For browser-based authorization, use gog_auth_add instead.

NameTypeReqDescription
argsarrayyesAdditional positional args and flags
subcommandstringyesThe gog auth subcommand to run, e.g. "alias", "list", "status"

No output schema declared.

No examples provided.

gog_auth_services ~24

List all Google services supported by gogcli and the OAuth scopes each requires.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

gog_auth_status ~66

Show gogcli auth CONFIGURATION: keyring backend, credential files, and auth setup. Despite the name this is not a health check — it reads local setup and does not contact Google, so it says nothing about whether an account can still authenticate. Use gog_auth_health for that.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

gog_batch_abort ~84

Discard a persisted batch and its composed requests without applying anything to the doc.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
batchIdstringyesBatch ID to discard

No output schema declared.

No examples provided.

gog_batch_begin ~130

Open a persisted, revision-locked request batch for a Google Doc. Subsequent docs mutation tools called with batch=<batchId> append their requests locally instead of applying them; gog_batch_end submits everything atomically. Returns the batchId.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesGoogle Doc ID the batch is locked to
namestring–Optional batch label

No output schema declared.

No examples provided.

gog_batch_end ~175

Submit a persisted batch: applies every composed request to the doc in one atomic batchUpdate against the locked revision. Atomic by default — set autoSplit to submit >500-request batches as ordered chunks (non-atomic), or continueOnError to retry individually after an atomic validation failure, retaining failures in the batch.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
autoSplitboolean–Submit batches over 500 requests as ordered chunks (non-atomic)
batchIdstringyesBatch ID (from gog_batch_begin)
continueOnErrorboolean–After an atomic validation failure, submit requests individually and retain failures

No output schema declared.

No examples provided.

gog_batch_list ~73

List persisted Docs request batches (id, doc, label, request count, status).

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.

No output schema declared.

No examples provided.

gog_batch_prune ~94

Delete stale persisted batches (not updated within olderThan).

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
olderThanstring–Delete batches not updated within this duration (e.g. 72h, 7d)

No output schema declared.

No examples provided.

gog_batch_show ~84

Show one persisted batch: its doc, locked revision, and the composed requests awaiting submission.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
batchIdstringyesBatch ID

No output schema declared.

No examples provided.

gog_docs_add_tab ~170

Add a tab to a Google Doc. Tabs partition a doc into independently-addressable sections (multi-tab docs). Optionally set the title, zero-based position, parent tab (for nesting), and an emoji icon.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
iconEmojistring–Emoji icon for the tab
indexinteger–Zero-based tab position within the parent
parentTabstring–Parent tab title or ID to nest this tab under
titlestring–User-visible tab title

No output schema declared.

No examples provided.

gog_docs_append ~361

Append text to the end of a Google Doc. This is the right tool for iterative document construction — multiple sequential calls produce content in the order they were called. Use gog_docs_insert only when you need to insert at a specific character position. Known markdown=true limitations (tracked upstream): (a) 3+ tables in one call reorders the trailing punctuation of the paragraph before the 3rd table — split into multiple calls with ≤2 tables each (openclaw/gogcli#607); (b) inline **bold** / *italic* / `code` inside table cells renders as literal characters — pre-format cell text separately or apply formatting after the append via gog_docs_format (openclaw/gogcli#608); (c) tables with an empty header row leak the last data row as literal pipe text — always supply a non-empty header (openclaw/gogcli#609).

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
filestring–Path to a text file to append, read on the gog server. gog also accepts "-" for stdin, but this server never writes to gog's stdin, so "-" would hang until the call times out.
markdownboolean–Convert markdown to Google Docs formatting (headings, bold, lists, etc.). See the tool description for known upstream limitations around tables.
tabstring–Target tab title or ID (for multi-tab docs)
textstring–Text content to append

No output schema declared.

No examples provided.

gog_docs_cat ~103

Read a Google Doc as plain text.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
chipsboolean–Render Google Docs smart chips (people, dates, rich links) inline in the text output
docIdstringyesDoc ID (from the URL)

No output schema declared.

No examples provided.

gog_docs_cell_style ~563

Apply background color and/or inline text styling (bold, italic, underline, colors) to one or more table cells, addressed by 0-based row/column with optional spans. Sibling to gog_docs_cell_update, which changes cell content rather than styling. Note: row/col/tableIndex are 0-based here; gog_docs_cell_update uses 1-based addressing.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
backgroundColorstring–Cell background color as #RRGGBB or #RGB
batchstring–Append this mutation to a persisted batch (from gog_batch_begin) instead of applying it — nothing changes in the doc until gog_batch_end submits the batch.
boldboolean–Set cell text bold
borderAllstring–All borders as WIDTH[,COLOR[,SOLID|DOT|DASH]] (e.g. 1pt,#000,DASH)
borderBottomstring–Bottom border (same format as borderAll); overrides borderAll
borderLeftstring–Left border (same format as borderAll); overrides borderAll
borderRightstring–Right border (same format as borderAll); overrides borderAll
borderTopstring–Top border (same format as borderAll); overrides borderAll
colintegeryes0-based column number
colSpaninteger–Number of columns to style (default: 1)
contentAlignstring–Vertical content alignment within the cell
docIdstringyesDoc ID (from the URL)
italicboolean–Set cell text italic
paddingAllstring–All cell padding (points by default; supports pt, in, cm, mm)
paddingBottomstring–Bottom cell padding; overrides paddingAll
paddingLeftstring–Left cell padding; overrides paddingAll
paddingRightstring–Right cell padding; overrides paddingAll
paddingTopstring–Top cell padding; overrides paddingAll
rowintegeryes0-based row number
rowSpaninteger–Number of rows to style (default: 1)
tabstring–Target a specific tab by title or ID
tableIndexinteger–0-based table index in document order (default: 0)
textColorstring–Text color as #RRGGBB or #RGB
underlineboolean–Set cell text underline

No output schema declared.

No examples provided.

gog_docs_cell_update ~314

Replace (or append to) the content of a single table cell, addressed by table / row / column — non-destructive to the rest of the table, unlike index-based edits that shift on every change. Provide content inline or read it from contentFile. Note: row/col/tableIndex are 1-based here; the sibling gog_docs_cell_style uses 0-based addressing.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
appendboolean–Append inside the cell instead of replacing existing cell content
colintegeryes1-based column number
contentstring–Replacement content (omit when using contentFile). Pass an empty string to clear the cell. Large values are written to a temp file and passed to gog as --content-file automatically.
contentFilestring–Read replacement content from a file instead of content. Mutually exclusive with content — gog rejects both together.
docIdstringyesDoc ID (from the URL)
formatstring–Content format (default: markdown)
rowintegeryes1-based row number
tabstring–Target a specific tab by title or ID
tableIndexinteger–1-based table index in document order; negative counts from the end (default: 1)

No output schema declared.

No examples provided.

gog_docs_clear ~114

Clear all content from a Google Doc, leaving an empty document. The doc itself is preserved (same ID/URL); only its body content is removed. To delete the whole doc instead, use gog_docs_trash.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)

No output schema declared.

No examples provided.

gog_docs_comments_add ~404

Add a comment to a Google Doc. Optionally attach quoted text that appears as the highlighted passage in the Google Docs UI. The Doc's owner and everyone the text +mentions are notified, so this reads the Doc and asks the MCP host to show the user a confirmation prompt with the Doc, the text and who is mentioned first; nothing is posted unless they accept. If the client cannot show that prompt (no MCP elicitation, e.g. claude.ai), a two-step flow applies instead: call WITHOUT confirmToken and nothing is sent or changed — the result has status "confirmation-required", the full preview and a confirmToken. Follow its instruction (by default: show the preview to the user verbatim and only after they explicitly approve it in chat, call again with the SAME arguments plus confirmToken). The tool re-reads what it would act on and refuses (DRAFT_CHANGED, with a fresh preview and token) if it changed; TOKEN_EXPIRED / TOKEN_REUSED / TOKEN_INVALID also do nothing. A server set to MCP_CONFIRM_MODE=refuse refuses instead.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
confirmTokenstring–ONLY for the two-step confirmation fallback (a client without MCP elicitation). The confirmToken from this same tool's phase-1 "confirmation-required" response, passed back ONLY after the user has se…
contentstringyesComment text
docIdstringyesDoc ID (from the URL)
quotedstring–Quoted text to attach to the comment (shown in UIs when available)

No output schema declared.

No examples provided.

gog_docs_comments_delete ~96

Delete a comment from a Google Doc. This action is permanent.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
commentIdstringyesComment ID to delete
docIdstringyesDoc ID (from the URL)

No output schema declared.

No examples provided.

gog_docs_comments_get ~92

Get a single comment by ID, including its replies.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
commentIdstringyesComment ID
docIdstringyesDoc ID (from the URL)

No output schema declared.

No examples provided.

gog_docs_comments_list ~444

List comments on a Google Doc. Returns open comments by default; set includeResolved=true to include resolved comments. Set locate=true (or pass tab) to attach each comment's tab and Docs index ranges as location.matches[] plus location.orphaned — that costs one extra document fetch, but only one for the whole listing, where gog_docs_comments_locate costs one per comment. Either flag additionally requires the Docs scope; the plain listing needs only Drive. matches[] always spans every tab, so a quote appearing in two tabs is visible as an ambiguity rather than silently resolved. tab keeps only comments with a match in that tab, which drops orphaned comments and comments that quote nothing.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
allboolean–Fetch all pages
docIdstringyesDoc ID (from the URL)
includeResolvedboolean–Include resolved comments (default: false, open only)
locateboolean–Attach each comment's tab and Docs index ranges (location.matches[] + location.orphaned) using one extra document fetch shared across the whole listing
maxinteger–Max results
pagestring–Deprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response.
pageTokenstring–Cursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N…
sincestring–Only return comments modified at or after this RFC3339 timestamp (e.g. 2026-06-01T00:00:00Z)
tabstring–Only return comments whose quoted text resolves inside this tab (title or ID). Implies locate, and drops orphaned and unquoted comments.

No output schema declared.

No examples provided.

gog_docs_comments_locate ~192

Locate a comment's anchor in a Google Doc — resolves the comment's quoted text to its current Docs API index range, or reports the comment as orphaned if the quote can no longer be found (e.g. the anchored text was edited away). Read-only; useful before an index-based edit near a comment.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
commentIdstringyesComment ID to locate
docIdstringyesDoc ID (from the URL)
matchCaseboolean–Case-sensitive matching of the comment quote
normalizeWhitespaceboolean–Collapse whitespace while matching the comment quote
tabstring–Target a specific tab by title or ID

No output schema declared.

No examples provided.

gog_docs_comments_reopen ~96

Reopen a previously resolved comment (flip resolved → open).

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
commentIdstringyesComment ID to reopen
docIdstringyesDoc ID (from the URL)

No output schema declared.

No examples provided.

gog_docs_comments_reply ~378

Reply to an existing comment on a Google Doc. Everyone on the thread and anyone the reply +mentions is notified, so this reads the Doc and the comment and asks the MCP host to show the user a confirmation prompt with both and the reply first; nothing is posted unless they accept. If the client cannot show that prompt (no MCP elicitation, e.g. claude.ai), a two-step flow applies instead: call WITHOUT confirmToken and nothing is sent or changed — the result has status "confirmation-required", the full preview and a confirmToken. Follow its instruction (by default: show the preview to the user verbatim and only after they explicitly approve it in chat, call again with the SAME arguments plus confirmToken). The tool re-reads what it would act on and refuses (DRAFT_CHANGED, with a fresh preview and token) if it changed; TOKEN_EXPIRED / TOKEN_REUSED / TOKEN_INVALID also do nothing. A server set to MCP_CONFIRM_MODE=refuse refuses instead.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
commentIdstringyesComment ID to reply to
confirmTokenstring–ONLY for the two-step confirmation fallback (a client without MCP elicitation). The confirmToken from this same tool's phase-1 "confirmation-required" response, passed back ONLY after the user has se…
contentstringyesReply text
docIdstringyesDoc ID (from the URL)

No output schema declared.

No examples provided.

gog_docs_comments_resolve ~112

Resolve a comment (mark as done). Optionally include a closing message.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
commentIdstringyesComment ID to resolve
docIdstringyesDoc ID (from the URL)
messagestring–Optional message to include when resolving

No output schema declared.

No examples provided.

gog_docs_copy ~110

Copy a Google Doc to a new document with the given title.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
parentstring–Parent folder ID to place the copy in
titlestringyesTitle for the new copy

No output schema declared.

No examples provided.

gog_docs_create ~84

Create a new Google Doc. Returns JSON with the new docId and URL.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
titlestringyesTitle for the new document

No output schema declared.

No examples provided.

gog_docs_delete ~315

Delete content within a Google Doc by character index range. To remove the entire document (move to Drive trash), use gog_docs_trash.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
atstring–Anchor by literal text and delete that matched range, instead of supplying start/end indices.
batchstring–Append this mutation to a persisted batch (from gog_batch_begin) instead of applying it — nothing changes in the doc until gog_batch_end submits the batch.
docIdstringyesDoc ID (from the URL)
endnumber–End index (character position, exclusive). Required unless `at` is set.
matchCaseboolean–Case-sensitive `at` matching
occurrenceinteger–Use the Nth `at` match (1-based; required when `at` is ambiguous)
segmentstring–Target an exact header, footer, or footnote segment ID (header/footer IDs come from gog_docs_header_list / gog_docs_footer_list; footnote segment IDs appear in gog_docs_read json mode) instead of the…
startnumber–Start index (character position, 1-based). Required unless `at` is set.
tabIdstring–Tab ID to delete content from (for multi-tab docs)

No output schema declared.

No examples provided.

gog_docs_delete_tab ~116

Delete a tab (and its content) from a Google Doc. Identify the tab by title or ID. This permanently removes the tab and everything in it.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
tabstringyesExisting tab title or ID to delete

No output schema declared.

No examples provided.

gog_docs_edit ~114

Edit a Google Doc by finding and replacing text (stream-edit style).

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
findstringyesText to find
matchCaseboolean–Case-sensitive matching
replacestringyesReplacement text

No output schema declared.

No examples provided.

gog_docs_export ~150

Export a Google Doc as PDF, plain text, HTML, DOCX, or other format.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
formatstring–Export format: pdf, txt, html, docx, rtf, odt, epub (default: pdf)
outstring–Output file path
overwriteboolean–Overwrite the output file if it already exists (gog refuses otherwise)

No output schema declared.

No examples provided.

gog_docs_find_range ~292

Map literal text in a Google Doc to its Docs API UTF-16 index range(s). Read-only helper for computing the start/end indices that index-based tools (gog_docs_delete, gog_docs_update --replace-range) need. Returns the first match by default; use occurrence to pick a specific one or all to return every match.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
allboolean–Return all matches instead of just one
docIdstringyesDoc ID (from the URL)
failEmptyboolean–Treat no matches as an error instead of returning an empty result
matchCaseboolean–Case-sensitive matching
normalizeWhitespaceboolean–Collapse whitespace while matching
occurrenceinteger–Return the Nth occurrence (1-based; default: first)
segmentstring–Target an exact header, footer, or footnote segment ID (header/footer IDs come from gog_docs_header_list / gog_docs_footer_list; footnote segment IDs appear in gog_docs_read json mode) instead of the…
tabstring–Target a specific tab by title or ID
textstringyesLiteral text to locate

No output schema declared.

No examples provided.

gog_docs_find_replace ~99

Find and replace text in a Google Doc.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
findstringyesText to find
replacestringyesReplacement text

No output schema declared.

No examples provided.

gog_docs_footer_create ~276

Create a footer in a Google Doc and optionally populate its initial text. Returns the new footer segment ID.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
atstring–Anchor by literal text and target the section at the start of the matched range
atEndboolean–Target end-of-doc/tab (mutually exclusive with index and at)
docIdstringyesDoc ID (from the URL)
filestring–Read initial footer text from a file on the gog server. gog also accepts "-" for stdin, but this server never writes to gog's stdin, so "-" would hang until the call times out.
indexinteger–Character index identifying the section the footer belongs to (1 = beginning). Omit or use atEnd for end-of-doc.
matchCaseboolean–Case-sensitive `at` matching
occurrenceinteger–Use the Nth `at` match (1-based; required when `at` is ambiguous)
tabstring–Target a specific tab by title or ID
textstring–Initial footer text

No output schema declared.

No examples provided.

gog_docs_footer_delete ~120

Delete a footer from a Google Doc by its segment ID (from gog_docs_footer_list).

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
footerIdstringyesFooter segment ID (from gog_docs_footer_list)
tabstring–Tab title or ID containing the footer

No output schema declared.

No examples provided.

gog_docs_footer_list ~133

List a Google Doc's footers and their segment IDs. Use a segment ID with the segment param on gog_docs_insert / gog_docs_update / gog_docs_delete / gog_docs_format / gog_docs_find_range to edit inside a footer.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
tabstring–Limit results to a tab title or ID

No output schema declared.

No examples provided.

gog_docs_format ~836

Apply text or paragraph formatting to a Google Doc. Use `match` to format a specific text occurrence, `matchAll` to format every occurrence, or omit both to format the whole doc. Boolean flags (bold/italic/etc.) set the attribute; negated flags (noBold/noItalic/etc.) clear it.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
alignmentstring–Paragraph alignment
batchstring–Append this mutation to a persisted batch (from gog_batch_begin) instead of applying it — nothing changes in the doc until gog_batch_end submits the batch.
bgColorstring–Text background color as #RRGGBB or #RGB
boldboolean–Set bold
bulletPresetstring–Create a bulleted list with a specific Google Docs bullet glyph preset (e.g. BULLET_DISC_CIRCLE_SQUARE)
bulletsboolean–Turn the matched paragraphs into a bulleted list with the default disc preset
codeboolean–Apply code style (Courier New monospace + grey background)
docIdstringyesDoc ID (from the URL)
fontFamilystring–Font family (e.g. Arial, Georgia)
fontSizenumber–Font size in points
headingLevelinteger–Set paragraph named style to HEADING_1..HEADING_6 (shortcut for namedStyle=HEADING_N)
indentEndnumber–Paragraph end indentation in points
indentFirstLinenumber–Paragraph first-line indentation in points
indentStartnumber–Paragraph start indentation in points
italicboolean–Set italic
keepLinesTogetherboolean–Keep all lines of the paragraph on one page/column (true) or clear that setting (false)
keepWithNextboolean–Keep the paragraph with the next paragraph (true) or clear that setting (false)
lineSpacingnumber–Line spacing percentage (e.g. 100 for single, 150 for 1.5x, 200 for double)
linkstring–Set a hyperlink on the matched text. Accepts http://, https://, mailto:, #bookmarkId, or #heading-slug.
matchstring–Format only the first text match
matchAllboolean–Format all matches instead of only the first
matchCaseboolean–Case-sensitive matching
namedStylestring–Set paragraph named style explicitly
noBoldboolean–Clear bold
noBulletsboolean–Remove bullets or numbering from the matched paragraphs
noItalicboolean–Clear italic
noLinkboolean–Clear any hyperlink on the matched text
noStrikethroughboolean–Clear strikethrough
noUnderlineboolean–Clear underline
orderedboolean–Turn the matched paragraphs into a numbered list with the default decimal preset
segmentstring–Target an exact header, footer, or footnote segment ID (header/footer IDs come from gog_docs_header_list / gog_docs_footer_list; footnote segment IDs appear in gog_docs_read json mode) instead of the…
spaceAbovenumber–Space above the paragraph in points
spaceBelownumber–Space below the paragraph in points
spacingModestring–Paragraph spacing collapse behavior: NEVER_COLLAPSE always keeps space-above/space-below; COLLAPSE_LISTS collapses spacing between list items
strikethroughboolean–Set strikethrough
tabstring–Target tab title or ID
textColorstring–Text color as #RRGGBB or #RGB
underlineboolean–Set underline

No output schema declared.

No examples provided.

gog_docs_header_create ~276

Create a header in a Google Doc and optionally populate its initial text. Returns the new header segment ID.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
atstring–Anchor by literal text and target the section at the start of the matched range
atEndboolean–Target end-of-doc/tab (mutually exclusive with index and at)
docIdstringyesDoc ID (from the URL)
filestring–Read initial header text from a file on the gog server. gog also accepts "-" for stdin, but this server never writes to gog's stdin, so "-" would hang until the call times out.
indexinteger–Character index identifying the section the header belongs to (1 = beginning). Omit or use atEnd for end-of-doc.
matchCaseboolean–Case-sensitive `at` matching
occurrenceinteger–Use the Nth `at` match (1-based; required when `at` is ambiguous)
tabstring–Target a specific tab by title or ID
textstring–Initial header text

No output schema declared.

No examples provided.

gog_docs_header_delete ~120

Delete a header from a Google Doc by its segment ID (from gog_docs_header_list).

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
headerIdstringyesHeader segment ID (from gog_docs_header_list)
tabstring–Tab title or ID containing the header

No output schema declared.

No examples provided.

gog_docs_header_list ~132

List a Google Doc's headers and their segment IDs. Use a segment ID with the segment param on gog_docs_insert / gog_docs_update / gog_docs_delete / gog_docs_format / gog_docs_find_range to edit inside a header.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
tabstring–Limit results to a tab title or ID

No output schema declared.

No examples provided.

gog_docs_headings_list ~123

Enumerate headings in a Google Doc (a lightweight outline view), optionally filtered to one heading level.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
levelinteger–Only return this heading level (1-6)
tabstring–Tab title or ID (omit for default)

No output schema declared.

No examples provided.

gog_docs_images_list ~98

Enumerate inline/positioned images in a Google Doc.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
tabstring–Tab title or ID (omit for default)

No output schema declared.

No examples provided.

gog_docs_info ~83

Get Google Doc metadata: title, ID, and other properties.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)

No output schema declared.

No examples provided.

gog_docs_insert ~403

Insert text at a specific character index in a Google Doc. When `index` is omitted, gog defaults to 1 (the very beginning), NOT the end — sequential inserts without an explicit index produce reversed output. To append at the end of the doc, use gog_docs_append (which uses `gog docs write --append` and is the right tool for iterative document construction). To find a valid index for mid-document inserts, call gog_docs_structure or gog_docs_read first.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
atstring–Anchor by literal text and insert at the start of the matched range, instead of computing an index.
batchstring–Append this mutation to a persisted batch (from gog_batch_begin) instead of applying it — nothing changes in the doc until gog_batch_end submits the batch.
contentstring–Text content to insert
docIdstringyesDoc ID (from the URL)
filestring–Path to a file whose content to insert
indexnumber–Character index to insert at (1-based; default: 1 = start of doc). Prefer gog_docs_append when you want to add at the end.
matchCaseboolean–Case-sensitive `at` matching
occurrenceinteger–Use the Nth `at` match (1-based; required when `at` is ambiguous)
segmentstring–Target an exact header, footer, or footnote segment ID (header/footer IDs come from gog_docs_header_list / gog_docs_footer_list; footnote segment IDs appear in gog_docs_read json mode) instead of the…
tabIdstring–Tab ID to insert into (for multi-tab docs)

No output schema declared.

No examples provided.

gog_docs_insert_date_chip ~217

Insert a native Google Docs date smart chip, at a character index or end-of-doc.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
atEndboolean–Insert at end-of-doc/tab (mutually exclusive with index)
batchstring–Append this mutation to a persisted batch (from gog_batch_begin) instead of applying it — nothing changes in the doc until gog_batch_end submits the batch.
datestring–Date to insert as YYYY-MM-DD (default: today)
docIdstringyesDoc ID (from the URL)
formatstring–Date display format (default: abbreviated)
indexinteger–Character index to insert at. Omit or use atEnd for end-of-doc.
tabstring–Target a specific tab by title or ID

No output schema declared.

No examples provided.

gog_docs_insert_footnote ~299

Insert a footnote at a character index (or end-of-doc) and populate its text. The footnote reference mark is placed in the body; the footnote content goes in the new footnote segment.

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
atstring–Anchor by literal text and place the reference mark at the start of the matched range
atEndboolean–Target end-of-doc/tab (mutually exclusive with index and at)
docIdstringyesDoc ID (from the URL)
filestring–Read footnote text from a file on the gog server. gog also accepts "-" for stdin, but this server never writes to gog's stdin, so "-" would hang until the call times out.
indexinteger–Character index to place the reference mark at (1 = beginning). Omit or use atEnd for end-of-doc.
matchCaseboolean–Case-sensitive `at` matching
occurrenceinteger–Use the Nth `at` match (1-based; required when `at` is ambiguous)
tabstring–Target a specific tab by title or ID
textstring–Footnote text

No output schema declared.

No examples provided.

gog_docs_insert_horizontal_rule ~250

Insert a horizontal rule (paragraph border) at a character index (or end-of-doc).

NameTypeReqDescription
accountstring–Google account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
atstring–Anchor by literal text and insert at the start of the matched range
atEndboolean–Target end-of-doc/tab (mutually exclusive with index and at)
batchstring–Append this mutation to a persisted batch (from gog_batch_begin) instead of applying it — nothing changes in the doc until gog_batch_end submits the batch.
docIdstringyesDoc ID (from the URL)
indexinteger–Character index to insert at (1 = beginning). Omit or use atEnd for end-of-doc.
matchCaseboolean–Case-sensitive `at` matching
occurrenceinteger–Use the Nth `at` match (1-based; required when `at` is ambiguous)
tabstring–Target a specific tab by title or ID

No output schema declared.

No examples provided.

Install

How do I install the io.github.chrischall/gogcli-mcp-docs server?

io.github.chrischall/gogcli-mcp-docs runs locally as an npm package, launched with npx -y gogcli-mcp-docs. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · gogcli-mcp-docs

# add to Claude Code
claude mcp add chrischall-gogcli-mcp-docs -- npx -y gogcli-mcp-docs
Common questions

What is the io.github.chrischall/gogcli-mcp-docs server?

io.github.chrischall/gogcli-mcp-docs is listed in the public MCP registry as io.github.chrischall/gogcli-mcp-docs. Extended Google Docs for Claude via gogcli, auth + full Docs and comments support. This page covers its npm package (gogcli-mcp-docs).

Is the io.github.chrischall/gogcli-mcp-docs server safe to use?

io.github.chrischall/gogcli-mcp-docs scores 94 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.chrischall/gogcli-mcp-docs server expose?

io.github.chrischall/gogcli-mcp-docs exposes 83 tools: gog_auth_list, gog_auth_status, gog_auth_health, gog_auth_services, gog_auth_add, and 78 more. Their descriptions and schemas cost roughly 17,320 tokens of context every time the server is loaded.

Is the io.github.chrischall/gogcli-mcp-docs server still maintained?

io.github.chrischall/gogcli-mcp-docs is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.chrischall/gogcli-mcp-docs server under?

io.github.chrischall/gogcli-mcp-docs declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.