Skip to main content
Glama
orieg

orieg/gws-connector

gws.mail.forward

Create a draft that forwards an existing email to new recipients, optionally adding a comment. Returns a draft ID to send via mail.send_draft.

Instructions

Build a forward DRAFT of an existing message (does NOT send). The draft carries the original message's headers and body in the standard forwarded-message block, optionally prepended with a note. Returns the draft ID — send it with mail.send_draft. Attachments are listed by filename in the quoted block but not re-attached; use mail.get_attachment to pull their bytes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ccNoCC recipients, comma-separated
toYesRecipient email(s), comma-separated
bccNoBCC recipients, comma-separated
accountNoAccount label or email. Uses default if omitted.
commentNoOptional note prepended above the forwarded content
messageIdYesThe message ID to forward

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.5

TDQS

A4.4/5.0
Behavior4/5

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

Goes well beyond the structured annotations (readOnlyHint:false, etc.) by disclosing the side-effect boundary ('does NOT send'), the return value (draft ID), and the critical attachment gotcha (filenames listed but bytes not re-attached, with a remediation pointer to gws.mail.get_attachment). The only minor gap is that draft persistence in the user's drafts folder is implied rather than explicitly stated, though 'Build a forward DRAFT' plus openWorldHint:true largely covers this.

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?

Four sentences, zero fluff, with the single most important info (what it does and doesn't do) front-loaded first. Every sentence earns its place: purpose, behavior, return value + next step, and the attachment caveat with remediation. Dense with high-value behavioral detail while remaining perfectly scannable.

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 6-parameter tool with no output schema and no nested objects, the description covers the essential gaps: it discloses the return value (critical since no output schema exists), the attachment behavior with a remediation path, and the prompt/comment semantics. The only area that could push this to a 5 would be explicit error-case handling (e.g., what happens with invalid message IDs or already-deleted messages), but those are edge cases here.

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?

With 100% schema description coverage, the schema already documents all six parameters, establishing a baseline of 3. The description adds value on top by explaining how the 'comment' param surfaces (as a note prepended above the forwarded content) and contextualizing the 'standard forwarded-message block' structure that shapes how 'to', 'cc', and 'bcc' params will be used in output. This is a meaningful semantic bridge between the schema fields and the runtime behavior.

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?

Uses a specific verb-plus-resource construction ('Build a forward DRAFT of an existing message') with a critical scope qualifier ('does NOT send') that disambiguates it from the sibling tools gws.mail.create_draft and gws.mail.send_draft. The emphasis on 'DRAFT' in caps and the parenthetical warning leave zero ambiguity about what this tool does and, more importantly, doesn't do.

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?

Provides a clear workflow pointer ('send it with mail.send_draft') that tells the agent the natural next step after obtaining the draft ID. The description makes its use case (forwarding existing messages into a draft) clear, though it doesn't explicitly contrast itself against gws.mail.create_draft or state when NOT to use it—those exclusions are implied but not spelled out.

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