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 (2 minutes 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 5 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_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
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.
afterstring–Insert the image immediately after the first literal text match (no text is deleted)
atstring–Placeholder text to replace, or "end" to append (default: end)
beforestring–Insert the image immediately before the first literal text match (no text is deleted)
docIdstringyesDoc ID (from the URL)
filestring–Local PNG, JPEG, or GIF image to upload and insert (exactly one of file or url)
heightnumber–Image height in points (optional; width-only preserves aspect ratio)
namestring–Override the uploaded Drive filename
onRestrictedstring–If public sharing is blocked: error out, or fall back to a linked image (default: error)
parentstring–Drive folder ID for the uploaded image
tabstring–Target a specific tab by title or ID
urlstring–Public HTTPS image URL to insert directly — no Drive upload or temporary public sharing (exactly one of file or url)
widthnumber–Image 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
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 the page break at the start of the matched range, instead of an index.
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.
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.

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
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, delete the match, and insert the person chip there, instead of an index.
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.
docIdstringyesDoc ID (from the URL)
emailstringyesEmail address for the person chip
indexinteger–Character index to insert at. 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.

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
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
typestring–Section 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
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)
colsintegeryesNumber of columns (>=1)
docIdstringyesDoc ID (from the URL)
indexinteger–Character index to insert at (1 = beginning). Omit or use atEnd for end-of-doc.
rowsintegeryesNumber of rows (>=1)
tabstring–Target a specific tab by title or ID
valuesJsonstring–Cell 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
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_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
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–Create the range around this literal matched text, instead of start/end indices
docIdstringyesDoc ID (from the URL)
endinteger–Range end UTF-16 index (exclusive). Required with start unless `at` is set.
matchCaseboolean–Case-sensitive `at` matching
namestringyesUnique named range name
occurrenceinteger–Use the Nth `at` match (1-based; required when `at` is ambiguous)
startinteger–Range start UTF-16 index (inclusive). Required with end unless `at` is set.
tabstring–Target 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
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)
nameOrIdstringyesNamed range name or ID
tabstring–Target 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
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)
namestring–Only return ranges with this name
tabstring–Target 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
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 file with the replacement text
nameOrIdstringyesNamed range name or ID
tabstring–Target a specific tab by title or ID
textstring–Replacement 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
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)
layoutstring–Page layout (default: pageless)
marginBottomstring–Bottom page margin (points by default; supports pt, in, cm, mm)
marginLeftstring–Left page margin (points by default; supports pt, in, cm, mm)
marginRightstring–Right page margin (points by default; supports pt, in, cm, mm)
marginTopstring–Top page margin (points by default; supports pt, in, cm, mm)
pageHeightstring–Page height (points by default; supports pt, in, cm, mm)
pageSizestring–Named page size preset (only applies in paged layout)
pageWidthstring–Page 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
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)
stylestring–Only return this named style (e.g. NORMAL_TEXT or HEADING_2)
tabstring–Tab 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
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.
allTabsboolean–Show all tabs. In json mode, returns the canonical Document response with all tab content populated.
chipsboolean–Render Google Docs smart chips (people, dates, rich links) inline in text mode; ignored in json mode
docIdstringyesDoc ID (from the URL)
formatstring–Output format (default: text)
maxBytesnumber–Max bytes to read in text mode (0 = unlimited; default 2000000)
tabstring–Target 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
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 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
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–Local PNG, JPEG, or GIF image to upload and use (exactly one of file or url)
matchAltstring–Select the image whose alt text contains this value (case-insensitive)
namestring–Override the uploaded Drive filename (file mode)
objectIdstring–Exact image object ID to replace (from gog_docs_images_list)
parentstring–Drive folder ID for an uploaded local image (file mode)
tabstring–Target a specific tab by title or ID
urlstring–Public 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 ~257

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. 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.

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.
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
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)
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.
countintegeryesNumber of columns (1-3; 1 resets to one column)
docIdstringyesDoc ID (from the URL)
indexinteger–Character index identifying the section (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)
separatorstring–Column separator line: none or between
tabstring–Target 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
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)
expressionstring–Single sed expression (e.g. "s/old/new/g")
expressionsarray–Multiple sed expressions
filestring–Path to a sed script file
tabstring–Tab 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
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_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
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 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
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.
colintegeryes1-based column number; negative indexes count from the end
docIdstringyesDoc ID (from the URL)
tabstring–Target a specific tab by title or ID
tablestring–Table 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
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–Insert before this 1-based column, a negative index from the end, or "end" to append (default: end)
docIdstringyesDoc ID (from the URL)
tabstring–Target a specific tab by title or ID
tablestring–Table 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
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.
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.
colinteger–1-based column number. Omit with evenlyDistributed to reset all columns.
docIdstringyesDoc ID (from the URL)
evenlyDistributedboolean–Reset the selected column (or all columns when col is omitted) to Docs-managed equal width.
tabstring–Target tab title or ID
tableIndexinteger–1-based table index in document order; negative counts from the end (default: 1)
widthnumber–Fixed 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
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)
rangestringyes1-based cell range r1,c1:r2,c2 (e.g. "1,1:2,3")
tabstring–Target a specific tab by title or ID
tablestring–Table 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
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)
rowintegeryes1-based row number; negative indexes count from the end
tabstring–Target a specific tab by title or ID
tablestring–Table 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
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–Insert before this 1-based row, a negative index from the end, or "end" to append (default: end)
docIdstringyesDoc ID (from the URL)
tabstring–Target a specific tab by title or ID
tablestring–Table 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)
valuesJsonstring–JSON 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
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)
rowsintegeryesNumber of leading rows to pin as headers; 0 unpins all header rows
tabstring–Target a specific tab by title or ID
tablestring–Table 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
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)
minHeightstring–Minimum row height (points by default; supports pt, in, cm, mm)
preventOverflowboolean–Keep the row within one page or column (true) or clear that setting (false)
rowinteger–1-based row number; negative indexes count from the end; omit to style all rows
tabstring–Target a specific tab by title or ID
tablestring–Table 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
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.
cellstringyes1-based cell r,c inside the merged region (e.g. "1,1")
docIdstringyesDoc ID (from the URL)
tabstring–Target a specific tab by title or ID
tablestring–Table 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
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_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
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 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
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 replace that matched range, instead of supplying an index or replaceRange.
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)
filestring–Path to a file whose content to use
indexnumber–Character index to insert at
markdownboolean–Convert markdown in the text/file to Google Docs formatting (headings, bold, lists, etc.) instead of inserting it literally.
matchCaseboolean–Case-sensitive `at` matching
occurrenceinteger–Use the Nth `at` match (1-based; required when `at` is ambiguous)
pagelessboolean–Set document to pageless format
replaceRangestring–Replace 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.
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 for multi-tab docs
textstring–Text 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
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 to existing content instead of replacing (default: false)
batchstring–Append 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.
bulletPresetstring–Write a bulleted list with a specific Google Docs bullet glyph preset (e.g. BULLET_DISC_CIRCLE_SQUARE)
bulletsboolean–Write the paragraphs as a bulleted list with the default disc preset
checkOrphansboolean–Block 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)
indentEndnumber–Paragraph end indentation in points
indentFirstLinenumber–Paragraph first-line indentation in points
indentStartnumber–Paragraph start indentation in points
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)
noBulletsboolean–Remove bullets or numbering from the written paragraphs
orderedboolean–Write the paragraphs as a numbered list with the default decimal preset
spaceAbovenumber–Space above the paragraph in points
spaceBelownumber–Space below the paragraph in points
textstringyesText content to write

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 5 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 5 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.