Skip to main content
Glama

Inject test mail

mails.inject

Inject a simulated inbound email into a mailbox (multipart upload). No external mail is sent; use this to simulate inbound mail for flow testing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYesPlain-text body
senderYesSender email address
subjectYesEmail subject
expiresInNoMail lifetime in minutes (>=1). Optional.
mailboxIdYesMailbox ID
attachmentsNoAttachments to include

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesMail ID
bodyNoPlain-text body (present on single-mail fetches)
senderYesSender email address
subjectYesEmail subject
expiresAtNoExpiry timestamp (RFC 3339)
receivedAtNoReceived timestamp (RFC 3339)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only set readOnlyHint=false and destructiveHint=false, so the description carries the burden of explaining behavior. It adds two behavioral facts beyond annotations: the operation is a multipart upload and it does not actually send external mail. It stops short of explaining side effects like mailbox storage or expiration, but the core simulation behavior is disclosed.

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, with the main action and the key non-sending distinction front-loaded. No filler or repetition of schema content.

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?

Combined with a full output schema and a 100%-covered input schema, the description covers purpose, when to use it, and the critical 'no external mail' guarantee. Minor omissions like whether the mail is immediately listable or whether it can be removed are not disclosed, but they are not essential for correct invocation given available structured data.

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 description coverage is 100%, so the schema documents all six parameters, including attachment structure, required fields, and defaults. The description adds only the high-level multipart-upload context, which doesn't illuminate any parameter further; baseline 3 is appropriate.

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?

The description names the specific verb ('inject'), target resource ('a mailbox'), and nature ('simulated inbound email'), and adds 'No external mail is sent' to distinguish it from any real-send tool. It clearly identifies the tool's unique role among mails.* siblings.

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?

The phrase 'use this to simulate inbound mail for flow testing' gives an explicit use case. It does not name an alternative tool, but the caveat 'No external mail is sent' implicitly warns against using it when real outbound mail is needed.

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.

TDQS

A3.6/5.0
Disambiguation5/5

Every tool is scoped to a specific resource and action, and the dot-separated prefixes keep domains, mailboxes, mails, attachments, identities, OAuth clients, and team entities clearly distinct. Even similar actions like archived.delete vs mailboxes.delete or attachments.add vs mails.inject are unambiguous from context.

Naming Consistency5/5

All tools follow the same resource.action pattern with lowercase dot-separated names and consistent plural resource prefixes. Multiword actions like delete_bulk and rotate_secret are consistently snake_cased, so the convention is predictable across all 40 tools.

Tool Count2/5

At 40 tools, the surface is quite large and exceeds the 25+ threshold where tool sets become heavy for an agent to navigate. The grouping is coherent, but this many discrete operations would have been easier to manage with fewer, more consolidated endpoints.

Completeness4/5

The API covers the main lifecycle operations for mailboxes, mails, attachments, archived items, domains, identities, OAuth clients, and team members, with no dead ends in core flows. Minor gaps exist, such as no domains.get, no team.invitations.get, and no mailbox update/expiry operation, but these are workable via list operations.

Resources