Skip to main content
Glama

GSuite MCP Lane — Gmail search + Sheets append as MCP tools

Two scoped MCP tools that move seller-inbox rows from Gmail into Google Sheets without Zapier: gold_gmail_search + gold_sheets_append. BYOK Google OAuth, no hosted sync, no stored credentials.

Portfolio showcase extracted from private studio work. Derivative of MarkusPfundstein/mcp-gsuite (MIT, 489★) — original license preserved in THIRD_PARTY_NOTICES.md.

Scope: the tools return honest config_needed stubs and wiring plans until Google OAuth is connected — no data is ever invented. Wire googleapis calls to go fully live.

Tools

Tool

What it does

gold_gmail_search

Search Gmail by query (newer_than:7d seller/order/refund default). Returns {id, threadId, snippet}. Without auth returns an honest config_needed stub — never invented data.

gold_sheets_append

Append [[col1,col2],...] rows to spreadsheet_id / sheet_name. Returns config_needed without auth.

All tools are gold_* prefixed — no collision with upstream mcp-gsuite. A guided 2-step (search then append) lives in src/moat.ts; the 2 granular tools are the primary contract.

Example (without auth — preview):

// gold_gmail_search { "query": "newer_than:7d", "max_results": 20 }
// → { "tool":"gold_gmail_search", "query":"newer_than:7d", "status":"config_needed", "hint":"Set GOOGLE_OAUTH_..." }

// gold_sheets_append { "spreadsheet_id":"1Bxi...","values":[["2026-08-22","order #123","$19"]]}

Related MCP server: charity-gmail-mcp

Quickstart

npm install
npm run build
node dist/index.js

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "gsuite-mcp-lane": {
      "command": "node",
      "args": ["/absolute/path/to/gsuite-mcp-lane/dist/index.js"],
      "env": {
        "GOOGLE_OAUTH_CLIENT_ID": "xxx.apps.googleusercontent.com",
        "GOOGLE_OAUTH_CLIENT_SECRET": "xxx",
        "GOOGLE_OAUTH_REFRESH_TOKEN": "xxx"
      }
    }
  }
}

BYOK setup (Google OAuth — no hosted sync)

  1. Google Cloud project → enable Gmail API + Google Sheets API.

  2. Create OAuth 2.0 Client IDCLIENT_ID + CLIENT_SECRET.

  3. Generate a refresh token (offline access) → REFRESH_TOKEN (or short-lived ACCESS_TOKEN).

Var

Purpose

GOOGLE_OAUTH_CLIENT_ID

OAuth client ID

GOOGLE_OAUTH_CLIENT_SECRET

OAuth client secret

GOOGLE_OAUTH_REFRESH_TOKEN

Long-lived refresh token (preferred)

GOOGLE_OAUTH_ACCESS_TOKEN

Short-lived access token (alt)

GOOGLE_APPLICATION_CREDENTIALS

Service-account JSON path (alt)

Upstream attribution

Derivative code in src/ is original work. Upstream MIT preserved in THIRD_PARTY_NOTICES.md.

Stack

TypeScript · MCP SDK (stdio) · zod schemas · BYOK OAuth

Next steps

Drive/Calendar tools from the same upstream, write-path confirmations, Smithery registry listing.

License

MIT, Copyright 2026 Maxim Konovalov. See LICENSE.

Author

Maxim Konovalov — Haifa · MCP servers + AI pipelines. More lanes + private demos on call.

Available Tools

3 tools
gold_setup_checkA

