Skip to main content
Glama
iTvX

Google Workspace MCP — Gmail edition

by iTvX

manage_scratchpad

Compose and edit multi-line text in scratchpads, attach files, then save Gmail drafts or send content to Workspace targets; use send_email to deliver mail.

Instructions

Compose, edit, and deliver text content. Use for any multi-line content: emails, documents, descriptions. Compose in the scratchpad, edit by line or JSON path, attach files, then send to any target. Mail goes out only as a Gmail draft from here; to actually send it, pass the final text to send_email. For short one-liners, use the service tool directly instead.

Input Schema

NameRequiredDescriptionDefault
keepNoFor send: keep scratchpad after successful send (default: true)
pathNoFor json_* ops: JSON path (e.g., $.config.name, $.items[0].value)
emailNoFor attach (drive source): account that can read the Drive file
labelNoFor create: optional human-readable label
refIdNoFor detach: attachment reference ID (att-1, att-2, etc.)
valueNoFor json_set, json_insert: value to set or insert (any JSON type)
fileIdNoFor attach (drive source): Drive file ID. The file is downloaded into the workspace at attach time.
formatNoFor create: content format (default: text). Controls validation and addressing mode.
sourceNoFor attach: file source (workspace or drive). For import: resource type (doc, email, sheet, drive_file).
targetNoFor send: delivery target. Mail can only be saved as a draft here (email_draft); sending is send_email.
contentNoText content. For create (pre-fill), insert_lines, append_lines, replace_lines.
endLineNoEnd of line range (inclusive). For replace_lines, remove_lines, copy_lines, view.
filenameNoFor attach (workspace source): filename in workspace
afterLineNoInsert after this line number (0 = prepend). For insert_lines, copy_lines, attach.
operationYescreate: new buffer | view: show content | discard: free buffer | list: show all | insert_lines/append_lines/replace_lines/remove_lines: line editing | copy_lines: copy from another scratchpad | json_get/json_set/json_delete/json_insert: path-addressed JSON editing | attach/detach: file references | import: load from Google Workspace resource | send: deliver to target
startLineNoStart of line range (1-based). For replace_lines, remove_lines, copy_lines, view.
scratchpadIdNoScratchpad ID (sp-XXXX). Required for all operations except create and list.
sourceParamsNoFor import: source-specific parameters (e.g., { documentId, mode } for doc, { messageId } for email)
targetParamsNoFor send: target-specific parameters (e.g., { email, to, subject } for email_draft, { filename } for workspace)
fromScratchpadIdNoFor copy_lines: source scratchpad ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv4.8.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does disclose a critical constraint: mail can only be produced as a Gmail draft here and must be routed through send_email to actually leave. It also narrates the workflow sequence (compose -> edit -> attach -> send). It leaves some side effects uncovered (what discard/keep do to buffer lifetime beyond the enum text), so it is strong but not exhaustive.

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?

Front-loads the one-line purpose, then adds the workflow and routing in tight sentences. Slightly sentence-heavy (seven clauses), but each contributes either scope, workflow, or the sibling routing rule, so there is little waste.

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 20-parameter, 17-operation tool with no output schema, the description orients the agent well: purpose, workflow, and the email-draft/send_email split. The import and json_* addressing modes are left entirely to the schema, which it covers, so nothing critical is missing, though the description itself is not exhaustive over the operation surface.

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?

Schema description coverage is 100% and every parameter, including the 17-value operation enum, is documented in the schema itself. The description adds no syntax or format detail beyond what the schema already provides, so the baseline 3 is correct.

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?

States a specific verb set (compose, edit, deliver) over a named resource (scratchpad text content) and enumerates the covered content types (emails, documents, descriptions). It also distinguishes itself from siblings by naming send_email and 'the service tool directly' as the routes for other cases, so an agent can place it without opening the schema.

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?

Explicit when-to-use ('any multi-line content'), when-not ('for short one-liners, use the service tool directly instead'), and the alternative for the actual send step ('pass the final text to send_email'). Both the selection rule and the exclusion are stated, not implied.

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