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 · SCANNED SEP 20

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

Available components

0 this week 93 Trust /100
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 16539 tokens (~199/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 Management93
  • Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
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
// .cursor/mcp.json
{
  "mcpServers": {
    "chrischall-gogcli-mcp-docs": {
      "command": "npx",
      "args": [
        "-y",
        "gogcli-mcp-docs"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "chrischall-gogcli-mcp-docs": {
      "command": "npx",
      "args": [
        "-y",
        "gogcli-mcp-docs"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add chrischall-gogcli-mcp-docs -- npx -y gogcli-mcp-docs
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "chrischall-gogcli-mcp-docs": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "gogcli-mcp-docs"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add chrischall-gogcli-mcp-docs --command npx --arg -y --arg gogcli-mcp-docs
# ~/.hermes/config.yaml
mcp_servers:
  chrischall-gogcli-mcp-docs:
    command: "npx"
    args: ["-y", "gogcli-mcp-docs"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "chrischall-gogcli-mcp-docs": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "gogcli-mcp-docs"
      ]
    }
  }
}
# add to Vellum
assistant mcp add chrischall-gogcli-mcp-docs -t stdio -c npx -a -y gogcli-mcp-docs
// mcp.json
{
  "mcpServers": {
    "chrischall-gogcli-mcp-docs": {
      "command": "npx",
      "args": [
        "-y",
        "gogcli-mcp-docs"
      ]
    }
  }
}
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.

  • 20 Sept 26 +1
    • MCP protocol: Implements a current MCP spec version (2026-07-28). functional
    • Package version: 4.0.1 → 4.1.0 functional
  • 19 Sept 26 +15
    • Malware scan: unverified → pass security
  • 18 Sept 26 −14
    • Malware scan: pass → unverified security
    • Package version: 3.0.0 → 4.0.1 functional
  • 17 Sept 26 +1
    • Stability: 0.80 → unverified security
    • Tool safety: pass → unverified security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Dependency health: 0.85 → 1.00 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: 2.30.0 → 3.0.0 functional
  • 16 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 15 Sept 26 +15
    • Malware scan: unverified → pass security
  • 14 Sept 26 −15
    • Malware scan: pass → unverified security
    • Stability: 0.97 → unverified security
    • Tool safety: pass → unverified security
    • Stability: 0.97 → pass security
    • Capabilities: pass → 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: 2.29.1 → 2.30.0 functional
  • 13 Sept 26 0
    • Stability: pass → 0.97 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 20 Sept 2026 · Analysed npm/gogcli-mcp-docs@4.1.0

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 2893922124
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:bc8f45451c0e752123e33f2218cc202059e0c63fa2c65344e2fbc317098a291fca9ee265dfd8fd17ea923be3453720087b35b6f259ef6822083a9b36f

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 · ~16,539 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
extraScopesstringAdditional 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…
servicesstringServices 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)
extraScopesstringExtra 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).
servicesstringServices 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
extraScopesstringAdditional 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…
servicesstringServices 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 ~108

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. For browser-based authorization, use gog_auth_add instead.

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

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
accountstringGoogle 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
accountstringGoogle 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
namestringOptional 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
accountstringGoogle 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.
autoSplitbooleanSubmit batches over 500 requests as ordered chunks (non-atomic)
batchIdstringyesBatch ID (from gog_batch_begin)
continueOnErrorbooleanAfter 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
accountstringGoogle 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
accountstringGoogle 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.
olderThanstringDelete 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
accountstringGoogle 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
accountstringGoogle 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)
iconEmojistringEmoji icon for the tab
indexintegerZero-based tab position within the parent
parentTabstringParent tab title or ID to nest this tab under
titlestringUser-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
accountstringGoogle 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)
filestringPath 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.
markdownbooleanConvert markdown to Google Docs formatting (headings, bold, lists, etc.). See the tool description for known upstream limitations around tables.
tabstringTarget tab title or ID (for multi-tab docs)
textstringText content to append

No output schema declared.

No examples provided.

gog_docs_cat ~103

Read a Google Doc as plain text.

