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

−11 this week 82 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 Security63
  • No malware found by supply-chain analysis.Pass
  • Known CVEs could not be checked: the version this server declares is not published in its registry.Unverified
  • No install/post-install scripts declared.Pass
  • Dependency health could not be checked: the version this server declares is not published in its registry.Unverified
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 −10
    • Known CVEs: pass → unverified security
    • Stability: 0.90 → unverified security
    • Tool safety: pass → unverified security
    • Dependency health: 1.00 → unverified functional
    • 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
    • MCP protocol: Implements a current MCP spec version (2026-07-28). functional
    • Package version: 4.0.1 → 4.2.2 functional
    • Package version: 4.0.1 → 4.2.0 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.2.2

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

Background: How many MCP packages publish verified provenance →

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_docs_insert_image ~365

Insert an image into a Google Doc from a local file or a public HTTPS URL. file: uploaded to Drive, temporarily shared so Docs can fetch it, inserted, then the public permission is revoked. url: inserted directly with no Drive upload or temporary sharing. Replaces placeholder text (at) or appends at 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.
afterstringInsert the image immediately after the first literal text match (no text is deleted)
atstringPlaceholder text to replace, or "end" to append (default: end)
beforestringInsert the image immediately before the first literal text match (no text is deleted)
docIdstringyesDoc ID (from the URL)
filestringLocal PNG, JPEG, or GIF image to upload and insert (exactly one of file or url)
heightnumberImage height in points (optional; width-only preserves aspect ratio)
namestringOverride the uploaded Drive filename
onRestrictedstringIf public sharing is blocked: error out, or fall back to a linked image (default: error)
parentstringDrive folder ID for the uploaded image
tabstringTarget a specific tab by title or ID
urlstringPublic HTTPS image URL to insert directly — no Drive upload or temporary public sharing (exactly one of file or url)
widthnumberImage width in points (default: 468)

No output schema declared.

No examples provided.

gog_docs_insert_page_break ~287

Insert a Google Docs page break via InsertPageBreakRequest — the only path for multi-page deliverables (markdown has no page-break construct). Specify `index` for a precise character position, or `atEnd` for 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 the page break at the start of the matched range, instead of an index.
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.
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.

gog_docs_insert_person ~276

Insert a native Google Docs person smart chip (the interactive @-mention chip) for an email address, 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, delete the match, and insert the person chip there, instead of an index.
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.
docIdstringyesDoc ID (from the URL)
emailstringyesEmail address for the person chip
indexintegerCharacter index to insert at. 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.

gog_docs_insert_section_break ~282

Insert a continuous or next-page section break at a character index (or end-of-doc). Section breaks enable per-section layout such as column counts (see gog_docs_section_columns).

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
typestringSection break type (default: next-page)

No output schema declared.

No examples provided.

gog_docs_insert_table ~246

Insert a native Google Docs table via InsertTableRequest, bypassing the markdown writer. Use this instead of writing a markdown table when you need precise dimensions or to avoid the markdown writer's table limitations. `valuesJson` is a JSON 2D string array whose dimensions must match rows x cols.

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)
colsintegeryesNumber of columns (>=1)
docIdstringyesDoc ID (from the URL)
indexintegerCharacter index to insert at (1 = beginning). Omit or use atEnd for end-of-doc.
rowsintegeryesNumber of rows (>=1)
tabstringTarget a specific tab by title or ID
valuesJsonstringCell values as a JSON 2D string array; dimensions must match rows x cols when supplied

No output schema declared.

No examples provided.

gog_docs_list_tabs ~79

List all tabs 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)

No output schema declared.

No examples provided.

gog_docs_named_range_create ~266

Create a named range — a durable, tab-aware anchor over a span of document text that survives subsequent edits (unlike raw indices). Anchor by literal text (`at`) or explicit UTF-16 start/end indices. Pair with gog_docs_named_range_replace for repeatable templated updates.

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.
atstringCreate the range around this literal matched text, instead of start/end indices
docIdstringyesDoc ID (from the URL)
endintegerRange end UTF-16 index (exclusive). Required with start unless `at` is set.
matchCasebooleanCase-sensitive `at` matching
namestringyesUnique named range name
occurrenceintegerUse the Nth `at` match (1-based; required when `at` is ambiguous)
startintegerRange start UTF-16 index (inclusive). Required with end unless `at` is set.
tabstringTarget a specific tab by title or ID

No output schema declared.

