Skip to main content
Glama

Connect Google Workspace

google_connect

Connect the company's own Google Workspace so the agent works in its Gmail, Google Calendar and Drive, which stay the source of truth. The company makes a service account in Google Cloud, and its Workspace admin gives the account's client ID domain-wide delegation for gmail.modify, calendar and drive. Give the mailboxes the agent may act as (it never acts as anyone else). Called without secret, it answers with a link for the owner, who pastes the account's JSON key on a Conecto page, so it never passes through the chat (from_a_terminal sends the key file from a terminal); account.credential_added says when it is connected. Each mailbox is checked before anything is kept. On accounts with an owner, cancelling events and replacing files wait for the owner's approval by default. Free. Free.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "mailboxes": "<mailboxes>"
    },
    "name": "google_connect"
  }
}

Input Schema

NameRequiredDescriptionDefault
secretNoThe service account's JSON key. Never shown again. Leave it out to get the link instead.
mailboxesYesThe addresses the agent may act as, like support@ and sales@.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / secret / description
      Previous value: -"The service account's JSON key. Never shown again."New value: +"The service account's JSON key. Never shown again. Leave it out to get the link instead."
    • changedInput schema / required
      Previous value: -[
      -  "secret",
      -  "mailboxes"
      -]New value: +[
      +  "mailboxes"
      +]
  2. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Well beyond the annotations, it discloses that mailboxes are verified before anything is kept, that the agent never acts as anyone not listed, that cancelling events and replacing files wait for owner approval by default, that the secret is never shown again and avoids chat, and that account.credential_added signals completion. These are exactly the auth/approval/side-effect facts the annotations (readOnlyHint=false, destructiveHint=false) cannot convey. It stops short of saying what happens on re-invocation for an already-connected account, despite idempotentHint=false.

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

Conciseness3/5

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

The purpose is front-loaded, which is good, but the body is a dense run-on that crams setup, delegation scopes, link flow, verification, approval defaults and pricing into one paragraph. The trailing 'Free. Free.' is a duplicated fragment that wastes space and reads as an editing artifact.

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 setup tool with no output schema, it covers prerequisites, both invocation paths, the out-of-band secret handoff, the completion signal, and approval gating on risky operations. An agent could call it correctly. Minor gaps: no statement about what a second call does when already connected, and no error/partial-failure behavior for individual mailboxes.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: `mailboxes` is a hard boundary on who the agent may act as, and omitting `secret` changes the tool's whole behavior into a link-issuing flow. That call-mode distinction is behavioral semantics the schema only hints at ('Leave it out to get the link instead').

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 first sentence states a specific verb and resource ('Connect the company's own Google Workspace') and scopes the effect to Gmail, Calendar and Drive. That clearly separates it from the per-service siblings (google_mail_send, google_calendar_create, google_drive_upload) which act on an already-connected account. It never names google_disconnect or calendar_connect/m365_connect, so differentiation is inferred rather than stated.

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

Usage Guidelines4/5

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

The description gives concrete usage context: prerequisites (service account, domain-wide delegation for gmail.modify/calendar/drive), and two explicit call modes — omit `secret` to get an owner link, or pass the key (or use from_a_terminal) to complete it. What's missing is routing to alternatives: nothing says to call google_disconnect to undo it, or that calendar_connect is a different connector.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources