io.github.chrischall/gogcli-mcp
NPM · GOGCLI-MCP · SCANNED SEP 21
Google Sheets (and more) for Claude via gogcli — read, write, and manage spreadsheets
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 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 Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 22515 tokens (~195/item across 115 items; 115 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 Management97
- Stability observed for 29 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 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 115 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 server?
io.github.chrischall/gogcli-mcp runs locally as an npm package, launched with npx -y gogcli-mcp. 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
claude mcp add chrischall-gogcli-mcp -- npx -y gogcli-mcp
{
"mcpServers": {
"chrischall-gogcli-mcp": {
"command": "npx",
"args": [
"-y",
"gogcli-mcp"
]
}
}
} {
"servers": {
"chrischall-gogcli-mcp": {
"command": "npx",
"args": [
"-y",
"gogcli-mcp"
]
}
}
} codex mcp add chrischall-gogcli-mcp -- npx -y gogcli-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"chrischall-gogcli-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"gogcli-mcp"
],
"enabled": true
}
}
} openclaw mcp add chrischall-gogcli-mcp --command npx --arg -y --arg gogcli-mcp
mcp_servers:
chrischall-gogcli-mcp:
command: "npx"
args: ["-y", "gogcli-mcp"] {
"McpServers": {
"chrischall-gogcli-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"gogcli-mcp"
]
}
}
} assistant mcp add chrischall-gogcli-mcp -t stdio -c npx -a -y gogcli-mcp
{
"mcpServers": {
"chrischall-gogcli-mcp": {
"command": "npx",
"args": [
"-y",
"gogcli-mcp"
]
}
}
} 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.
- 21 Sept 26 +12
- Stability: 0.93 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Known CVEs: unverified → pass ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: unverified → 1.00 ▲ functional
- Destructive annotations: All 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation. 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.2.2 → 4.2.4 functional
- Package version: 4.2.2 → 4.2.3 functional
- 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
- Destructive annotations: 75% → 80% ▲ 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.18.4 → 3.0.0 functional
- Package version: 2.30.0 → 3.0.0 functional
- 16 Sept 26 −3
- Stability: pass → 0.80 functional
- Package version: 2.18.4 → 2.30.0 functional
- 14 Sept 26 0
- 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 21 Sept 2026 · Analysed npm/gogcli-mcp@4.2.4
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 | 2904926999 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:e3417cee9666984305094d18ed9b40945cc79cae58c05b5ce968a0acc9f118c4935069ae88813a1c8651285329dad539e174497b7b6f714417a68c8d1 |
Background: How many MCP packages publish verified provenance →
Dependencies 4 packages
| Packages resolved | 4 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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_classroom_roster ~226
List the full roster (students and/or teachers) of a Google Classroom course. Omit both flags to return both groups.
| 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. |
| all | boolean | – | Fetch all pages |
| courseId | string | yes | Course ID |
| max | number | – | Max results per page |
| page | string | – | Deprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response. |
| pageToken | string | – | Cursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N… |
| students | boolean | – | Include students only |
| teachers | boolean | – | Include teachers only |
No output schema declared.
No examples provided.
gog_classroom_run ~180
Run any gog classroom subcommand not covered by the other tools. Run `gog classroom --help` for the full list of subcommands, or `gog classroom <subcommand> --help` for flags on a specific subcommand. Covers anything not wrapped by the dedicated tools (guardians, guardian-invitations, materials, coursework assignees, announcement assignees, etc.).
| 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 classroom subcommand to run, e.g. "guardians", "materials", "guardian-invitations" |
No output schema declared.
No examples provided.
gog_classroom_students_get ~88
Get a specific student enrolled in a course.
| 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. |
| courseId | string | yes | Course ID |
| userId | string | yes | Student user ID |
No output schema declared.
No examples provided.
gog_classroom_students_list ~190
List students enrolled in a Google Classroom course.
| 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. |
| all | boolean | – | Fetch all pages |
| courseId | string | yes | Course ID |
| max | number | – | Max results per page |
| page | string | – | Deprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response. |
| pageToken | string | – | Cursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N… |
No output schema declared.
No examples provided.
gog_classroom_submissions_get ~96
Get a single submission by ID.
| 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. |
| courseId | string | yes | Course ID |
| courseworkId | string | yes | Coursework ID |
| submissionId | string | yes | Submission ID |
No output schema declared.
No examples provided.
gog_classroom_submissions_grade ~125
Grade a student submission. Set draft and/or assigned grade values.
| 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. |
| assigned | string | – | Assigned (final) grade value |
| courseId | string | yes | Course ID |
| courseworkId | string | yes | Coursework ID |
| draft | string | – | Draft grade value |
| submissionId | string | yes | Submission ID |
No output schema declared.
No examples provided.
gog_classroom_submissions_list ~234
List student submissions for a coursework item.
| 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. |
| all | boolean | – | Fetch all pages |
| courseId | string | yes | Course ID |
| courseworkId | string | yes | Coursework ID |
| late | string | – | Filter by late status |
| max | number | – | Max results per page |
| page | string | – | Deprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response. |
| pageToken | string | – | Cursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N… |
| state | string | – | Filter by submission state |
| user | string | – | Filter by student user ID |
No output schema declared.
No examples provided.
gog_classroom_submissions_reclaim ~104
Reclaim a turned-in submission (student action to edit a submission).
| 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. |
| courseId | string | yes | Course ID |
| courseworkId | string | yes | Coursework ID |
| submissionId | string | yes | Submission ID |
No output schema declared.
No examples provided.
gog_classroom_submissions_return ~97
Return a graded submission to the student.
| 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. |
| courseId | string | yes | Course ID |
| courseworkId | string | yes | Coursework ID |
| submissionId | string | yes | Submission ID |
No output schema declared.
No examples provided.
gog_classroom_submissions_turn_in ~99
Turn in a student submission (student action).
| 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. |
| courseId | string | yes | Course ID |
| courseworkId | string | yes | Coursework ID |
| submissionId | string | yes | Submission ID |
No output schema declared.
No examples provided.
gog_classroom_teachers_get ~88
Get a specific teacher in a course.
| 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. |
| courseId | string | yes | Course ID |
| userId | string | yes | Teacher user ID |
No output schema declared.
No examples provided.
gog_classroom_teachers_list ~190
List teachers in a Google Classroom course.
| 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. |
| all | boolean | – | Fetch all pages |
| courseId | string | yes | Course ID |
| max | number | – | Max results per page |
| page | string | – | Deprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response. |
| pageToken | string | – | Cursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N… |
No output schema declared.
No examples provided.
gog_classroom_topics_get ~85
Get a single topic by ID.
| 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. |
| courseId | string | yes | Course ID |
| topicId | string | yes | Topic ID |
No output schema declared.
No examples provided.
gog_classroom_topics_list ~189
List topics in a Google Classroom course.
| 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. |
| all | boolean | – | Fetch all pages |
| courseId | string | yes | Course ID |
| max | number | – | Max results per page |
| page | string | – | Deprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response. |
| pageToken | string | – | Cursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N… |
No output schema declared.
No examples provided.
gog_contacts_create ~125
Create a new Google Contact.
| 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. |
| string | – | Email address | |
| familyName | string | – | Family (last) name |
| givenName | string | yes | Given (first) name |
| org | string | – | Organization/company name |
| phone | string | – | Phone number |
| title | string | – | Job title |
No output schema declared.
No examples provided.
gog_contacts_get ~82
Get a contact by resource 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. |
| resourceName | string | yes | Contact resource name (e.g. people/c12345) |
No output schema declared.
No examples provided.
gog_contacts_list ~61
List all Google Contacts.
| 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. |
No output schema declared.
No examples provided.
gog_contacts_run ~144
Run any gog contacts subcommand not covered by the other tools. Run `gog contacts --help` for the full list of subcommands, or `gog contacts <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 contacts subcommand to run, e.g. "update", "delete", "directory" |
No output schema declared.
No examples provided.
gog_contacts_search ~110
Search personal Google Contacts by name, email, or phone. For searching the Workspace directory (internal users not in your personal contacts), use gog_people_search from gogcli-mcp-contacts.
| 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. |
| query | string | yes | Search query (name, email, or phone) |
No output schema declared.
No examples provided.
gog_docs_cat ~103
Read a Google Doc as plain 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. |
| chips | boolean | – | Render Google Docs smart chips (people, dates, rich links) inline in the text output |
| docId | string | yes | Doc ID (from the URL) |
No output schema declared.
No examples provided.
gog_docs_create ~84
Create a new Google Doc. Returns JSON with the new docId and URL.
| 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. |
| title | string | yes | Title for the new document |
No output schema declared.
No examples provided.
gog_docs_find_replace ~99
Find and replace text 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) |
| find | string | yes | Text to find |
| replace | string | yes | Replacement text |
No output schema declared.
No examples provided.
gog_docs_info ~83
Get Google Doc metadata: title, ID, and other properties.
| 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_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_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_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.
gog_drive_delete ~105
Move a Google Drive file to trash, or permanently delete it with permanent=true (irreversible).
| 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. |
| fileId | string | yes | File ID to delete |
| permanent | boolean | – | Permanently delete instead of moving to trash (irreversible) |
No output schema declared.
No examples provided.
gog_drive_extract_text ~274
Extract readable TEXT from a Drive file — PDF, image, docx, or a native Google Doc — and return it to you directly (closing the webViewLink dead end). Accepts a Drive file id, including the id from gog_gmail_attachment's deliveredVia:"drive" response. For non-Docs it copies the file to a temporary Google Doc so Drive OCRs it (works for scanned PDFs too), exports plain text, then deletes the temp Doc. Operates entirely via the Drive API within the existing drive scope — no host filesystem, no scope widening. For a large file, page through with offset/maxChars.
| 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. |
| fileId | string | yes | Drive file ID (e.g. the id returned by gog_gmail_attachment) |
| maxChars | integer | – | Max characters to return (default: all from offset) |
| ocrLanguage | string | – | BCP-47 language hint for OCR of scanned/image PDFs (e.g. "en", "fr"). Optional. |
| offset | integer | – | Character offset to start from (default: 0) |
No output schema declared.
No examples provided.
gog_drive_get ~142
Get metadata for a Google Drive file.
| 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. |
| fileId | string | yes | File ID |
| view | string | – | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact (the default) drops thumbnailLink — a URL a model… |
No output schema declared.
No examples provided.
gog_drive_ls ~302
List files in a Google Drive folder (default: root).
| 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. |
| allDrives | boolean | – | Include shared drives (default: true). Set false for My Drive only. |
| folderId | string | – | Folder ID to list (default: root) |
| max | number | – | Max results (default: 20) |
| page | string | – | Deprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response. |
| pageToken | string | – | Cursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N… |
| query | string | – | Drive query filter (e.g. "name contains 'budget'") |
| view | string | – | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact (the default) drops owners, parents, thumbnailLink… |
No output schema declared.
No examples provided.
gog_drive_mkdir ~74
Create a new folder in Google Drive.
| 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. |
| name | string | yes | Folder name |
No output schema declared.
No examples provided.
gog_drive_move ~90
Move a file to a different folder in Google Drive.
| 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. |
| fileId | string | yes | File ID to move |
| parentId | string | yes | Destination folder ID |
No output schema declared.
No examples provided.
gog_drive_read_bytes ~120
Fetch a Drive file's raw bytes and return them base64-encoded as an embedded resource — the generic fallback for callers that want the file itself (to parse locally) rather than extracted text. For readable text from a PDF, prefer gog_drive_extract_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. |
| fileId | string | yes | Drive file ID |
No output schema declared.
No examples provided.
gog_drive_rename ~88
Rename a file or folder in Google Drive.
| 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. |
| fileId | string | yes | File or folder ID |
| newName | string | yes | New name |
No output schema declared.
No examples provided.
gog_drive_run ~147
Run any gog drive subcommand not covered by the other tools. Run `gog drive --help` for the full list of subcommands, or `gog drive <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 drive subcommand to run, e.g. "copy", "upload", "download", "permissions" |
No output schema declared.
No examples provided.
gog_drive_search ~142
Search Google Drive files by full-text query.
| 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. |
| query | string | yes | Search query |
| view | string | – | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact (the default) drops thumbnailLink — a URL a model… |
No output schema declared.
No examples provided.
gog_drive_share ~127
Share a Google Drive file or folder.
| 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. |
| domain | string | – | Domain (required when to=domain) |
| string | – | User email (required when to=user) | |
| fileId | string | yes | File or folder ID |
| role | string | – | Permission role (default: reader) |
| to | string | yes | Share target type |
No output schema declared.
No examples provided.
gog_gmail_get ~185
Get a Gmail message by ID. For a long message, sanitizeContent is the cheapest way to keep it in context: it drops the raw MIME payload and the HTML part, which are usually the bulk of the response.
| 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. |
| format | string | – | Message format (default: full) |
| messageId | string | yes | Message ID |
| sanitizeContent | boolean | – | Return agent-oriented sanitized content: HTML stripped, HTTP(S) URLs removed, raw Gmail payloads omitted from the JSON. The largest payload-size reduction available here. Note the URL removal is loss… |
No output schema declared.
No examples provided.
gog_gmail_reply ~1,020
SENDS MAIL — asks the MCP host to show a confirmation prompt with the resolved recipient, subject, and body size. Mail is sent only after the user accepts that prompt. To STAGE a reply instead of sending it, use gog_gmail_drafts_reply (gogcli-mcp-gmail only), which never needs confirmation. Reply to a Gmail message (goes to the original sender only). USE THIS, not gog_gmail_send, whenever you are answering a message: it threads off the original AND inherits its "Re:" subject and quotes its body below yours, which gog_gmail_send does not — a send with replyToMessageId lands in the right thread but reads as a brand-new message, with the original nowhere in it. To answer every participant use gog_gmail_reply_all. The gogcli-mcp-gmail package adds two more routes with the same composition: gog_gmail_autoreply to reply across every message matching a query, and gog_gmail_drafts_reply to stage this exact reply as a draft instead of sending it.
| 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. |
| attach | array | – | File paths to attach (repeatable), resolved ON THE GOG SERVER's filesystem — NOT this client's. Only usable when gog runs on the same machine you do (local stdio); on a hosted deployment (e.g. mcp-ho… |
| attachInline | array | – | Attachments supplied as BYTES rather than as server-side paths — use this whenever you hold a file and the gog server does not, which is always the case on a hosted deployment (e.g. mcp-host). Each e… |
| autoFromAddressedAlias | boolean | – | When from is omitted, send from the verified send-as alias the original message was addressed TO, instead of the account's primary address — so a reply to mail sent to an alias goes back out from tha… |
| bcc | array | – | Add or move recipients to Bcc (repeatable) |
| body | string | – | Reply body (plain text; required unless bodyHtml or bodyHtmlFile is set). Any size — a large body is written to a temp file on the gog server rather than inlined into the command line. Note gog strip… |
| bodyHtml | string | – | Reply body (HTML; optional). Pass the HTML itself at any size — a large body is written to a temp file on the gog server rather than inlined into the command line. Mutually exclusive with bodyHtmlFil… |
| bodyHtmlFile | string | – | Path to an HTML file that ALREADY EXISTS on the gog server for the reply body. gog also accepts "-" for stdin, but this server never writes to gog's stdin, so "-" would hang until the call times out.… |
| cc | array | – | Add or move recipients to Cc (repeatable) |
| from | string | – | Send from this email address (must be a verified send-as alias) |
| messageId | string | yes | Gmail message ID to reply to — the short hex `id` from gog_gmail_get / _search (or gog_gmail_messages_search, gogcli-mcp-gmail only). NOT the threadId, NOT the RFC822 `<…@host>` Message-Id header. |
| noQuote | boolean | – | Do not include the original message quoted below the reply (default: the original is quoted) |
| remove | array | – | Remove these recipients from all fields (repeatable) — e.g. to drop someone from a reply-all. |
| signature | boolean | – | Append the Gmail signature from the active send-as address |
| signatureFile | string | – | Append a local signature file (plain text or HTML), read on the gog server |
| signatureFrom | string | – | Append the Gmail signature from this send-as email address |
| subject | string | – | Override reply subject (default: "Re: <original>"). A changed subject starts a NEW Gmail thread. |
| to | array | – | Add or move recipients to To (repeatable). Added on top of the recipients inherited from the original message. |
No output schema declared.
No examples provided.
gog_gmail_reply_all ~922
SENDS MAIL — asks the MCP host to show a confirmation prompt with the resolved recipients, subject, and body size. Mail is sent only after the user accepts that prompt. To STAGE a reply-all instead of sending it, use gog_gmail_drafts_reply_all (gogcli-mcp-gmail only), which never needs confirmation. Reply to all participants of a Gmail message (the sender plus every To/Cc recipient). Same inherited "Re:" subject and quoted original as gog_gmail_reply. Use the remove flag to drop specific recipients from the reply-all.
| 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. |
| attach | array | – | File paths to attach (repeatable), resolved ON THE GOG SERVER's filesystem — NOT this client's. Only usable when gog runs on the same machine you do (local stdio); on a hosted deployment (e.g. mcp-ho… |
| attachInline | array | – | Attachments supplied as BYTES rather than as server-side paths — use this whenever you hold a file and the gog server does not, which is always the case on a hosted deployment (e.g. mcp-host). Each e… |
| autoFromAddressedAlias | boolean | – | When from is omitted, send from the verified send-as alias the original message was addressed TO, instead of the account's primary address — so a reply to mail sent to an alias goes back out from tha… |
| bcc | array | – | Add or move recipients to Bcc (repeatable) |
| body | string | – | Reply body (plain text; required unless bodyHtml or bodyHtmlFile is set). Any size — a large body is written to a temp file on the gog server rather than inlined into the command line. Note gog strip… |
| bodyHtml | string | – | Reply body (HTML; optional). Pass the HTML itself at any size — a large body is written to a temp file on the gog server rather than inlined into the command line. Mutually exclusive with bodyHtmlFil… |
| bodyHtmlFile | string | – | Path to an HTML file that ALREADY EXISTS on the gog server for the reply body. gog also accepts "-" for stdin, but this server never writes to gog's stdin, so "-" would hang until the call times out.… |
| cc | array | – | Add or move recipients to Cc (repeatable) |
| from | string | – | Send from this email address (must be a verified send-as alias) |
| messageId | string | yes | Gmail message ID to reply to — the short hex `id` from gog_gmail_get / _search (or gog_gmail_messages_search, gogcli-mcp-gmail only). NOT the threadId, NOT the RFC822 `<…@host>` Message-Id header. |
| noQuote | boolean | – | Do not include the original message quoted below the reply (default: the original is quoted) |
| remove | array | – | Remove these recipients from all fields (repeatable) — e.g. to drop someone from a reply-all. |
| signature | boolean | – | Append the Gmail signature from the active send-as address |
| signatureFile | string | – | Append a local signature file (plain text or HTML), read on the gog server |
| signatureFrom | string | – | Append the Gmail signature from this send-as email address |
| subject | string | – | Override reply subject (default: "Re: <original>"). A changed subject starts a NEW Gmail thread. |
| to | array | – | Add or move recipients to To (repeatable). Added on top of the recipients inherited from the original message. |
No output schema declared.
No examples provided.
gog_gmail_run ~146
Run any gog gmail subcommand not covered by the other tools. Run `gog gmail --help` for the full list of subcommands, or `gog gmail <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 gmail subcommand to run, e.g. "archive", "mark-read", "labels" |
No output schema declared.
No examples provided.
gog_gmail_search ~596
Search Gmail threads using Gmail query syntax (e.g. "from:alice subject:invoice is:unread"). The query is passed verbatim to Gmail; a bare name token (from:alison) matches per Gmail's own heuristics, a full address (from:alison@example.com) is exact. To match a contact across several addresses, OR them: from:(a@x.com OR b@y.com). Results are ALWAYS newest-first by Gmail's internalDate — the wrapper sorts them, so the first result is the most recent match and a recent message can never be buried below older ones. IMPORTANT — a response carrying "truncated": true is an INCOMPLETE view of the matches: NEVER report that a message does not exist, or that there is no such mail, on the strength of one. Page through it (pass nextPageToken back as `pageToken`), set maxPages to walk several pages in one call, or narrow the query, and only then draw a conclusion. If you already know the thread, do not search for it at all — read it directly with gog_gmail_thread_get, which returns the whole thread and cannot be truncated or mis-ranked.
| 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. |
| all | boolean | – | Fetch every page instead of one. Removes truncation entirely, at the cost of one API round-trip per page — the reliable way to answer "does any message match?" for a query with few expected hits. |
| fromContact | string | – | Resolve a Google Contact (name or email) to its addresses and AND a from:(addr OR addr) clause onto the query — saves looking the contact up first when you only know who, not which address. |
| max | integer | – | Max results to return (default: 10) |
| maxPages | integer | – | Walk up to this many pages in ONE call and merge the results, instead of returning a single page. Use it for existence questions ("is there any mail matching X?"), which a single page cannot answer.… |
| page | string | – | Deprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response. |
| pageToken | string | – | Cursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N… |
| query | string | yes | Gmail search query |
No output schema declared.
No examples provided.
gog_gmail_send ~724
SENDS MAIL — asks the MCP host to show a confirmation prompt with the recipients, subject, and body size. Mail is sent only after the user accepts that prompt. Two ways to attach a file: `attach` takes paths READ ON THE GOG SERVER, and `attachInline` takes the bytes themselves. Use attachInline unless you know the file exists on the same machine gog runs on — on the hosted connector and any remote deployment there is no shared filesystem, so no path you can name resolves there and `attach` will fail with "no such file or directory". When either is used, the JSON result echoes the attached filenames and byte sizes — check it to confirm the files were embedded. NOT the tool for answering a message: replyToMessageId only files this in the right thread — the subject, recipients and body are entirely yours, and the original is not quoted unless you set quote. Use gog_gmail_reply / gog_gmail_reply_all instead, which inherit all three.
| 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. |
| attach | array | – | File paths to attach (repeatable), resolved ON THE GOG SERVER's filesystem — NOT this client's. Only usable when gog runs on the same machine you do (local stdio); on a hosted deployment (e.g. mcp-ho… |
| attachInline | array | – | Attachments supplied as BYTES rather than as server-side paths — use this whenever you hold a file and the gog server does not, which is always the case on a hosted deployment (e.g. mcp-host). Each e… |
| bcc | string | – | BCC recipients, comma-separated |
| body | string | yes | Email body (plain text). Any size — a large body is written to a temp file on the gog server rather than inlined into the command line. Note gog strips trailing newlines from a file-delivered body. |
| cc | string | – | CC recipients, comma-separated |
| quote | boolean | – | Include the original message quoted below the body. Requires replyToMessageId or threadId. gog quotes by DEFAULT on gmail reply but never on gmail send, so without this a threaded send arrives with t… |
| replyToMessageId | string | – | Message ID to thread this message against — sets In-Reply-To/References only. It does NOT quote the original (pass quote for that), inherit its recipients, or prefix the subject with "Re:". For an ac… |
| subject | string | yes | Subject line |
| threadId | string | – | Thread ID to thread this message within. Same caveat as replyToMessageId: threading only, no quote and no inherited subject or recipients. |
| to | string | yes | Recipient(s), comma-separated |
No output schema declared.
No examples provided.
gog_sheets_append ~198
Append rows to a Google Sheet after the last row with data in the given range. Values may be strings, numbers, booleans, or null. Strings starting with "=" are interpreted as formulas.
| 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. |
| dry_run | boolean | – | Preview the operation without modifying the sheet (gog --dry-run): reports the intended actions and exits without writing. |
| range | string | yes | Range indicating which sheet/columns to append to, e.g. Sheet1!A:C |
| spreadsheetId | string | yes | Spreadsheet ID (from the URL) |
| values | array | yes | 2D array of rows to append. Cells may be string/number/boolean/null; strings starting with "=" are formulas. |
No output schema declared.
No examples provided.
gog_sheets_clear ~125
Clear all values in a Google Sheets range (formatting is preserved).
| 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. |
| dry_run | boolean | – | Preview the operation without modifying the sheet (gog --dry-run): reports the intended actions and exits without writing. |
| range | string | yes | Range in A1 notation to clear |
| spreadsheetId | string | yes | Spreadsheet ID |
No output schema declared.
No examples provided.
gog_sheets_create ~85
Create a new Google Spreadsheet. Returns JSON with the new spreadsheetId and URL.
| 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. |
| title | string | yes | Title for the new spreadsheet |
No output schema declared.
No examples provided.
gog_sheets_find_replace ~97
Find and replace text across an entire Google Spreadsheet.
| 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. |
| find | string | yes | Text to find |
| replace | string | yes | Replacement text |
| spreadsheetId | string | yes | Spreadsheet ID |
No output schema declared.
No examples provided.
gog_sheets_get ~119
Read values from a Google Sheets range. Returns a JSON object with a "values" array of 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. |
| range | string | yes | Range in A1 notation, e.g. Sheet1!A1:B10 or a named range |
| spreadsheetId | string | yes | Spreadsheet ID (from the URL) |
No output schema declared.
No examples provided.
gog_sheets_metadata ~111
Get spreadsheet metadata: title, named ranges, and per-tab properties including grid dimensions (gridProperties.rowCount / columnCount). Use this to learn a sheet's current size before writing — a write outside the grid fails.
| 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. |
| spreadsheetId | string | yes | Spreadsheet ID |
No output schema declared.
No examples provided.
gog_sheets_run ~147
Run any gog sheets subcommand not covered by the other tools. Run `gog sheets --help` for the full list of subcommands, or `gog sheets <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 sheets subcommand to run, e.g. "freeze", "add-tab", "rename-tab" |
No output schema declared.
No examples provided.
What is the io.github.chrischall/gogcli-mcp server?
io.github.chrischall/gogcli-mcp is listed in the public MCP registry as io.github.chrischall/gogcli-mcp. Google Sheets (and more) for Claude via gogcli, read, write, and manage spreadsheets. This page covers its npm package (gogcli-mcp).
Is the io.github.chrischall/gogcli-mcp server safe to use?
io.github.chrischall/gogcli-mcp scores 93 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.chrischall/gogcli-mcp server expose?
io.github.chrischall/gogcli-mcp exposes 115 tools: gog_api_list, gog_api_describe, gog_api_call, gog_appscript_get, gog_appscript_content, and 110 more. Their descriptions and schemas cost roughly 22,515 tokens of context every time the server is loaded.
Is the io.github.chrischall/gogcli-mcp server still maintained?
io.github.chrischall/gogcli-mcp is still listed as active in the MCP registry. We last reached this channel on 21 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 server under?
io.github.chrischall/gogcli-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.