No examples provided.

gog_docs_named_range_delete ~117

Delete a named range (the anchor only — the underlying document text is untouched).

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)
nameOrIdstringyesNamed range name or ID
tabstringTarget a specific tab by title or ID

No output schema declared.

No examples provided.

gog_docs_named_range_list ~113

List named ranges in a Google Doc, optionally filtered by name.

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)
namestringOnly return ranges with this name
tabstringTarget a specific tab by title or ID

No output schema declared.

No examples provided.

gog_docs_named_range_replace ~156

Replace the text inside a named range with new content (inline or from a file), keeping the anchor for future updates — the templated-update workhorse.

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 file with the replacement text
nameOrIdstringyesNamed range name or ID
tabstringTarget a specific tab by title or ID
textstringReplacement text

No output schema declared.

No examples provided.

gog_docs_page_layout ~304

Toggle the page layout (pageless | pages) of an existing Google Doc. Sibling to the --pageless flag on docs create/write/update for docs that were already created (e.g. by Drive markdown conversion) without the desired layout.

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)
layoutstringPage layout (default: pageless)
marginBottomstringBottom page margin (points by default; supports pt, in, cm, mm)
marginLeftstringLeft page margin (points by default; supports pt, in, cm, mm)
marginRightstringRight page margin (points by default; supports pt, in, cm, mm)
marginTopstringTop page margin (points by default; supports pt, in, cm, mm)
pageHeightstringPage height (points by default; supports pt, in, cm, mm)
pageSizestringNamed page size preset (only applies in paged layout)
pageWidthstringPage width (points by default; supports pt, in, cm, mm — e.g. "8.5in")

No output schema declared.

No examples provided.

gog_docs_paragraphs_list ~151

Enumerate paragraphs in a Google Doc with emptiness, text-run ranges, styles, and links — richer than gog_docs_structure when you need per-run detail. Optionally filter to one named 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)
stylestringOnly return this named style (e.g. NORMAL_TEXT or HEADING_2)
tabstringTab title or ID (omit for default)

No output schema declared.

No examples provided.

gog_docs_read ~271

Read the content of a Google Doc. Default: plain text body. Use format="json" for the raw Google Docs API response (lossless, includes character indices needed for index-based gog_docs_insert / gog_docs_delete calls). For markdown output, use gog_docs_export with format="md" — it writes to a file. Use gog_docs_structure to see paragraph-by-paragraph layout with indices.

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.
allTabsbooleanShow all tabs. In json mode, returns the canonical Document response with all tab content populated.
chipsbooleanRender Google Docs smart chips (people, dates, rich links) inline in text mode; ignored in json mode
docIdstringyesDoc ID (from the URL)
formatstringOutput format (default: text)
maxBytesnumberMax bytes to read in text mode (0 = unlimited; default 2000000)
tabstringTarget tab title or ID. In json mode, returns that one tab in the legacy top-level Document shape.

No output schema declared.

No examples provided.

gog_docs_rename_tab ~121

Rename a tab in a Google Doc. Identify the existing tab by title or ID and give it a new 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)
tabstringyesExisting tab title or ID to rename
titlestringyesNew user-visible tab title

No output schema declared.

No examples provided.

gog_docs_replace_image ~276

Replace an existing image in a Google Doc in place — keeping its position and bounds — with a new image from a local file or public HTTPS URL. Target the image by exact object ID (from gog_docs_images_list), by alt-text substring, or leave both off to replace the only image in the doc/tab.

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)
filestringLocal PNG, JPEG, or GIF image to upload and use (exactly one of file or url)
matchAltstringSelect the image whose alt text contains this value (case-insensitive)
namestringOverride the uploaded Drive filename (file mode)
objectIdstringExact image object ID to replace (from gog_docs_images_list)
parentstringDrive folder ID for an uploaded local image (file mode)
tabstringTarget a specific tab by title or ID
urlstringPublic HTTPS image URL to use directly — no Drive upload (exactly one of file or url)

No output schema declared.

No examples provided.

gog_docs_run ~150

Run any gog docs subcommand not covered by the other tools. Run `gog docs --help` for the full list of subcommands, or `gog docs <subcommand> --help` for flags on a specific subcommand.

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.
argsarrayyesAdditional positional args and flags
subcommandstringyesThe gog docs subcommand to run, e.g. "copy", "clear", "insert", "sed", "export"

No output schema declared.

No examples provided.

gog_docs_section_columns ~309

