Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.chrischall/gogcli-mcp

NPM · GOGCLI-MCP · SCANNED SEP 21

Google Sheets (and more) for Claude via gogcli — read, write, and manage spreadsheets

Available components

+1 this week 93 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 4 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to chrischall/gogcli-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI 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
Install

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

# add to Claude Code
claude mcp add chrischall-gogcli-mcp -- npx -y gogcli-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "chrischall-gogcli-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "gogcli-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "chrischall-gogcli-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "gogcli-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add chrischall-gogcli-mcp -- npx -y gogcli-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "chrischall-gogcli-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "gogcli-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add chrischall-gogcli-mcp --command npx --arg -y --arg gogcli-mcp
# ~/.hermes/config.yaml
mcp_servers:
  chrischall-gogcli-mcp:
    command: "npx"
    args: ["-y", "gogcli-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "chrischall-gogcli-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "gogcli-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add chrischall-gogcli-mcp -t stdio -c npx -a -y gogcli-mcp
// mcp.json
{
  "mcpServers": {
    "chrischall-gogcli-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "gogcli-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 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
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 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 →

MCP tools · 115 exposed · ~22,515 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
gog_classroom_roster ~226

List the full roster (students and/or teachers) of a Google Classroom course. Omit both flags to return both groups.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
allbooleanFetch all pages
courseIdstringyesCourse ID
maxnumberMax results per page
pagestringDeprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response.
pageTokenstringCursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N…
studentsbooleanInclude students only
teachersbooleanInclude 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.).

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
argsarrayyesAdditional positional args and flags
subcommandstringyesThe gog 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
courseIdstringyesCourse ID
userIdstringyesStudent user ID

No output schema declared.

No examples provided.

gog_classroom_students_list ~190

List students enrolled in a Google Classroom course.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
allbooleanFetch all pages
courseIdstringyesCourse ID
maxnumberMax results per page
pagestringDeprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response.
pageTokenstringCursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N…

No output schema declared.

No examples provided.

gog_classroom_submissions_get ~96

Get a single submission by ID.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
courseIdstringyesCourse ID
courseworkIdstringyesCoursework ID
submissionIdstringyesSubmission ID

No output schema declared.

No examples provided.

gog_classroom_submissions_grade ~125

Grade a student submission. Set draft and/or assigned grade values.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
assignedstringAssigned (final) grade value
courseIdstringyesCourse ID
courseworkIdstringyesCoursework ID
draftstringDraft grade value
submissionIdstringyesSubmission ID

No output schema declared.

No examples provided.

gog_classroom_submissions_list ~234

List student submissions for a coursework item.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
allbooleanFetch all pages
courseIdstringyesCourse ID
courseworkIdstringyesCoursework ID
latestringFilter by late status
maxnumberMax results per page
pagestringDeprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response.
pageTokenstringCursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N…
statestringFilter by submission state
userstringFilter 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).

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
courseIdstringyesCourse ID
courseworkIdstringyesCoursework ID
submissionIdstringyesSubmission ID

No output schema declared.

No examples provided.

gog_classroom_submissions_return ~97

Return a graded submission to the student.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
courseIdstringyesCourse ID
courseworkIdstringyesCoursework ID
submissionIdstringyesSubmission ID

No output schema declared.

No examples provided.

gog_classroom_submissions_turn_in ~99

Turn in a student submission (student action).

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
courseIdstringyesCourse ID
courseworkIdstringyesCoursework ID
submissionIdstringyesSubmission ID

No output schema declared.

No examples provided.

gog_classroom_teachers_get ~88

Get a specific teacher in a course.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
courseIdstringyesCourse ID
userIdstringyesTeacher user ID

No output schema declared.

No examples provided.

gog_classroom_teachers_list ~190

List teachers in a Google Classroom course.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
allbooleanFetch all pages
courseIdstringyesCourse ID
maxnumberMax results per page
pagestringDeprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response.
pageTokenstringCursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N…

No output schema declared.

No examples provided.

gog_classroom_topics_get ~85

Get a single topic by ID.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
courseIdstringyesCourse ID
topicIdstringyesTopic ID

No output schema declared.

No examples provided.

gog_classroom_topics_list ~189

List topics in a Google Classroom course.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
allbooleanFetch all pages
courseIdstringyesCourse ID
maxnumberMax results per page
pagestringDeprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response.
pageTokenstringCursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N…

No output schema declared.

No examples provided.

gog_contacts_create ~125

Create a new Google Contact.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
emailstringEmail address
familyNamestringFamily (last) name
givenNamestringyesGiven (first) name
orgstringOrganization/company name
phonestringPhone number
titlestringJob title

No output schema declared.

No examples provided.

gog_contacts_get ~82

Get a contact by resource name.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
resourceNamestringyesContact resource name (e.g. people/c12345)

No output schema declared.

No examples provided.

gog_contacts_list ~61

List all Google Contacts.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.

No output schema declared.

No examples provided.

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

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
argsarrayyesAdditional positional args and flags
subcommandstringyesThe gog 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
querystringyesSearch query (name, email, or phone)

No output schema declared.

No examples provided.

gog_docs_cat ~103

Read a Google Doc as plain text.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
chipsbooleanRender Google Docs smart chips (people, dates, rich links) inline in the text output
docIdstringyesDoc ID (from the URL)

No output schema declared.

No examples provided.

gog_docs_create ~84

Create a new Google Doc. Returns JSON with the new docId and URL.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
titlestringyesTitle for the new document

No output schema declared.

No examples provided.

gog_docs_find_replace ~99

Find and replace text in a Google Doc.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)
findstringyesText to find
replacestringyesReplacement text