NameTypeReqDescription
accountstringGoogle 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.
chipsbooleanRender 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
accountstringGoogle 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.
backgroundColorstringCell background color as #RRGGBB or #RGB
batchstringAppend 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.
boldbooleanSet cell text bold
borderAllstringAll borders as WIDTH[,COLOR[,SOLID|DOT|DASH]] (e.g. 1pt,#000,DASH)
borderBottomstringBottom border (same format as borderAll); overrides borderAll
borderLeftstringLeft border (same format as borderAll); overrides borderAll
borderRightstringRight border (same format as borderAll); overrides borderAll
borderTopstringTop border (same format as borderAll); overrides borderAll
colintegeryes0-based column number
colSpanintegerNumber of columns to style (default: 1)
contentAlignstringVertical content alignment within the cell
docIdstringyesDoc ID (from the URL)
italicbooleanSet cell text italic
paddingAllstringAll cell padding (points by default; supports pt, in, cm, mm)
paddingBottomstringBottom cell padding; overrides paddingAll
paddingLeftstringLeft cell padding; overrides paddingAll
paddingRightstringRight cell padding; overrides paddingAll
paddingTopstringTop cell padding; overrides paddingAll
rowintegeryes0-based row number
rowSpanintegerNumber of rows to style (default: 1)
tabstringTarget a specific tab by title or ID
tableIndexinteger0-based table index in document order (default: 0)
textColorstringText color as #RRGGBB or #RGB
underlinebooleanSet 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
accountstringGoogle 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.
appendbooleanAppend inside the cell instead of replacing existing cell content
colintegeryes1-based column number
contentstringReplacement 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.
contentFilestringRead replacement content from a file instead of content. Mutually exclusive with content — gog rejects both together.
docIdstringyesDoc ID (from the URL)
formatstringContent format (default: markdown)
rowintegeryes1-based row number
tabstringTarget a specific tab by title or ID
tableIndexinteger1-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
accountstringGoogle 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 ~127

Add a comment to a Google Doc. Optionally attach quoted text that appears as the highlighted passage in the Google Docs UI.

NameTypeReqDescription
accountstringGoogle 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.
contentstringyesComment text
docIdstringyesDoc ID (from the URL)
quotedstringQuoted 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
accountstringGoogle 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
accountstringGoogle 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
accountstringGoogle 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.
allbooleanFetch all pages
docIdstringyesDoc ID (from the URL)
includeResolvedbooleanInclude resolved comments (default: false, open only)
locatebooleanAttach each comment's tab and Docs index ranges (location.matches[] + location.orphaned) using one extra document fetch shared across the whole listing
maxintegerMax results
pagestringDeprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response.
pageTokenstringCursor 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…
sincestringOnly return comments modified at or after this RFC3339 timestamp (e.g. 2026-06-01T00:00:00Z)
tabstringOnly 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
accountstringGoogle 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)
matchCasebooleanCase-sensitive matching of the comment quote
normalizeWhitespacebooleanCollapse whitespace while matching the comment quote
tabstringTarget 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
accountstringGoogle 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 ~103

Reply to an existing comment on a Google Doc.