Set the column count (1-3) for the document section containing the target position. Use count=1 to reset to a single column. Anchor by index, end-of-doc, or literal 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.
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)
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.
countintegeryesNumber of columns (1-3; 1 resets to one column)
docIdstringyesDoc ID (from the URL)
indexintegerCharacter index identifying the section (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)
separatorstringColumn separator line: none or between
tabstringTarget a specific tab by title or ID

No output schema declared.

No examples provided.

gog_docs_sed ~143

Stream-edit a Google Doc with sed-like regex expressions (s/find/replace/ syntax).

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)
expressionstringSingle sed expression (e.g. "s/old/new/g")
expressionsarrayMultiple sed expressions
filestringPath to a sed script file
tabstringTab name to edit

No output schema declared.

No examples provided.

gog_docs_structure ~92

Show a Google Doc's structure with numbered paragraphs. Useful for understanding the document layout before making index-based edits.

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_suggestions_list ~127

List pending suggestions (suggested text insertions and deletions) in a Google Doc, with exact UTF-16 ranges and segment context. Read-only; does not accept or reject suggestions.

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 the first tab)

No output schema declared.

No examples provided.

gog_docs_table_column_delete ~184

Delete a column from a native Google Docs table by 1-based column number (negative counts from the end). The column's cell content is lost.

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.
colintegeryes1-based column number; negative indexes count from the end
docIdstringyesDoc ID (from the URL)
tabstringTarget a specific tab by title or ID
tablestringTable selector: 1-based index (negative from the end), exact first-cell text, * for the only table, or text:VALUE for numeric/syntax-looking first-cell text (default: 1)

No output schema declared.

No examples provided.

gog_docs_table_column_insert ~205

Insert a column into a native Google Docs table. Inserts before the 1-based position given by `at` (negative counts from the end; "end" appends — the default).

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.
atstringInsert before this 1-based column, a negative index from the end, or "end" to append (default: end)
docIdstringyesDoc ID (from the URL)
tabstringTarget a specific tab by title or ID
tablestringTable selector: 1-based index (negative from the end), exact first-cell text, * for the only table, or text:VALUE for numeric/syntax-looking first-cell text (default: 1)

No output schema declared.

No examples provided.

gog_docs_table_column_width ~282

Set a fixed width (in points) for a table column, or reset columns to Docs-managed even distribution. Target the table by 1-based index in document order (negative counts from the end) and the column by 1-based number. Pass evenlyDistributed without col to reset every column in the table.

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.
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.
colinteger1-based column number. Omit with evenlyDistributed to reset all columns.
docIdstringyesDoc ID (from the URL)
evenlyDistributedbooleanReset the selected column (or all columns when col is omitted) to Docs-managed equal width.
tabstringTarget tab title or ID
tableIndexinteger1-based table index in document order; negative counts from the end (default: 1)
widthnumberFixed column width in points (minimum 5pt). Mutually exclusive with evenlyDistributed.

No output schema declared.

No examples provided.

gog_docs_table_merge ~205

Merge a rectangular cell range in a native Google Docs table. Content of non-first cells in the range is absorbed/discarded by the merge — use gog_docs_table_unmerge to split back.

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)
rangestringyes1-based cell range r1,c1:r2,c2 (e.g. "1,1:2,3")
tabstringTarget a specific tab by title or ID
tablestringTable selector: 1-based index (negative from the end), exact first-cell text, * for the only table, or text:VALUE for numeric/syntax-looking first-cell text (default: 1)

No output schema declared.

No examples provided.

gog_docs_table_row_delete ~184

Delete a row from a native Google Docs table by 1-based row number (negative counts from the end). The row's cell content is lost.

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)
rowintegeryes1-based row number; negative indexes count from the end
tabstringTarget a specific tab by title or ID
tablestringTable selector: 1-based index (negative from the end), exact first-cell text, * for the only table, or text:VALUE for numeric/syntax-looking first-cell text (default: 1)

No output schema declared.

No examples provided.

gog_docs_table_row_insert ~239

Insert a row into a native Google Docs table, optionally populated from a JSON string array. Inserts before the 1-based position given by `at` (negative counts from the end; "end" appends — the default).

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.
atstringInsert before this 1-based row, a negative index from the end, or "end" to append (default: end)
docIdstringyesDoc ID (from the URL)
tabstringTarget a specific tab by title or ID
tablestringTable selector: 1-based index (negative from the end), exact first-cell text, * for the only table, or text:VALUE for numeric/syntax-looking first-cell text (default: 1)
valuesJsonstringJSON string array with the new row's cell values, e.g. ["Name","Qty"]