No output schema declared.

No examples provided.

gog_docs_info ~83

Get Google Doc metadata: title, ID, and other properties.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)

No output schema declared.

No examples provided.

gog_docs_run ~150

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

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
argsarrayyesAdditional positional args and flags
subcommandstringyesThe gog docs subcommand to run, e.g. "copy", "clear", "insert", "sed", "export"

No output schema declared.

No examples provided.

gog_docs_structure ~92

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

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
docIdstringyesDoc ID (from the URL)

No output schema declared.

No examples provided.

gog_docs_write ~421

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

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
appendbooleanAppend to existing content instead of replacing (default: false)
batchstringAppend this mutation to a persisted batch (from gog_batch_begin in gogcli-mcp-docs) instead of applying it — nothing changes in the doc until the batch is submitted.
bulletPresetstringWrite a bulleted list with a specific Google Docs bullet glyph preset (e.g. BULLET_DISC_CIRCLE_SQUARE)
bulletsbooleanWrite the paragraphs as a bulleted list with the default disc preset
checkOrphansbooleanBlock the write (exit code 11) if it would orphan an open comment — i.e. remove the text the comment is anchored to. Recommended for replacement writes on commented docs.
docIdstringyesDoc ID (from the URL)
indentEndnumberParagraph end indentation in points
indentFirstLinenumberParagraph first-line indentation in points
indentStartnumberParagraph start indentation in points
keepLinesTogetherbooleanKeep all lines of the paragraph on one page/column (true) or clear that setting (false)
keepWithNextbooleanKeep the paragraph with the next paragraph (true) or clear that setting (false)
noBulletsbooleanRemove bullets or numbering from the written paragraphs
orderedbooleanWrite the paragraphs as a numbered list with the default decimal preset
spaceAbovenumberSpace above the paragraph in points
spaceBelownumberSpace below the paragraph in points
textstringyesText content to write

No output schema declared.

No examples provided.

gog_drive_delete ~105

Move a Google Drive file to trash, or permanently delete it with permanent=true (irreversible).

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
fileIdstringyesFile ID to delete
permanentbooleanPermanently 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
fileIdstringyesDrive file ID (e.g. the id returned by gog_gmail_attachment)
maxCharsintegerMax characters to return (default: all from offset)
ocrLanguagestringBCP-47 language hint for OCR of scanned/image PDFs (e.g. "en", "fr"). Optional.
offsetintegerCharacter offset to start from (default: 0)

No output schema declared.

No examples provided.

gog_drive_get ~142

Get metadata for a Google Drive file.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
fileIdstringyesFile ID
viewstringResponse 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).

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
allDrivesbooleanInclude shared drives (default: true). Set false for My Drive only.
folderIdstringFolder ID to list (default: root)
maxnumberMax results (default: 20)
pagestringDeprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response.
pageTokenstringCursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N…
querystringDrive query filter (e.g. "name contains 'budget'")
viewstringResponse 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
namestringyesFolder name

No output schema declared.

No examples provided.

gog_drive_move ~90

Move a file to a different folder in Google Drive.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
fileIdstringyesFile ID to move
parentIdstringyesDestination 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
fileIdstringyesDrive file ID

No output schema declared.

No examples provided.

gog_drive_rename ~88