SETUP CHECK for GSuite MCP Lane — run this FIRST. Shows license tier, which API keys are set vs missing (names only, never values), and the exact next step.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool only shows key names, never values, which is a meaningful behavioral constraint beyond what the empty schema and missing annotations provide. It also states the tool's output scope (license tier, key status, next step). However, it doesn't explicitly state whether the tool makes any external calls or is purely local, which would be useful but is not a major gap given the tool's simple nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The imperative 'run this FIRST' is front-loaded, and the rest of the sentence packs in the resource, the output, and a privacy guarantee (names only, never values). Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter setup check tool, the description is nearly complete. It tells the agent when to run it, what it will learn, and a key behavioral constraint. The only minor gap is that it doesn't describe the exact output format or whether the tool performs any side effects, but given the tool's simplicity and the absence of an output schema, the description carries enough weight to guide correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially complete. The description adds context about what the tool checks and reports, which is valuable even though there are no parameters to document. The baseline for zero-parameter tools is 4, and the description meets that by explaining the tool's purpose and output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('run this FIRST') and resource ('SETUP CHECK for GSuite MCP Lane'), and clearly distinguishes its purpose from the sibling tools by framing it as a setup/readiness check rather than a search or append operation. It also names the exact resource being checked (license tier, API keys).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'run this FIRST', which is a clear usage directive. It also tells the agent what the tool will reveal (license tier, which API keys are set vs missing) and that it should be used before other operations, effectively routing the agent to this tool as a prerequisite step.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gold_sheets_appendB

Google Sheets append rows (BYOK Google OAuth). Append [[col1,col2]] to spreadsheetId. No hosted sync.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeNooptional A1 range e.g. Sheet1!A1
valuesYesrows to append [[a,b],[c,d]]
sheet_nameNotab name default Sheet1
spreadsheet_idYesspreadsheetId from Sheets URL

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It discloses the authentication model (BYOK Google OAuth) and the 'No hosted sync' behavior, which is useful. However, it does not explain mutation effects, error behavior, response format, or what happens when values exceed the provided range.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the key operation and auth model. Minor redundancy exists between 'Append [[col1,col2]] to spreadsheetId' and the schema's values/spreadsheet_id fields, but the overall structure is efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema covers all parameter details)Skip no output schema is provided, so response behavior is unexplained. The description gives the essential operation and auth/sync context, but lacks details about return values, error cases, rate limits, or how the optional range parameter behaves during append.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all four parameters with descriptions, so the baseline is 3. The description repeats spreadsheetId and the values array format but adds no new meaning beyond the schema, and it does not clarify the 'range' parameter or how it interacts with appending.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('append rows' to Google Sheets) and includes the value format [[col1,col2]]. It clearly identifies the core operation, though it does not explicitly contrast with sibling tools or state what it does not do (e.g., overwrite/update).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to use this tool versus alternatives, nor any mention of preconditions such as whether the spreadsheet must already exist or whether the BYOK OAuth scope needs specific permissions. The 'No hosted sync' comment hints at a limitation but is not framed as usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.0
    • First observedgold_gmail_search
    • First observedgold_setup_check
    • First observedgold_sheets_append

TDQS

A3.6/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: setup check, Gmail search, and Sheets append. There is no overlap or ambiguity between them.

Naming Consistency4/5

All tools share a consistent gold_ prefix and use verb_noun naming (setup_check, gmail_search, sheets_append). Minor inconsistency: gmail_search and sheets_append are resource_action while setup_check is action_noun, but the pattern is still predictable.

Tool Count3/5

Three tools is on the low end but reasonable for a narrowly scoped GSuite lane focused on setup, Gmail search, and Sheets append. It feels slightly thin but not inappropriate.

Completeness2/5

The server covers only a small slice of GSuite: setup check, Gmail search, and Sheets append. Obvious gaps include Gmail read/send, Sheets read/update, and any Drive or Calendar operations, so agents would hit dead ends for common workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables accessing Gmail tools (search, read, draft) for a specific Google account via MCP, designed as a custom connector for Claude/Cowork to use alongside a different Google account.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Integrates with the Gmail API to send and read emails through MCP tools using Google OAuth authentication.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Gmail operations like listing, searching, sending emails, and managing labels via MCP tools.
    15
    MIT