No output schema declared.

No examples provided.

gog_docs_table_row_pin_header ~195

Pin (or unpin) leading rows of a native Google Docs table as repeating header rows. rows=N pins the first N rows; rows=0 unpins all header rows.

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)
rowsintegeryesNumber of leading rows to pin as headers; 0 unpins all header rows
tabstringTarget a specific tab by title or ID
tablestringTable selector: 1-based index (negative from the end), exact first-cell text, * for the only table, or text:VALUE for numeric/syntax-looking first-cell text (default: 1)

No output schema declared.

No examples provided.

gog_docs_table_row_style ~244

Set native table row height and page-overflow behaviour. Target a 1-based row (negative counts from the end) or omit row to style every row in the table.

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)
minHeightstringMinimum row height (points by default; supports pt, in, cm, mm)
preventOverflowbooleanKeep the row within one page or column (true) or clear that setting (false)
rowinteger1-based row number; negative indexes count from the end; omit to style all rows
tabstringTarget a specific tab by title or ID
tablestringTable selector: 1-based index (negative from the end), exact first-cell text, * for the only table, or text:VALUE for numeric/syntax-looking first-cell text (default: 1)

No output schema declared.

No examples provided.

gog_docs_table_unmerge ~179

Unmerge (split) the merged region containing a given cell in a native Google Docs table.

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.
cellstringyes1-based cell r,c inside the merged region (e.g. "1,1")
docIdstringyesDoc ID (from the URL)
tabstringTarget a specific tab by title or ID
tablestringTable selector: 1-based index (negative from the end), exact first-cell text, * for the only table, or text:VALUE for numeric/syntax-looking first-cell text (default: 1)

No output schema declared.

No examples provided.

gog_docs_tables_list ~125

Enumerate the native tables in a Google Doc (dimensions, position) — the index/first-cell-text it reports feeds the `table` selector on the table-row/column/merge tools.

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_trash ~117

Move an entire Google Doc to Drive trash. Convenience wrapper around `gog drive delete` so docs-only users can clean up without installing gogcli-mcp-drive. The doc remains recoverable from Drive trash for ~30 days.

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 to move to trash

No output schema declared.

No examples provided.

gog_docs_update ~379

Update a Google Doc — insert or replace text at a specific position.

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 replace that matched range, instead of supplying an index or replaceRange.
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)
filestringPath to a file whose content to use
indexnumberCharacter index to insert at
markdownbooleanConvert markdown in the text/file to Google Docs formatting (headings, bold, lists, etc.) instead of inserting it literally.
matchCasebooleanCase-sensitive `at` matching
occurrenceintegerUse the Nth `at` match (1-based; required when `at` is ambiguous)
pagelessbooleanSet document to pageless format
replaceRangestringReplace a UTF-16 Docs API range START:END (e.g. "25:40") instead of inserting at index. The replacement text/file content overwrites the range.
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 for multi-tab docs
textstringText content to write

No output schema declared.

No examples provided.

gog_docs_write ~421

Write text content to a Google Doc, replacing existing body content by default. Set append=true to add after existing content.

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 to existing content instead of replacing (default: false)
batchstringAppend this mutation to a persisted batch (from gog_batch_begin in gogcli-mcp-docs) instead of applying it — nothing changes in the doc until the batch is submitted.
bulletPresetstringWrite a bulleted list with a specific Google Docs bullet glyph preset (e.g. BULLET_DISC_CIRCLE_SQUARE)
bulletsbooleanWrite the paragraphs as a bulleted list with the default disc preset
checkOrphansbooleanBlock the write (exit code 11) if it would orphan an open comment — i.e. remove the text the comment is anchored to. Recommended for replacement writes on commented docs.
docIdstringyesDoc ID (from the URL)
indentEndnumberParagraph end indentation in points
indentFirstLinenumberParagraph first-line indentation in points
indentStartnumberParagraph start indentation in points
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)
noBulletsbooleanRemove bullets or numbering from the written paragraphs
orderedbooleanWrite the paragraphs as a numbered list with the default decimal preset
spaceAbovenumberSpace above the paragraph in points
spaceBelownumberSpace below the paragraph in points
textstringyesText content to write

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 82 out of 100 on VerifyMCP. 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.