Skip to main content
Glama

Cooper Email

Forward a message

cooper_forward_message
Destructive

Use this when you need to forward a stored message to someone else, including a forwarded header block and the original attachments, on a new thread. Requires auth. Sends real email. Inputs: inbox_id (required; inbox id, username, or email), message_id (required), to (required; recipient addresses), cc, bcc, subject (optional; default is Fwd: plus the original subject unless it already starts with fwd: or fw:), text, html, include_attachments (optional; default true), client_id (optional idempotency key; a retry returns the original message and does not send again). Returns the stored message with a new thread_id. Fails with 400 missing_to, 400 attachments_too_large when copied attachments exceed 10 files, 4 MiB each, or 5 MiB total, 403 recipient_blocked, 403 recipient_suppressed, 403 inbox_paused, 404 message_not_found, 404 inbox_not_found, or 402 when the monthly send limit is reached.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ccNoCc addresses
toYesRecipient email addresses
bccNoBcc addresses
htmlNoOptional HTML note placed before the forwarded block
textNoOptional note placed before the forwarded block
subjectNoSubject line. Omit to use Fwd: plus the original subject, unless it already starts with fwd: or fw:.
inbox_idYesInbox id (inb_…), username, or full email address
client_idNoOptional idempotency key. Reuse it to get the original forward instead of sending twice.
message_idYesMessage id (msg_…) to forward
include_attachmentsNoCopy the original attachments. Default true. Over the size caps returns attachments_too_large.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare the safety profile (openWorld, destructive). Beyond that the description discloses that auth is required, that it sends real email, that the client_id retry returns the original message without re-sending, attachment copy caps (10 files / 4 MiB each / 5 MiB total), the monthly send-limit 402, and the resulting new thread_id. This is materially more than the annotations provide.

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?

Purpose and the 'requires auth / sends real email' warning are front-loaded, and every error code and default rule earns its place. The inline re-enumeration of parameters is somewhat redundant against a schema that already documents them at 100%, making the single block denser than necessary.

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

Completeness5/5

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

No output schema exists, and the description compensates by stating the return value (stored message with a new thread_id) as well as auth, idempotency, size constraints, and the full failure taxonomy. An agent has everything required to invoke and interpret this call.

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 description coverage is 100%, so the baseline is 3. The description adds real value beyond the schema by spelling out the subject default rule interplay, the attachments_too_large caps tied to include_attachments, and the client_id retry semantics, though much of the per-field text is restated from the schema.

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+resource (forward a stored message) plus the distinguishing behaviors: a forwarded header block, original attachments, and a new thread. An agent can tell this apart from send_message, reply_message, and create_draft purely from the description without opening any schema.

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?

"Use this when you need to forward a stored message to someone else" gives clear initiating context, and the error list clarifies failure conditions. It does not explicitly name alternatives (e.g. reply_message vs send_message) or state when not to use it, so it stops short of a 5.

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.