Skip to main content
Glama

Modify message

modify_message
DestructiveIdempotent

Mark read/unread, star/unstar, add/remove labels (Gmail labels, Outlook categories), move to a folder or archive. A move can change the id of the message: when the result carries moved_uid, use that id from then on.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uidYesuid from search_messages
seenNo
folderNoDefault: Gmail All Mail, else INBOX
accountYeslist_accounts id
archiveNoRemove from inbox (Gmail) or move to Archive
flaggedNo
move_toNoDestination folder path
add_labelsNoGmail only
remove_labelsNoGmail only

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / account / description
      Previous value: -"Account id from list_accounts"New value: +"list_accounts id"
    • changedInput schema / properties / folder / description
      Previous value: -"Folder/label path. Defaults to All Mail on Gmail, INBOX elsewhere."New value: +"Default: Gmail All Mail, else INBOX"
    • changedInput schema / properties / uid / description
      Previous value: -"uid from search_messages: a number on IMAP mailboxes, an id string on Outlook; pass it back exactly as returned"New value: +"uid from search_messages"
  2. Changed6 schema fields changed
    • addedInput schema / properties / uid / description
      Added value: +"uid from search_messages: a number on IMAP mailboxes, an id string on Outlook; pass it back exactly as returned"
    • addedInput schema / properties / uid / maxLength
      Added value: +512
    • removedInput schema / properties / uid / maximum
      Removed value: -9007199254740991
    • addedInput schema / properties / uid / minLength
      Added value: +1
    • removedInput schema / properties / uid / minimum
      Removed value: -1
    • changedInput schema / properties / uid / type
      Previous value: -"integer"New value: +"string"
  3. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so safety is covered. The description adds real value beyond that by warning that a move can change the message id and that moved_uid from the result should be used going forward, plus noting Gmail vs Outlook label semantics. It omits permission requirements, but this is strong added context.

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?

Two tight sentences: the first front-loads the full operation set, the second delivers the critical id-change caveat. No wasted words and the most important behavioral warning is not buried.

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 9-parameter mutation tool with no output schema, the description covers the primary operations and the important id-mutation side effect. It could say more about conflicting-parameter behavior and permissions, but the agent has enough to invoke it correctly.

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 coverage is 78%, so the schema already documents most parameters including uid, account, folder, archive, and label arrays. The description implicitly maps operations to parameters (read/unread to seen, star to flagged) but does not name them, adding only marginal meaning over the schema.

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 (modify) and enumerates the exact operations (read/unread, star/unstar, labels, move/archive), so an agent can distinguish it from get_message or trash_message. It is clear and concrete, though it does not explicitly name which sibling to use for deletions or bulk operations.

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?

It lists what the tool can do but gives no when-to-use guidance, no exclusions, and no routing to alternatives such as bulk_apply for batch changes or trash_message for deletion. The agent must infer the appropriate tool from operation names alone.

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.