Skip to main content
Glama
gmail-mcp

gmail-mcp

archive_email

Remove a Gmail message from the inbox without deleting it; archived emails remain searchable and accessible.

Instructions

Archive an email — removes it from INBOX without deleting it.
Archived emails are still searchable and accessible via search.

Required:
  message_id (str) — Gmail message ID from list_emails.

Returns on success:
  {"message_id": "...", "labels": ["IMPORTANT", "SENT"]}}
  (INBOX is removed from labels)

Workflow note: This is non-destructive. The email stays in Gmail
  with all other labels intact. Use list_emails(query="is:inbox")
  to confirm it's gone from the inbox view.

Input Schema

NameRequiredDescriptionDefault
message_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.5/5.0
Behavior5/5

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

No annotations exist, so the description carries the full burden and does so: it discloses that INBOX is removed, that other labels persist, that the message remains searchable, and that the operation is non-destructive. It also specifies the exact success payload, including the resulting labels array, which an agent cannot infer from the schema.

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-loaded with the core action, then structured into Required and Returns blocks with the caveat last. Slight redundancy between the opening 'without deleting it' and the later 'This is non-destructive', and the multi-line layout is heavier than strictly needed for a one-parameter tool.

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 single-parameter tool with no output schema, the description covers input provenance, the state change, and the return value, which is most of what an agent needs. Missing is any error behavior, such as an invalid message_id or already-archived message, and whether the call is idempotent.

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 0%, so the description must compensate, and it does by typing message_id as a str and, more importantly, naming its provenance ('Gmail message ID from list_emails'), telling the agent where to source a valid value. It does not describe format expectations or what happens with a malformed or unknown ID.

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?

Names a specific verb and resource ('Archive an email') and immediately defines the exact semantic effect: removal from INBOX without deletion. That definition implicitly separates it from trash_email and remove_label, which are the siblings an agent would otherwise confuse it with.

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?

Gives a concrete when-to-verify workflow ('use list_emails(query="is:inbox") to confirm it's gone from the inbox view') and states the non-destructive context. It stops short of explicitly naming trash_email as the alternative when deletion is intended, so the exclusion is implied rather than stated.

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