get_email
Read the full content of a single email by ID, including headers, body, and attachments metadata. Side effect: marks the email as read.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Email ID (UUID) |
Read the full content of a single email by ID, including headers, body, and attachments metadata. Side effect: marks the email as read.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Email ID (UUID) |
Changes observed during successful MCP inspections. Dates show when Glama detected each change.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds the key side effect 'marks the email as read', which is crucial. It also enumerates what content is returned. It doesn't mention authentication or rate limits, but those are not critical for a simple read-like operation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences. The first states the purpose and content coverage, the second reveals the side effect. It is front-loaded and contains no filler. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter, no output schema, and low complexity, the description fully captures what the tool does, what it returns, and its side effect. Annotations cover safety profile. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters (only 'id' with description 'Email ID (UUID)'). The description merely repeats the parameter name and doesn't add extra meaning, such as where the ID comes from or format nuances. Baseline 3 is appropriate since the schema already documents it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (read full content), the resource (single email), and the scope (by ID, including headers, body, attachments metadata). It distinguishes from sibling tools like list_emails which likely provide summary metadata without full content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when full content of a specific email is needed). It doesn't explicitly mention alternatives or exclusions, but the context with siblings like 'list_emails' and 'archive_email' makes the usage obvious. A brief 'use this instead of list_emails when you need full content' would be a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most tools are cleanly separated by resource and action, and the descriptions do a good job of cross-referencing related tools. However, there are several close clusters—get_analytics vs generate_report, get_deliverability_score vs run_deliverability_audit, check_dmarc vs verify_domain, and list_emails vs list_inbox_conversations vs get_email—that could cause an agent to pick the wrong one. The detailed descriptions reduce but do not eliminate this ambiguity.
Tool names follow a consistent snake_case verb_noun pattern throughout: create_, get_, list_, send_, toggle_, and so on. Even multi-word actions like select_ab_test_winner and categorize_inbox_emails stay uniform. The only slight deviation is the bare verb upgrade, but it is readable and does not break the overall pattern.
54 tools is far beyond the typical well-scoped MCP surface and lands heavily in the 'too many' range. While the domain is broad, many tools could be consolidated—multiple analytics/reporting tools, several deliverability checks, and separate email/inbox listing tools create redundancy. The sheer number increases selection overhead and makes the toolset harder for an agent to navigate reliably.
The core email marketing lifecycle is represented: domains, contacts, campaigns, templates, automations, sends, and analytics all have main operations. However, there are notable gaps—no update/delete for campaigns, templates, forms, or automations; no create/update/delete for forms; no sandbox enable/disable; and no way to install marketplace items. These are workable gaps but would cause failures for agents trying to perform full lifecycle management.