Dead Simple Email
Server Details
Give an agent its own inbox: send, receive, and pull signup codes from real email.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- deadsimple-email/deadsimple-email
- GitHub Stars
- 0
- Server Listing
- email.deadsimple/dead-simple-email
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.9/5 across 14 of 14 tools scored. Lowest: 3.2/5.
Each tool has a clear, distinct purpose. While wait_for_email, get_verification_code, and get_verification_link are similar, they target different use cases (generic email waiting vs. specific extraction), and the descriptions clarify their roles.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_inbox, send_email, list_threads). No mixing of conventions or vague verbs.
14 tools is well-scoped for an email server. It covers inbox management, message operations, and verification flows without being overwhelming or sparse.
Covers essential CRUD for inboxes and messages (create/delete/list inbox, send/reply/forward/read messages). Missing message deletion and inbox update, but the core workflow is solid.
Available Tools
14 toolscreate_inboxCreate InboxAInspect
Create a new email inbox. Returns the inbox details including the email address.
Args:
display_name: Friendly name for the inbox (e.g. "Support Bot")
tags: Comma-separated tags (e.g. "support,production")
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| display_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds that it returns details but does not discuss permissions or side effects beyond creation.
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 very concise, with only necessary information: purpose, return value, and parameter documentation. No wasted words.
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?
The description is fairly complete for a simple creation tool with output schema and annotations. It explains what it does and parameter meanings, but lacks error conditions or prerequisites.
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?
Schema coverage is 0%, so description must compensate. It clearly explains each parameter with examples (e.g., 'Support Bot' for display_name, 'support,production' for tags), adding meaning beyond schema titles.
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 it creates a new inbox and returns details including email address, using specific verb and resource. It distinguishes from sibling tools like delete_inbox and list_inboxes.
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?
No explicit guidance on when to use this versus alternatives like sending emails or forwarding. Usage is implied from the name but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_inboxDelete InboxADestructiveIdempotentInspect
Delete an inbox and all its messages.
Args:
inbox_id: The inbox ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| inbox_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true and idempotentHint=true. The description reinforces the destructive nature but does not add new behavioral context (e.g., irreversibility, permissions, or error scenarios). It meets the baseline but offers no extra value.
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 extremely concise: two sentences plus a compact parameter listing. Every part is essential and front-loaded, with no redundant information.
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?
Given the tool's simplicity (one required parameter, output schema present, annotations cover safety), the description is mostly complete. It could mention that deletion is irreversible, but overall it provides enough context for correct invocation.
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?
Schema coverage is 0%, so the description must explain the parameter. It explicitly states 'inbox_id: The inbox ID to delete', clarifying the purpose beyond the schema's generic title. Could be more detailed (e.g., format, source), but it's sufficient.
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 verb 'delete' and the resource 'inbox', specifying that it also deletes all messages. This distinguishes it from sibling tools like create_inbox or list_inboxes.
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?
No guidance is provided on when to use this tool versus alternatives (e.g., when to delete vs. archive, or prerequisites). The description only states what it does, not when or why an agent should invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forward_messageForward MessageAInspect
Forward a message to new recipients.
Args:
inbox_id: The inbox containing the message
message_id: The message ID to forward
to: Recipient email address (comma-separated for multiple)
body: Optional additional text to include
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| body | No | ||
| inbox_id | Yes | ||
| message_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only (readOnlyHint=false) and not destructive, but the description adds no further behavioral context. It does not disclose side effects, permissions, attachment handling, or rate limits, leaving the agent to infer behavior from the name alone.
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 concise and well-structured as a bullet list of parameter explanations. Every sentence adds value, with no wasted words.
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?
The description covers the tool's purpose and all parameters adequately. However, given the presence of many sibling tools and no output schema details (though output schema exists), it lacks usage context and behavioral completeness, making it merely adequate.
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?
Despite 0% schema description coverage, the description explains each parameter beyond the schema titles. It clarifies that 'inbox_id' identifies the containing inbox, 'message_id' is the message to forward, 'to' accepts comma-separated emails, and 'body' is optional. This adds meaningful semantics.
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 tool's function ('Forward a message to new recipients') with a specific verb and resource. It distinguishes itself from sibling tools like reply_to_message and send_email by focusing on forwarding an existing message.
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 usage for forwarding but provides no explicit guidance on when to use this tool versus alternatives (e.g., reply_to_message, send_email). The comma-separated format for 'to' is mentioned, but no when-not or scenario pointers are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageGet UsageARead-onlyIdempotentInspect
Get account usage metrics: inboxes, emails sent/received, plan limits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds value by specifying the return metrics (inboxes, emails, plan limits), which is behavioral context beyond the 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?
A single sentence that is front-loaded with the core purpose and includes specific details. No unnecessary words.
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?
Given the tool has no inputs, an output schema exists (though not shown), and the description lists key metrics, it is fairly complete. Could note that it returns current status, but still adequate.
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?
There are 0 parameters, so the description does not need to explain them. The baseline for no parameters is 4, and the description does not undermine that.
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 verb 'Get' and resource 'account usage metrics', and lists specific metrics (inboxes, emails, plan limits). It distinguishes this tool from sibling tools which are all email/inbox operations.
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 implicitly indicates when to use (to retrieve account usage metrics) but does not explicitly state when not to use or mention alternatives. However, the purpose is clear enough for an agent to select appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verification_codeGet Verification CodeARead-onlyIdempotentInspect
Wait for a verification/OTP email and return the extracted code.
Waits for the next new inbound email, then returns the auto-extracted
verification code (and any magic link). Perfect for autonomous sign-ups.
Args:
inbox_id: The inbox to watch
from_contains: Only match senders containing this text (optional)
timeout_seconds: Max seconds to wait (default 60)
| Name | Required | Description | Default |
|---|---|---|---|
| inbox_id | Yes | ||
| from_contains | No | ||
| timeout_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint. The description adds behavioral details: waiting for new email, auto-extracting code and magic link, and mentioning timeout. No contradictions 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 concise, with a front-loaded summary and structured argument list. Every sentence adds value, no extraneous content.
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?
The tool has 3 parameters and an output schema. The description covers the main behavior and parameters sufficiently. Some details like return format could be expanded, but given the complexity, it is complete enough.
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 has 0% description coverage, but the description provides an 'Args' block explaining each parameter (inbox_id, from_contains, timeout_seconds) with clear semantics. This adds value beyond the schema.
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 tool waits for a verification/OTP email and returns the extracted code. It uses specific verbs ('Wait', 'return') and identifies the resource. It distinguishes from siblings like 'get_verification_link' and 'wait_for_email' by specifying it extracts codes.
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 explicitly says 'Perfect for autonomous sign-ups', providing clear context. However, it does not contrast with alternative tools like 'get_verification_link' or specify when to avoid using this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verification_linkGet Verification LinkARead-onlyIdempotentInspect
Wait for an email and return the extracted magic link / verification URL.
Args:
inbox_id: The inbox to watch
from_contains: Only match senders containing this text (optional)
timeout_seconds: Max seconds to wait (default 60)
| Name | Required | Description | Default |
|---|---|---|---|
| inbox_id | Yes | ||
| from_contains | No | ||
| timeout_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive hints. The description adds meaningful behavioral context: it waits for an email (polling), supports a timeout parameter, and extracts a link. This goes beyond the 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 extremely concise: one sentence for purpose followed by parameter explanations. Front-loaded with the core action, no fluff. Every sentence contributes 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?
For a relatively simple tool with an output schema (presumably documenting the return format), the description covers waiting behavior and parameter semantics adequately. It lacks details on failure cases (e.g., timeout), but overall it is sufficient.
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?
Schema description coverage is 0%, so the description must compensate. It explains all three parameters: inbox_id (inbox to watch), from_contains (only match senders), timeout_seconds (max seconds to wait, default 60). This adds meaning beyond the schema titles.
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 tool waits for an email and extracts a magic link/verification URL, which is a specific verb+resource pair. It distinguishes from siblings like get_verification_code (returns a code) and wait_for_email (no extraction).
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 usage when expecting a magic link but does not explicitly state when to use this tool over alternatives like get_verification_code or wait_for_email. No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_inboxesList InboxesARead-onlyIdempotentInspect
List all email inboxes in the account.
Args:
limit: Maximum number of inboxes to return (default 20)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds paging behavior via 'limit' parameter, but no further behavioral details (e.g., empty results).
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?
Extremely concise: one-line purpose and one-line parameter description. No wasted text.
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 output schema present and clear annotations, the description sufficiently covers the tool's function and parameters for a simple list operation.
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?
Schema coverage is 0%, but description explains the 'limit' parameter's meaning ('Maximum number of inboxes to return (default 20)'), adding value beyond the schema's default value.
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?
Clearly states the action 'List all email inboxes in the account.' Distinguishes from siblings (create, delete, etc.).
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?
No guidance on when to use this tool vs alternatives like create_inbox or list_threads. Missing context for selective usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_threadsList ThreadsBRead-onlyIdempotentInspect
List conversation threads in an inbox.
Args:
inbox_id: The inbox to list threads for
limit: Maximum number of threads to return (default 10)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| inbox_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which cover safety and idempotency. The description adds that limit defaults to 10, but this information is partly inferable from the schema. No additional behavioral traits like pagination behavior, ordering, or threading details are disclosed. The annotations carry the transparency burden effectively.
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 very concise: one sentence for the main purpose and two more for parameters. It is front-loaded with the purpose. However, the parameter descriptions could be integrated into the main sentence or formatted more cleanly. Overall, little wasted text.
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?
There is an output schema present, so explaining return values is not required. The tool has low complexity (2 params, non-destructive). The description covers the basic purpose and parameters but does not mention sorting order (e.g., chronological), whether threads are complete or summarized, or how pagination works beyond the limit parameter. Given annotations and output schema, it is adequate but could be more complete.
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?
Schema description coverage is 0%, so the description must compensate. It provides labels for both parameters: 'The inbox to list threads for' and 'Maximum number of threads to return (default 10)'. This adds context beyond the raw schema keys, but it does not explain constraints (e.g., valid inbox_id format, limit min/max) or behavior when limit is exceeded. The default value is useful.
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 verb 'List', the resource 'conversation threads', and the scope 'in an inbox'. It is distinct from sibling tools like read_thread (which retrieves a single thread) and list_inboxes (which lists inboxes).
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 does not provide any guidance on when to use this tool versus alternatives. It lacks explicit context such as 'use this to get an overview of threads in an inbox' or 'use read_thread for details on a specific thread'. No when-not-to-use or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_messageRead MessageARead-onlyIdempotentInspect
Read a single message with full body content.
Args:
inbox_id: The inbox containing the message
message_id: The message ID to read
| Name | Required | Description | Default |
|---|---|---|---|
| inbox_id | Yes | ||
| message_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint, so agent knows safety profile. Description adds 'full body content' beyond annotations. No contradictions.
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?
Extremely concise: one sentence plus arg list. Front-loaded with purpose, no redundant text.
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?
Simple tool with output schema and annotations; description covers core function and args. Could mention authentication or scope, but overall sufficient.
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?
Schema properties lack descriptions (0% coverage). Description's args section provides meaningful explanations for inbox_id and message_id, compensating for schema gap.
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?
Description clearly states 'Read a single message with full body content', using specific verb and resource. Differentiates from sibling 'read_messages' (plural) and 'read_thread' by specifying 'single message'.
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?
No guidance on when to use this tool vs alternatives like 'read_messages' or 'read_thread'. Does not mention prerequisites, when not to use, or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_messagesList MessagesBRead-onlyIdempotentInspect
Read recent messages in an inbox.
Args:
inbox_id: The inbox to read from
limit: Maximum number of messages to return (default 10)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| inbox_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only and idempotent, but the description adds minimal behavioral detail—it mentions 'recent' without defining recency or ordering, and omits pagination info. The description does not contradict 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 short and to the point, with no wasted words. However, the structure could be improved by separating the purpose from parameter descriptions.
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?
Despite annotations and an output schema, the description lacks key pipeline details: ordering, pagination, and what 'recent' means. For a list tool, this incomplete guidance may lead agents to misuse or misunderstand the scope.
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?
Schema coverage is 0%, so the description should compensate, but it merely restates the schema titles ('The inbox to read from', 'Maximum number of messages to return') without adding value like examples or default behavior nuances.
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 'Read recent messages in an inbox' using a specific verb and resource, and distinguishes from siblings like 'read_message' (single) and 'list_inboxes' (different resource).
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?
No guidance on when to use this tool versus alternatives like 'read_message' or 'list_threads'. The description lacks context about the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_threadRead ThreadARead-onlyIdempotentInspect
Read all messages in a conversation thread.
Args:
inbox_id: The inbox containing the thread
thread_id: The thread ID to read
| Name | Required | Description | Default |
|---|---|---|---|
| inbox_id | Yes | ||
| thread_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description's mention of 'Read all messages' is consistent but adds no new behavioral context beyond stating it reads a thread. With annotations covering safety and idempotency, the description's contribution is minimal.
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?
Three sentences with purpose first, followed by concise parameter list. No redundant information. Every sentence earns its place.
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?
Tool is simple (read operation) and has an output schema, so the description does not need to explain return values. It covers required parameters and core purpose. Missing details like ordering or pagination, but acceptable for a straightforward read-all tool.
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?
Schema description coverage is 0%, so the description carries full burden. It adds meaning by stating 'The inbox containing the thread' and 'The thread ID to read,' which explains the role of each parameter beyond the schema titles. However, it does not specify parameter format or constraints (e.g., UUID), leaving some ambiguity.
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?
Description clearly states 'Read all messages in a conversation thread.' The verb 'read' and resource 'messages in a thread' are specific. It distinguishes from siblings like 'read_message' (single message) and 'list_threads' (list threads without reading messages).
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?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites like obtaining inbox_id and thread_id from other tools (e.g., list_threads). No exclusions or when-not-to-use hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_messageReply to MessageBInspect
Reply to a message. Threading headers are set automatically.
Args:
inbox_id: The inbox containing the message
message_id: The message ID to reply to
body: Reply body (plain text)
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| inbox_id | Yes | ||
| message_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is a write operation (readOnlyHint false) and not destructive. Description adds the behavioral trait of automatic threading header setting, but does not disclose side effects on the original message or permission requirements.
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?
Description is concise with the purpose stated upfront, followed by a useful behavioral note and parameter list. No unnecessary words, but the 'Args:' label is slightly redundant.
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?
Covers the core functionality and parameters. Missing return value description despite existence of output schema. No mention of error conditions or prerequisites like inbox existence. Adequate but not comprehensive.
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?
Schema coverage is 0% but description adds meaningful explanations for all three parameters: inbox_id (which inbox), message_id (which message), body (plain text). This adds value beyond the schema's title-only definitions.
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?
Clearly states 'Reply to a message' with a verb and resource. Mentions threading header automation. However, does not differentiate from sibling tool 'forward_message' which could cause confusion.
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?
No guidance on when to use this tool versus alternatives like 'forward_message' or 'send_email'. No prerequisites or context provided for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailSend EmailAInspect
Send an email from an inbox.
Args:
inbox_id: The inbox to send from
to: Recipient email address (comma-separated for multiple)
subject: Email subject line
body: Email body (plain text)
cc: CC recipients (comma-separated, optional)
bcc: BCC recipients (comma-separated, optional)
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | Yes | ||
| bcc | No | ||
| body | Yes | ||
| subject | Yes | ||
| inbox_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds context that the body is plain text and that recipients are comma-separated. It does not contradict annotations and provides useful behavioral details beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose. The parameter list is efficient and uses clear formatting. Every sentence 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?
Given the tool's moderate complexity (6 params, output schema exists), the description covers parameters well but lacks context on error handling, authentication, or limitations (e.g., attachments). More guidance would improve completeness.
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?
Schema coverage is 0%, but the description compensates by explaining all six parameters: inbox_id, to, subject, body (plain text), cc, bcc (comma-separated). It adds meaning beyond the schema's titles and defaults.
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 'Send an email from an inbox.' It provides a specific verb (send) and resource (email), and distinguishes from siblings like reply_to_message and forward_message by focusing on sending a new email.
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 usage (when you need to send a new email) but lacks explicit guidance on when not to use it or what alternatives exist. No prerequisites or failures are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_for_emailWait for EmailARead-onlyIdempotentInspect
Block until a NEW inbound email arrives in the inbox, then return it.
Use for signup/verification flows: trigger the action that sends the email,
then call this to receive it. Only emails arriving after this call count.
Args:
inbox_id: The inbox to watch
from_contains: Only match senders containing this text (optional)
subject_contains: Only match subjects containing this text (optional)
timeout_seconds: Max seconds to wait (default 60)
| Name | Required | Description | Default |
|---|---|---|---|
| inbox_id | Yes | ||
| from_contains | No | ||
| timeout_seconds | No | ||
| subject_contains | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool blocks until a new email arrives and only returns emails arriving after the call. Annotations agree (readOnlyHint, no destructive). Missing explicit mention of timeout behavior (return null or throw?), but the timeout_seconds parameter and its default are documented, partially covering this.
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 well-structured with a summary line, usage note, and parameter list. It is concise but not excessively terse; however, the parameter list could be slightly more integrated into the flow.
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?
Covers all parameters, usage context, and the blocking behavior. With an output schema present, return value details are not needed. Lacks explicit comparison to sibling tools, but the tool's niche is clear.
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?
Schema has 0% description coverage, but the description's Args section provides clear explanations for all four parameters, including the purpose of from_contains, subject_contains, and the default for timeout_seconds. This fully compensates for the schema gaps.
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 uses a specific verb phrase 'Block until a NEW inbound email arrives' and clearly identifies the resource (email inbox). It distinguishes from sibling tools like read_message or list_threads by emphasizing the blocking wait for new messages.
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?
Explicitly recommends use for signup/verification flows and provides a clear workflow: 'trigger the action that sends the email, then call this to receive it.' It also notes that only emails arriving after the call count. However, it does not mention when not to use or contrast with alternatives like using read_message for existing emails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Flicense-qualityCmaintenanceGive AI agents their own email inboxes. Create, send, receive, and manage email entirely via MCP tools.

InboxAPI CLIofficial
Alicense-qualityBmaintenanceProvides an AI agent with its own email address to send, receive, and manage emails via MCP. No email server setup required.12412MIT
AgenticMailofficial
AlicenseAqualityAmaintenanceReal email and SMS for AI agents. Run a local mail server with disposable inboxes — agents send and receive real email, fetch verification codes, and drive a real inbox without going through any third-party email API.100192MIT- Alicense-qualityDmaintenanceEmail for AI agents. Create inboxes, send and receive emails without phone or CAPTCHA.6MIT
Your Connectors
Sign in to create a connector for this server.