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
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
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
claude mcp add chrischall-gogcli-mcp-docs -- npx -y gogcli-mcp-docs
{
"mcpServers": {
"chrischall-gogcli-mcp-docs": {
"command": "npx",
"args": [
"-y",
"gogcli-mcp-docs"
]
}
}
} {
"servers": {
"chrischall-gogcli-mcp-docs": {
"command": "npx",
"args": [
"-y",
"gogcli-mcp-docs"
]
}
}
} codex mcp add chrischall-gogcli-mcp-docs -- npx -y gogcli-mcp-docs
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"chrischall-gogcli-mcp-docs": {
"type": "local",
"command": [
"npx",
"-y",
"gogcli-mcp-docs"
],
"enabled": true
}
}
} openclaw mcp add chrischall-gogcli-mcp-docs --command npx --arg -y --arg gogcli-mcp-docs
mcp_servers:
chrischall-gogcli-mcp-docs:
command: "npx"
args: ["-y", "gogcli-mcp-docs"] {
"McpServers": {
"chrischall-gogcli-mcp-docs": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"gogcli-mcp-docs"
]
}
}
} assistant mcp add chrischall-gogcli-mcp-docs -t stdio -c npx -a -y gogcli-mcp-docs
{
"mcpServers": {
"chrischall-gogcli-mcp-docs": {
"command": "npx",
"args": [
"-y",
"gogcli-mcp-docs"
]
}
}
} 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
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 →
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 →
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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| after | string | – | Insert the image immediately after the first literal text match (no text is deleted) |
| at | string | – | Placeholder text to replace, or "end" to append (default: end) |
| before | string | – | Insert the image immediately before the first literal text match (no text is deleted) |
| docId | string | yes | Doc ID (from the URL) |
| file | string | – | Local PNG, JPEG, or GIF image to upload and insert (exactly one of file or url) |
| height | number | – | Image height in points (optional; width-only preserves aspect ratio) |
| name | string | – | Override the uploaded Drive filename |
| onRestricted | string | – | If public sharing is blocked: error out, or fall back to a linked image (default: error) |
| parent | string | – | Drive folder ID for the uploaded image |
| tab | string | – | Target a specific tab by title or ID |
| url | string | – | Public HTTPS image URL to insert directly — no Drive upload or temporary public sharing (exactly one of file or url) |
| width | number | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| at | string | – | Anchor by literal text and insert the page break at the start of the matched range, instead of an index. |
| atEnd | boolean | – | Insert at end-of-doc/tab (mutually exclusive with index) |
| batch | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| index | integer | – | Character index to insert at (1 = beginning). Omit or use atEnd for end-of-doc. |
| matchCase | boolean | – | Case-sensitive `at` matching |
| occurrence | integer | – | Use the Nth `at` match (1-based; required when `at` is ambiguous) |
| tab | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| at | string | – | Anchor by literal text, delete the match, and insert the person chip there, instead of an index. |
| atEnd | boolean | – | Insert at end-of-doc/tab (mutually exclusive with index) |
| batch | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| string | yes | Email address for the person chip | |
| index | integer | – | Character index to insert at. Omit or use atEnd for end-of-doc. |
| matchCase | boolean | – | Case-sensitive `at` matching |
| occurrence | integer | – | Use the Nth `at` match (1-based; required when `at` is ambiguous) |
| tab | string | – | 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).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| at | string | – | Anchor by literal text and insert at the start of the matched range |
| atEnd | boolean | – | Target end-of-doc/tab (mutually exclusive with index and at) |
| batch | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| index | integer | – | Character index to insert at (1 = beginning). Omit or use atEnd for end-of-doc. |
| matchCase | boolean | – | Case-sensitive `at` matching |
| occurrence | integer | – | Use the Nth `at` match (1-based; required when `at` is ambiguous) |
| tab | string | – | Target a specific tab by title or ID |
| type | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| atEnd | boolean | – | Insert at end-of-doc/tab (mutually exclusive with index) |
| cols | integer | yes | Number of columns (>=1) |
| docId | string | yes | Doc ID (from the URL) |
| index | integer | – | Character index to insert at (1 = beginning). Omit or use atEnd for end-of-doc. |
| rows | integer | yes | Number of rows (>=1) |
| tab | string | – | Target a specific tab by title or ID |
| valuesJson | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| at | string | – | Create the range around this literal matched text, instead of start/end indices |
| docId | string | yes | Doc ID (from the URL) |
| end | integer | – | Range end UTF-16 index (exclusive). Required with start unless `at` is set. |
| matchCase | boolean | – | Case-sensitive `at` matching |
| name | string | yes | Unique named range name |
| occurrence | integer | – | Use the Nth `at` match (1-based; required when `at` is ambiguous) |
| start | integer | – | Range start UTF-16 index (inclusive). Required with end unless `at` is set. |
| tab | string | – | 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).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| nameOrId | string | yes | Named range name or ID |
| tab | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| name | string | – | Only return ranges with this name |
| tab | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| file | string | – | Path to a file with the replacement text |
| nameOrId | string | yes | Named range name or ID |
| tab | string | – | Target a specific tab by title or ID |
| text | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| layout | string | – | Page layout (default: pageless) |
| marginBottom | string | – | Bottom page margin (points by default; supports pt, in, cm, mm) |
| marginLeft | string | – | Left page margin (points by default; supports pt, in, cm, mm) |
| marginRight | string | – | Right page margin (points by default; supports pt, in, cm, mm) |
| marginTop | string | – | Top page margin (points by default; supports pt, in, cm, mm) |
| pageHeight | string | – | Page height (points by default; supports pt, in, cm, mm) |
| pageSize | string | – | Named page size preset (only applies in paged layout) |
| pageWidth | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| style | string | – | Only return this named style (e.g. NORMAL_TEXT or HEADING_2) |
| tab | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| allTabs | boolean | – | Show all tabs. In json mode, returns the canonical Document response with all tab content populated. |
| chips | boolean | – | Render Google Docs smart chips (people, dates, rich links) inline in text mode; ignored in json mode |
| docId | string | yes | Doc ID (from the URL) |
| format | string | – | Output format (default: text) |
| maxBytes | number | – | Max bytes to read in text mode (0 = unlimited; default 2000000) |
| tab | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| tab | string | yes | Existing tab title or ID to rename |
| title | string | yes | New 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| file | string | – | Local PNG, JPEG, or GIF image to upload and use (exactly one of file or url) |
| matchAlt | string | – | Select the image whose alt text contains this value (case-insensitive) |
| name | string | – | Override the uploaded Drive filename (file mode) |
| objectId | string | – | Exact image object ID to replace (from gog_docs_images_list) |
| parent | string | – | Drive folder ID for an uploaded local image (file mode) |
| tab | string | – | Target a specific tab by title or ID |
| url | string | – | 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 ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| args | array | yes | Additional positional args and flags |
| subcommand | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| at | string | – | Anchor by literal text and target the section at the start of the matched range |
| atEnd | boolean | – | Target end-of-doc/tab (mutually exclusive with index and at) |
| batch | string | – | 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. |
| count | integer | yes | Number of columns (1-3; 1 resets to one column) |
| docId | string | yes | Doc ID (from the URL) |
| index | integer | – | Character index identifying the section (1 = beginning). Omit or use atEnd for end-of-doc. |
| matchCase | boolean | – | Case-sensitive `at` matching |
| occurrence | integer | – | Use the Nth `at` match (1-based; required when `at` is ambiguous) |
| separator | string | – | Column separator line: none or between |
| tab | string | – | 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).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| expression | string | – | Single sed expression (e.g. "s/old/new/g") |
| expressions | array | – | Multiple sed expressions |
| file | string | – | Path to a sed script file |
| tab | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| tab | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| col | integer | yes | 1-based column number; negative indexes count from the end |
| docId | string | yes | Doc ID (from the URL) |
| tab | string | – | Target a specific tab by title or ID |
| table | string | – | 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).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| at | string | – | Insert before this 1-based column, a negative index from the end, or "end" to append (default: end) |
| docId | string | yes | Doc ID (from the URL) |
| tab | string | – | Target a specific tab by title or ID |
| table | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| batch | string | – | 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. |
| col | integer | – | 1-based column number. Omit with evenlyDistributed to reset all columns. |
| docId | string | yes | Doc ID (from the URL) |
| evenlyDistributed | boolean | – | Reset the selected column (or all columns when col is omitted) to Docs-managed equal width. |
| tab | string | – | Target tab title or ID |
| tableIndex | integer | – | 1-based table index in document order; negative counts from the end (default: 1) |
| width | number | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| range | string | yes | 1-based cell range r1,c1:r2,c2 (e.g. "1,1:2,3") |
| tab | string | – | Target a specific tab by title or ID |
| table | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| row | integer | yes | 1-based row number; negative indexes count from the end |
| tab | string | – | Target a specific tab by title or ID |
| table | string | – | 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).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| at | string | – | Insert before this 1-based row, a negative index from the end, or "end" to append (default: end) |
| docId | string | yes | Doc ID (from the URL) |
| tab | string | – | Target a specific tab by title or ID |
| table | string | – | 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) |
| valuesJson | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| rows | integer | yes | Number of leading rows to pin as headers; 0 unpins all header rows |
| tab | string | – | Target a specific tab by title or ID |
| table | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| minHeight | string | – | Minimum row height (points by default; supports pt, in, cm, mm) |
| preventOverflow | boolean | – | Keep the row within one page or column (true) or clear that setting (false) |
| row | integer | – | 1-based row number; negative indexes count from the end; omit to style all rows |
| tab | string | – | Target a specific tab by title or ID |
| table | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| cell | string | yes | 1-based cell r,c inside the merged region (e.g. "1,1") |
| docId | string | yes | Doc ID (from the URL) |
| tab | string | – | Target a specific tab by title or ID |
| table | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| tab | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| docId | string | yes | Doc 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| at | string | – | Anchor by literal text and replace that matched range, instead of supplying an index or replaceRange. |
| batch | string | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| file | string | – | Path to a file whose content to use |
| index | number | – | Character index to insert at |
| markdown | boolean | – | Convert markdown in the text/file to Google Docs formatting (headings, bold, lists, etc.) instead of inserting it literally. |
| matchCase | boolean | – | Case-sensitive `at` matching |
| occurrence | integer | – | Use the Nth `at` match (1-based; required when `at` is ambiguous) |
| pageless | boolean | – | Set document to pageless format |
| replaceRange | string | – | 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. |
| segment | string | – | 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… |
| tabId | string | – | Tab ID for multi-tab docs |
| text | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | 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. |
| append | boolean | – | Append to existing content instead of replacing (default: false) |
| batch | string | – | 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. |
| bulletPreset | string | – | Write a bulleted list with a specific Google Docs bullet glyph preset (e.g. BULLET_DISC_CIRCLE_SQUARE) |
| bullets | boolean | – | Write the paragraphs as a bulleted list with the default disc preset |
| checkOrphans | boolean | – | 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. |
| docId | string | yes | Doc ID (from the URL) |
| indentEnd | number | – | Paragraph end indentation in points |
| indentFirstLine | number | – | Paragraph first-line indentation in points |
| indentStart | number | – | Paragraph start indentation in points |
| keepLinesTogether | boolean | – | Keep all lines of the paragraph on one page/column (true) or clear that setting (false) |
| keepWithNext | boolean | – | Keep the paragraph with the next paragraph (true) or clear that setting (false) |
| noBullets | boolean | – | Remove bullets or numbering from the written paragraphs |
| ordered | boolean | – | Write the paragraphs as a numbered list with the default decimal preset |
| spaceAbove | number | – | Space above the paragraph in points |
| spaceBelow | number | – | Space below the paragraph in points |
| text | string | yes | Text content to write |
No output schema declared.
No examples provided.
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.