@emailalias/mcp
Allows creating email aliases for signing up to Substack, with labeling capabilities.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@emailalias/mcpCreate a new alias for Substack labeled 'newsletters'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@emailalias/mcp
MCP server for the EmailAlias.io REST API. Lets you create, manage, and monitor email aliases from Claude Desktop, Cursor, Zed, Cline, and any other MCP-compatible AI assistant β in natural language.
"Create a new alias for Substack, label it 'newsletter'" "Disable the amazon alias, I'm getting spam" "Show me aliases flagged for suspicious senders this week"
API access is a Premium feature. Generate an API key from Settings β API Keys in the dashboard.
Install
Claude Desktop
Edit your config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the emailalias entry under mcpServers:
{
"mcpServers": {
"emailalias": {
"command": "npx",
"args": ["-y", "@emailalias/mcp"],
"env": {
"EMAILALIAS_API_KEY": "ea_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}Restart Claude Desktop. You should see a π plug icon confirming the server is connected.
Cursor, Zed, Cline, and other MCP clients
Every MCP-compatible client accepts the same shape. Consult your client's docs for the exact config path, then use:
command: npx
args: -y @emailalias/mcp
env: EMAILALIAS_API_KEY=ea_live_...Global install (optional)
If you don't want npx to download the package on each launch:
npm install -g @emailalias/mcpThen change command to emailalias-mcp and drop the -y @emailalias/mcp args.
Related MCP server: Inbound Email MCP Server
Configuration
Env var | Required | Default | Notes |
| β | β | Premium-only. Starts with |
| β |
| Override for staging/self-host. |
Available tools
Tool | What it does |
| All aliases with forwarded/blocked counts |
| Create a random / custom / tagged alias |
| Toggle active, rename label |
| Change the sender display name (Premium, 24h cooldown) |
| Permanently delete an alias |
| System + custom domains available |
| Primary + verified forwarding inboxes |
| Register a new forwarding destination (triggers verify email) |
| Remove a destination (blocks if aliases still use it) |
| Send from an alias (Premium) |
| Account-wide counters |
| Paginated forwarding log (last 90 days) |
| Suspicious-sender alerts |
Example prompts (Claude Desktop)
Create a disposable alias for signing up to Substack. Label it "newsletter".Show me all aliases that have received zero emails in 30 days.Disable every alias labelled "shopping" and list what you disabled.What's my exposure alert count for this month?Development
git clone https://github.com/emailalias/emailalias-mcp.git
cd emailalias-mcp
npm install
npm run build
# Test against the MCP Inspector (installs on demand)
npx @modelcontextprotocol/inspector node dist/index.jsEMAILALIAS_API_KEY must be set in your shell for manual runs.
Security notes
Your API key stays on your machine. This server runs locally (stdio transport), invokes the EmailAlias API over HTTPS, and sends the key directly. No third party sees it.
Don't commit
claude_desktop_config.jsonβ it contains your key. Treat it like.env.Scope matters. Any MCP tool your LLM decides to call executes against your live account. Review what the model proposes before approving destructive actions like
delete_alias.
Links
API docs: https://emailalias.io/documentation
EmailAlias.io: https://emailalias.io
Model Context Protocol: https://modelcontextprotocol.io
License
MIT
Available Tools
13 toolsadd_destinationA
Add a new forwarding destination. Triggers a verification email to that address; the destination is unusable until the recipient clicks the link. Premium feature.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses a key side effect (triggers verification email) and states the destination is unusable until link clicked. Since no annotations exist, this info carries the full burden and is fairly transparent, though it doesn't cover error handling or other effects.
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 brief and directly to the point, with no fluff or redundancy. It efficiently conveys the essential action and outcomes.
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 single-parameter tool with no output schema, the description covers the main action and its immediate consequence (verification). It could mention what happens after clicking the link or any return value, but the context is adequately 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?
The description does not mention the 'email' parameter at all. With 0% schema coverage, the description fails to compensate by explaining the parameter's purpose or constraints beyond the schema's type/format.
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 ('Add a new forwarding destination') with a specific object. It is distinct from sibling tools like delete_destination or list_destinations.
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?
Does not specify when to use this tool versus alternatives. The mention of 'Premium feature' implies a prerequisite but lacks explicit guidance on usage scenarios or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_aliasA
Create a new email alias. 'random' generates a short code; 'custom' uses custom_code; 'tagged' prepends a random code to a user-provided tag. destination_email must be the user's primary email OR a verified forwarding destination. display_name is Premium-only and shown as the sender on outbound mail.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Required when alias_type='tagged' | |
| label | No | Human-friendly label, e.g. 'Shopping' | |
| domain | No | Alias domain (defaults to the account's default) | |
| alias_type | No | random | |
| custom_code | No | Required when alias_type='custom' | |
| display_name | No | Premium-only sender label shown on outbound mail (e.g. 'Sam Carter'). Set on creation activates immediately. | |
| destination_email | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It discloses the meaningful behaviors: different generation modes for aliases, the destination verification requirement, premium gating, and immediate activation of display_name. It does not go as far as describing error handling, duplicate alias behavior, or response shape, which keeps it from a 5.
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 dense sentences front-load the core operation, then explain mode mechanics and constraints. There is no filler, and every sentence contributes information an agent needs to construct a correct call.
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 creation tool with no output schema and no annotations, this description covers the conditional parameter relationships and the key destination_email constraint, while remaining parameters like label and domain are documented in the schema. It does not describe the expected return value or failure modes, but an agent has enough context to invoke the tool correctly.
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 71%, below the high-coverage baseline, so the description needs to add semantics. It does exactly that by explaining alias_type modes, how custom_code and tag relate to those modes, and the validity rule for destination_email. The display_name detail partially repeats the schema, but the 'activates immediately' clarification adds 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?
States a specific action ('Create a new email alias') and then defines the three alias_type modes, so the agent knows exactly what operation and resource are involved. The create verb plus the mode explanation clearly distinguishes this tool from siblings like update_alias, delete_alias, and list_aliases.
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 makes creation context explicit and adds eligibility constraints: destination_email must be primary or verified, and display_name is Premium-only. It does not explicitly name alternatives like update_alias or list_aliases for modifying or viewing aliases, but the creation versus maintenance distinction is clear from the description and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_aliasA
Permanently delete an alias. This cannot be undone. Prefer update_alias with active=false if the user might want it back.
| Name | Required | Description | Default |
|---|---|---|---|
| alias_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of disclosing behavior. It states 'This cannot be undone,' which is a critical warning about the irreversible nature of the operation, and the suggestion of an alternative further clarifies the destructive semantics.
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, consisting of two sentences. It front-loads the primary purpose and then provides a warning and alternative, making it well-structured.
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 essential aspects: what it does, the irreversible consequence, and a safer alternative. Given the tool's simplicity and lack of output schema, this is largely complete, though it omits any mention of the parameter or potential side effects beyond permanence.
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 description does not mention the 'alias_id' parameter at all. With 0% schema description coverage, the description fails to add any meaning beyond the schema, leaving the parameter's purpose and usage unexplained.
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 purpose: 'Permanently delete an alias.' It uses a specific verb and resource, and explicitly suggests an alternative, distinguishing it from related 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?
It provides explicit guidance on when to prefer the alternative: 'Prefer update_alias with active=false if the user might want it back.' This gives a clear condition for choosing this tool over its sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_destinationA
Remove a forwarding destination. Fails with 409 if any alias still forwards to it β reassign those aliases first.
| Name | Required | Description | Default |
|---|---|---|---|
| destination_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden of behavior disclosure. It clearly reveals a non-obvious behavior: the operation is blocked (409) when aliases reference this destination, and it tells the agent how to resolve it. This is meaningful beyond the raw delete semantics, though it does not mention reversibility or whether the deletion cascades, which are minor gaps for a simple delete tool.
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 exceptionally concise: one sentence states the core action and another states the key conflict and remedy. Every word contributes meaning, and the critical prerequisite is front-loaded with an em dash rather than buried in extra prose.
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 single-parameter delete operation with no output schema and no annotations, the description covers the essential context: what is removed, when it fails, and what to do before calling. It omits details like authorization requirements and response format, but those are unlikely to prevent a correct call. The conflict behavior is the main contextual risk, and it is fully disclosed.
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 only parameter is destination_id, and the schema provides its type (uuid) but no description, so schema coverage is 0%. The tool description identifies the resource as a 'forwarding destination' and implies that destination_id is the identifier of the destination to remove, but it does not explicitly confirm the mapping or add any detail about where to find this ID. The parameter is simple and self-explanatory enough that the description provides baseline value, but it does not fully compensate for the absent schema-level description.
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 opens with a specific verb and resource: 'Remove a forwarding destination,' which clearly distinguishes this delete operation from sibling tools like delete_alias. It also immediately identifies the target (forwarding destination) and the primary failure condition, leaving no ambiguity about what the tool does.
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 gives practical usage context by stating that deletion fails with 409 when aliases still forward to the destination and instructs the agent to 'reassign those aliases first.' This tells the agent the prerequisite for successful use, though it does not explicitly compare against alternatives or state when not to use it beyond the conflict scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dashboard_statsA
Account-wide counters: total aliases, active aliases, emails forwarded, emails blocked, exposure alerts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does convey the read-only aggregate nature ('counters') and account-wide scope, which is the essential behavioral trait. However, it does not disclose the time range for forwarded/blocked/exposure counts, how 'active aliases' differs from 'total aliases,' or whether results are live or cached. For a zero-parameter read tool the burden is light, and the core behavior is covered.
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?
One sentence of 12 words with zero filler. The scoping phrase 'Account-wide' is front-loaded, and each listed counter (total aliases, active aliases, emails forwarded, emails blocked, exposure alerts) carries information about the return payload. Every word 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?
There is no output schema, so the description must carry the return-value information, and it does enumerate all five counters. The only gaps are semantic details: time-frame for the counters (all-time vs. trailing period) and the definition of 'active aliases.' Given the low complexity of a zero-parameter read tool, these are minor and an agent can still select and invoke the tool correctly.
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 zero parameters (vacuously 100% coverage), so the rubric baseline is 4. The description adds meaning by explaining why no parameters exist: 'Account-wide' means the tool operates on the whole account with no filters, so an agent understands no inputs are needed. There is no conflict between description and 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 states a specific resource (account-wide counters) and enumerates exactly what is returned: total aliases, active aliases, emails forwarded, emails blocked, exposure alerts. The verb 'get' is in the name. It clearly distinguishes from siblings, since every sibling is a CRUD/action tool on individual records (aliases, domains, destinations, email) while this is the only aggregate reporting tool in the set.
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?
Usage context is only implied: the 'Account-wide counters' wording signals this is the high-level overview tool versus list_aliases/list_email_logs/list_exposure_events for granular records, but there is no explicit when-to-use guidance, no exclusions, and no named alternatives. An agent must infer the choice from sibling names rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_aliasesA
List all email aliases on the authenticated EmailAlias account. Returns id, alias_email, destination_email, active, label, emails_forwarded, emails_blocked.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only 'List' operation and lists the returned fields, but it does not mention potential pagination, ordering, errors, or other behavioral caveats. With no annotations provided, more behavioral detail would strengthen transparency.
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 a single concise sentence that efficiently communicates the action, scope, and return fields with no unnecessary words or repetition.
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 simple parameterless list operation, the description adequately covers the purpose and the returned fields. It lacks an explicit output schema but compensates by naming all returned attributes, so an agent can understand what to expect.
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 tool has zero parameters, so there are no parameter semantics to document. The baseline score of 4 applies because no parameter description is needed.
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 'email aliases', and the scope 'all on the authenticated EmailAlias account'. It distinguishes itself from sibling tools by focusing specifically on aliases rather than domains, destinations, or logs.
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 purpose implies when to use the tool (when needing a list of aliases), but it does not explicitly mention alternative tools or conditions for choosing this one over siblings like list_available_domains or list_destinations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_domainsA
List domains the user can create aliases on (system domains + their verified custom domains).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of making behavior clear. 'List' communicates a read-only operation, and 'verified custom domains' explains an important eligibility constraint. It does not cover pagination or return format, but for a zero-parameter list operation this is sufficient transparency.
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 economical sentence that leads with the action and resource, then adds only the clarifying eligible-domain detail. Every word adds value; nothing is redundant or vague.
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 simple, parameterless list tool, the description fully explains what is returned and the conditions under which a domain appears. It omits only minor details like ordering or whether empty lists are possible, which are not critical 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?
There are no parameters, so there is no parameter semantics for the description to add. The zero-parameter baseline of 4 applies; the description correctly focuses on what the tool returns rather than on inputs.
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?
States the specific verb 'List' and the ressource 'domains the user can create aliases on'. The parenthetical ('system domains + their verified custom domains') tightens the scope and clearly distinguishes it from sibling list tools like list_aliases or list_destinations.
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 clearly signals that this is the tool to call when the user needs to know which domains are eligible for alias creation. It does not explicitly name alternatives or say 'use before create_alias', but the context is strong enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_destinationsA
List the user's forwarding destinations (primary email plus verified extras). is_primary=true marks the account email.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description conveys read-only behavior by saying 'list' and explains the meaning of is_primary, which is helpful. However, it does not mention potential error cases, empty results, or whether the list is sorted, so some behavioral details remain unspecified.
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, front-loaded with the main action, and provides necessary clarification about primary email and verified extras in a single sentence. No unnecessary details are included.
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 simple nature of the tool and absence of an output schema, the description adequately explains what is returned (destinations and primary flag). It could be slightly more explicit about the response format, but the context is sufficient for straightforward use.
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 tool has zero parameters and the schema coverage is 100%, so the baseline score of 4 applies. The description adds no parameter-specific information because none exist.
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 a specific action (list) and resource (forwarding destinations), and distinguishes them from aliases by mentioning primary email and verified extras. This allows an agent to differentiate it from sibling tools like list_aliases.
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 explicitly state when to use this tool versus alternatives such as list_aliases or add_destination. Usage is implied by the verb 'list' but no direct guidance or when-not-to-use conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_email_logsA
Paginated email-forwarding log covering the last 90 days. Each item has sender, subject, direction, status, block_reason.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose useful traits: results are paginated, limited to the last 90 days, and each item contains the listed fields. It does not mention ordering or explicitly say it is read-only, but 'log' and the field list make the read behavior clear.
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?
Two sentences with no filler. The scope and item composition are front-loaded, and every sentence adds 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?
This is a simple read-only listing with two optional paging parameters, and the description covers the data window and returned fields. It lacks a mention of any pagination metadata in the response, but the schema's page/per_page defaults make the call usable with no further context.
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's 'Paginated' at least signals why page and per_page exist. The parameter names and schema constraints (defaults, minimum, maximum) are self-explanatory, so the lack of deeper prose is not a major blocker.
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 identifies a specific resource (email-forwarding log) and scope (last 90 days), plus the fields returned in each item. It is distinct from sibling tools like list_aliases and list_exposure_events, though it uses a noun phrase rather than an explicit verb like 'retrieves'.
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?
There is no guidance on when to choose this tool over list_exposure_events, get_dashboard_stats, or other log-like siblings. The 90-day coverage and pagination provide context, but the description does not state when to use or avoid this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_exposure_eventsA
Suspicious-sender alerts scored against the user's aliases. Use this to identify risky senders and decide which aliases to disable.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It does convey that the results are scored alert data and that the tool is used for identification rather than for performing the disabling action, which implies a read-like list operation. It does not explicitly state read-only status, response shape, or pagination behavior, which are notable gaps.
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 with no filler. The key data description is front-loaded, and the usage sentence earns its place by telling the agent why to call the tool and what decision it supports.
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 simple list operation with two optional pagination parameters and no output schema, the description gives enough to select the tool and initiate a call. However, because annotations are absent and there is no output schema, the lack of an explicit statement about read-only behavior and the expected return payload leaves some context unresolved.
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 needed to compensate for page/per_page semantics, but it contains no mention of pagination or how these parameters affect results. The schema's names, types, defaults, and bounds make the parameters somewhat self-explanatory, yet the description itself adds no meaning 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 identifies the resource ('suspicious-sender alerts scored against the user's aliases') and the intended use ('identify risky senders and decide which aliases to disable'), which distinguishes it from the sibling alias, domain, destination, and email tools. However, it never uses an explicit verb like 'list' or 'returns'βthe first sentence is a noun phraseβso it stops just short of the highest tier.
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 gives concrete context for when the tool should be used: to identify risky senders and inform alias-disabling decisions. It does not name alternatives or state when not to use this tool, so it fits 'clear context, no exclusions' rather than the explicit when/when-not tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailB
Send an email from one of the user's aliases. The recipient sees only the alias address. Requires Premium and a verified, active alias.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| subject | Yes | ||
| alias_id | Yes | ||
| to_email | Yes | ||
| html_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility. It mentions the requirement but does not describe side effects like email logging, rate limits, or any write consequences beyond sending.
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 a single, clear sentence with no unnecessary information, making it highly concise and well-structured.
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 core action and prerequisite but does not mention the optional html_body parameter or any error scenarios. Given the low complexity, it is somewhat complete but could be more detailed.
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 5 parameters with formats, but the description does not explain any of them. Schema coverage is 0%, so the description fails to add meaning 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 action ('Send an email'), the resource ('user's aliases'), and the prerequisite ('Requires Premium and a verified, active alias'), distinguishing it from sibling tools like list_aliases or create_alias.
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 provides a usage condition by mentioning the premium requirement and verified alias, giving some guidance on when to use. However, it does not explicitly compare with alternatives or state when not to use, so it's not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_aliasA
Update an alias: toggle active (enable/disable) or rename its label. To change the sender display name, use update_alias_display_name (separate 24h-cooldown endpoint).
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | ||
| active | No | ||
| alias_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It usefully discloses the two supported update modes and the cooldown difference from the sibling, but it does not state side effects, whether partial updates are allowed, or what happens when only alias_id is supplied.
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?
Two sentences, with the operative behavior first and the cross-reference second. Every clause adds distinct value and there is no filler.
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 small 3-parameter update tool, the description covers the key behavior and the one tricky sibling. It could mention the response/return value since no output schema exists, but that is a minor gap for an otherwise simple mutation.
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 directly maps label to 'rename its label' and active to 'toggle active (enable/disable)'. Only alias_id semantics are left implicit, though the schema's required uuid field makes it self-evident as the target identifier.
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?
States a specific verb ('Update') and resource ('an alias'), and enumerates exactly what can be changed: toggle active or rename label. It also disambiguates from update_alias_display_name, so an agent can distinguish it from the closest sibling.
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 routes display-name changes to update_alias_display_name and even notes the separate 24h-cooldown endpoint. This tells the agent when not to use this tool, leaving no ambiguity against the main alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_alias_display_nameA
Schedule a display-name change on an alias (Premium-only). Edits do NOT take effect immediately β the new value lands in display_name_pending and promotes 24h after the most recent edit. Editing again resets the clock. Capped at 3 edits per rolling 24h per alias. Pass display_name=null (or empty string) to clear; clearing follows the same cooldown. Brand-impersonation patterns (PayPal, Apple, banks, etc.) are rejected with 400.
| Name | Required | Description | Default |
|---|---|---|---|
| alias_id | Yes | ||
| display_name | Yes | New display name, or null to clear. Max 32 characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and delivers: delayed effect with display_name_pending promotion, clock-reset on re-edit, rate limiting, clear-via-null semantics, and a 400 rejection for brand-impersonation patterns. These are exactly the behavioral traits an agent needs to predict side effects.
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?
Front-loaded with the core purpose, and every subsequent sentence adds a distinct operational fact: delay, reset, cooldown, clearing, rejection. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with no annotations and no output schema, the description covers prerequisites, timing, rate limits, clearing, and error conditions. The only gap is the success response shape, which is minor for a 2-parameter tool whose side effects are thoroughly described.
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 only 50% (alias_id is undocumented beyond its uuid format). The description compensates substantially for display_name β null/empty clears, clearing follows the same cooldown, brand patterns rejected β which goes well beyond the schema's one-line parameter note. alias_id semantics are left to name and context, but that is low-risk.
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?
States a specific verb and resource: 'Schedule a display-name change on an alias.' The scheduling qualifier distinguishes it from the sibling update_alias, and the Premium-only note adds a scoping constraint. An agent can tell exactly what this tool does without opening the schema.
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 gives clear context: this is for scheduled (not immediate) changes, Premium-only, with a 24h promotion window and a 3-edit rolling cap. It does not explicitly name a sibling as the alternative for immediate changes, but the scheduling semantics make the intended use unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v1.0.2- First observed
add_destination - First observed
create_alias - First observed
delete_alias - First observed
delete_destination - First observed
get_dashboard_stats - First observed
list_aliases - First observed
list_available_domains - First observed
list_destinations - First observed
list_email_logs - First observed
list_exposure_events - First observed
send_email - First observed
update_alias - First observed
update_alias_display_name
TDQS
Every tool targets a distinct resource or action: aliases, display names, destinations, domains, sending, and monitoring are cleanly separated. The potential overlap between update_alias and update_alias_display_name is explicitly disambiguated, and list_email_logs vs list_exposure_events serve clearly different purposes.
Most tools follow a verb_noun snake_case pattern (list_aliases, create_alias, delete_destination, send_email). Minor inconsistencies exist: get_dashboard_stats breaks the list_* convention, and add_destination vs create_alias use different verbs for the same kind of operation.
13 tools is well-scoped for an email alias management server. Each tool covers a meaningful part of the lifecycle without redundant or filler operations, and the count sits comfortably in the ideal range.
The server covers the full alias lifecycle (create, list, update, delete) plus display-name-specific updates, destination management, sending, and monitoring (stats, logs, exposure alerts). No obvious dead ends or critical missing operations for the core domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- PO6 MailboxOAuthcom.po6
Give AI agents secure access to your email via private aliases with dedicated mailbox storage.
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Email for AI agents β send, receive as a webhook, manage domains, templates, routing.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI assistants to manage Migadu email hosting services through natural language, including creating mailboxes, setting up aliases, configuring autoresponders, and handling bulk operations efficiently.3516MIT
- FlicenseBqualityDmaintenanceEnables AI assistants to interact with the Inbound Email API to manage domains, endpoints, and email communications. Users can send or schedule emails, manage webhooks, and retrieve email threads through natural language commands.142-
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with access to PurelyMail's email management API, enabling user, domain, routing, and billing management through natural language.238MIT
- AlicenseAqualityDmaintenanceEnables reading, sending, and managing emails via IMAP/SMTP through natural language, including listing folders, searching, moving emails, and sending attachments.826MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/emailalias/emailalias-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server