Rename a file or folder in Google Drive.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
fileIdstringyesFile or folder ID
newNamestringyesNew 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
argsarrayyesAdditional positional args and flags
subcommandstringyesThe gog 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
querystringyesSearch query
viewstringResponse 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
domainstringDomain (required when to=domain)
emailstringUser email (required when to=user)
fileIdstringyesFile or folder ID
rolestringPermission role (default: reader)
tostringyesShare 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
formatstringMessage format (default: full)
messageIdstringyesMessage ID
sanitizeContentbooleanReturn 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
attacharrayFile 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…
attachInlinearrayAttachments 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…
autoFromAddressedAliasbooleanWhen 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…
bccarrayAdd or move recipients to Bcc (repeatable)
bodystringReply 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…
bodyHtmlstringReply 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…
bodyHtmlFilestringPath 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.…
ccarrayAdd or move recipients to Cc (repeatable)
fromstringSend from this email address (must be a verified send-as alias)
messageIdstringyesGmail 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.
noQuotebooleanDo not include the original message quoted below the reply (default: the original is quoted)
removearrayRemove these recipients from all fields (repeatable) — e.g. to drop someone from a reply-all.
signaturebooleanAppend the Gmail signature from the active send-as address
signatureFilestringAppend a local signature file (plain text or HTML), read on the gog server
signatureFromstringAppend the Gmail signature from this send-as email address
subjectstringOverride reply subject (default: "Re: <original>"). A changed subject starts a NEW Gmail thread.
toarrayAdd 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
attacharrayFile 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…
attachInlinearrayAttachments 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…
autoFromAddressedAliasbooleanWhen 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…
bccarrayAdd or move recipients to Bcc (repeatable)
bodystringReply 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…
bodyHtmlstringReply 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…
bodyHtmlFilestringPath 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.…
ccarrayAdd or move recipients to Cc (repeatable)
fromstringSend from this email address (must be a verified send-as alias)
messageIdstringyesGmail 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.
noQuotebooleanDo not include the original message quoted below the reply (default: the original is quoted)
removearrayRemove these recipients from all fields (repeatable) — e.g. to drop someone from a reply-all.
signaturebooleanAppend the Gmail signature from the active send-as address
signatureFilestringAppend a local signature file (plain text or HTML), read on the gog server
signatureFromstringAppend the Gmail signature from this send-as email address
subjectstringOverride reply subject (default: "Re: <original>"). A changed subject starts a NEW Gmail thread.
toarrayAdd 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
argsarrayyesAdditional positional args and flags
subcommandstringyesThe gog 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
allbooleanFetch 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.
fromContactstringResolve 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.
maxintegerMax results to return (default: 10)
maxPagesintegerWalk 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.…
pagestringDeprecated alias for pageToken, accepted so existing callers keep working. Use pageToken — it matches the nextPageToken field in the response.
pageTokenstringCursor for the NEXT page. Pass back the nextPageToken from a previous response verbatim, keeping the query and max identical: call once, then call again with pageToken=<that value>. A response with N…
querystringyesGmail 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
attacharrayFile 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…
attachInlinearrayAttachments 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…
bccstringBCC recipients, comma-separated
bodystringyesEmail 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.
ccstringCC recipients, comma-separated
quotebooleanInclude 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…
replyToMessageIdstringMessage 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…
subjectstringyesSubject line
threadIdstringThread ID to thread this message within. Same caveat as replyToMessageId: threading only, no quote and no inherited subject or recipients.
tostringyesRecipient(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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
dry_runbooleanPreview the operation without modifying the sheet (gog --dry-run): reports the intended actions and exits without writing.
rangestringyesRange indicating which sheet/columns to append to, e.g. Sheet1!A:C
spreadsheetIdstringyesSpreadsheet ID (from the URL)
valuesarrayyes2D 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).

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
dry_runbooleanPreview the operation without modifying the sheet (gog --dry-run): reports the intended actions and exits without writing.
rangestringyesRange in A1 notation to clear
spreadsheetIdstringyesSpreadsheet 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
titlestringyesTitle for the new spreadsheet

No output schema declared.

No examples provided.

gog_sheets_find_replace ~97

Find and replace text across an entire Google Spreadsheet.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
findstringyesText to find
replacestringyesReplacement text
spreadsheetIdstringyesSpreadsheet 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
rangestringyesRange in A1 notation, e.g. Sheet1!A1:B10 or a named range
spreadsheetIdstringyesSpreadsheet 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
spreadsheetIdstringyesSpreadsheet 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.

NameTypeReqDescription
accountstringGoogle account email to use, e.g. you@gmail.com — must be the full address, not a bare username. Overrides the GOG_ACCOUNT env var. Omit to use the single configured account.
argsarrayyesAdditional positional args and flags
subcommandstringyesThe gog sheets subcommand to run, e.g. "freeze", "add-tab", "rename-tab"

No output schema declared.

No examples provided.

Common questions

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.