NameTypeReqDescription
accountstringGoogle 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
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
accountstringGoogle 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)
messagestringOptional 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
accountstringGoogle 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)
parentstringParent 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
accountstringGoogle 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
accountstringGoogle 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.
atstringAnchor by literal text and delete that matched range, instead of supplying start/end indices.
batchstringAppend 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)
endnumberEnd index (character position, exclusive). Required unless `at` is set.
matchCasebooleanCase-sensitive `at` matching
occurrenceintegerUse the Nth `at` match (1-based; required when `at` is ambiguous)
segmentstringTarget 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…
startnumberStart index (character position, 1-based). Required unless `at` is set.
tabIdstringTab 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
accountstringGoogle 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
accountstringGoogle 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
matchCasebooleanCase-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
accountstringGoogle 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)
formatstringExport format: pdf, txt, html, docx, rtf, odt, epub (default: pdf)
outstringOutput file path
overwritebooleanOverwrite 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
accountstringGoogle 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.
allbooleanReturn all matches instead of just one
docIdstringyesDoc ID (from the URL)
failEmptybooleanTreat no matches as an error instead of returning an empty result
matchCasebooleanCase-sensitive matching
normalizeWhitespacebooleanCollapse whitespace while matching
occurrenceintegerReturn the Nth occurrence (1-based; default: first)
segmentstringTarget 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…
tabstringTarget 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
accountstringGoogle 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
accountstringGoogle 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.
atstringAnchor by literal text and target the section at the start of the matched range
atEndbooleanTarget end-of-doc/tab (mutually exclusive with index and at)
docIdstringyesDoc ID (from the URL)
filestringRead 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.
indexintegerCharacter index identifying the section the footer belongs to (1 = beginning). Omit or use atEnd for end-of-doc.
matchCasebooleanCase-sensitive `at` matching
occurrenceintegerUse the Nth `at` match (1-based; required when `at` is ambiguous)
tabstringTarget a specific tab by title or ID
textstringInitial 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
accountstringGoogle 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)
tabstringTab 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
accountstringGoogle 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)
tabstringLimit 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
accountstringGoogle 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.
alignmentstringParagraph alignment
batchstringAppend 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.
bgColorstringText background color as #RRGGBB or #RGB
boldbooleanSet bold
bulletPresetstringCreate a bulleted list with a specific Google Docs bullet glyph preset (e.g. BULLET_DISC_CIRCLE_SQUARE)
bulletsbooleanTurn the matched paragraphs into a bulleted list with the default disc preset
codebooleanApply code style (Courier New monospace + grey background)
docIdstringyesDoc ID (from the URL)
fontFamilystringFont family (e.g. Arial, Georgia)
fontSizenumberFont size in points
headingLevelintegerSet paragraph named style to HEADING_1..HEADING_6 (shortcut for namedStyle=HEADING_N)
indentEndnumberParagraph end indentation in points
indentFirstLinenumberParagraph first-line indentation in points
indentStartnumberParagraph start indentation in points
italicbooleanSet italic
keepLinesTogetherbooleanKeep all lines of the paragraph on one page/column (true) or clear that setting (false)
keepWithNextbooleanKeep the paragraph with the next paragraph (true) or clear that setting (false)
lineSpacingnumberLine spacing percentage (e.g. 100 for single, 150 for 1.5x, 200 for double)
linkstringSet a hyperlink on the matched text. Accepts http://, https://, mailto:, #bookmarkId, or #heading-slug.
matchstringFormat only the first text match
matchAllbooleanFormat all matches instead of only the first
matchCasebooleanCase-sensitive matching
namedStylestringSet paragraph named style explicitly
noBoldbooleanClear bold
noBulletsbooleanRemove bullets or numbering from the matched paragraphs
noItalicbooleanClear italic
noLinkbooleanClear any hyperlink on the matched text
noStrikethroughbooleanClear strikethrough
noUnderlinebooleanClear underline
orderedbooleanTurn the matched paragraphs into a numbered list with the default decimal preset
segmentstringTarget 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…
spaceAbovenumberSpace above the paragraph in points
spaceBelownumberSpace below the paragraph in points
spacingModestringParagraph spacing collapse behavior: NEVER_COLLAPSE always keeps space-above/space-below; COLLAPSE_LISTS collapses spacing between list items
strikethroughbooleanSet strikethrough
tabstringTarget tab title or ID
textColorstringText color as #RRGGBB or #RGB
underlinebooleanSet 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
accountstringGoogle 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.
atstringAnchor by literal text and target the section at the start of the matched range
atEndbooleanTarget end-of-doc/tab (mutually exclusive with index and at)
docIdstringyesDoc ID (from the URL)
filestringRead 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.
indexintegerCharacter index identifying the section the header belongs to (1 = beginning). Omit or use atEnd for end-of-doc.
matchCasebooleanCase-sensitive `at` matching
occurrenceintegerUse the Nth `at` match (1-based; required when `at` is ambiguous)
tabstringTarget a specific tab by title or ID
textstringInitial 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
accountstringGoogle 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)
tabstringTab 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
accountstringGoogle 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)
tabstringLimit 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
accountstringGoogle 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)
levelintegerOnly return this heading level (1-6)
tabstringTab 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
accountstringGoogle 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)
tabstringTab 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
accountstringGoogle 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
accountstringGoogle 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.
atstringAnchor by literal text and insert at the start of the matched range, instead of computing an index.
batchstringAppend 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.
contentstringText content to insert
docIdstringyesDoc ID (from the URL)
filestringPath to a file whose content to insert
indexnumberCharacter index to insert at (1-based; default: 1 = start of doc). Prefer gog_docs_append when you want to add at the end.
matchCasebooleanCase-sensitive `at` matching
occurrenceintegerUse the Nth `at` match (1-based; required when `at` is ambiguous)
segmentstringTarget 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…
tabIdstringTab 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
accountstringGoogle 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.
atEndbooleanInsert at end-of-doc/tab (mutually exclusive with index)
batchstringAppend 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.
datestringDate to insert as YYYY-MM-DD (default: today)
docIdstringyesDoc ID (from the URL)
formatstringDate display format (default: abbreviated)
indexintegerCharacter index to insert at. Omit or use atEnd for end-of-doc.
tabstringTarget 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
accountstringGoogle 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.
atstringAnchor by literal text and place the reference mark at the start of the matched range
atEndbooleanTarget end-of-doc/tab (mutually exclusive with index and at)
docIdstringyesDoc ID (from the URL)
filestringRead 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.
indexintegerCharacter index to place the reference mark at (1 = beginning). Omit or use atEnd for end-of-doc.
matchCasebooleanCase-sensitive `at` matching
occurrenceintegerUse the Nth `at` match (1-based; required when `at` is ambiguous)
tabstringTarget a specific tab by title or ID
textstringFootnote 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
accountstringGoogle 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.
atstringAnchor by literal text and insert at the start of the matched range
atEndbooleanTarget end-of-doc/tab (mutually exclusive with index and at)
batchstringAppend 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)
indexintegerCharacter index to insert at (1 = beginning). Omit or use atEnd for end-of-doc.
matchCasebooleanCase-sensitive `at` matching
occurrenceintegerUse the Nth `at` match (1-based; required when `at` is ambiguous)
tabstringTarget a specific tab by title or ID

No output schema declared.

No examples provided.

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 93 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 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 16,539 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 20 September 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.