@emailalias/mcp
@emailalias/mcp
EmailAlias.io REST API用のMCPサーバーです。Claude Desktop、Cursor、Zed、Cline、その他MCP互換のAIアシスタントから、自然言語を使ってメールエイリアスの作成、管理、監視を行うことができます。
「Substack用の新しいエイリアスを作成して、ラベルを『newsletter』にして」 「amazonのエイリアスを無効にして、スパムが来ているから」 「今週、不審な送信者としてフラグが立てられたエイリアスを見せて」
APIアクセスはプレミアム機能です。ダッシュボードのSettings → API KeysからAPIキーを生成してください。
インストール
Claude Desktop
設定ファイルを編集します:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
mcpServersの下にemailaliasエントリを追加します:
{
"mcpServers": {
"emailalias": {
"command": "npx",
"args": ["-y", "@emailalias/mcp"],
"env": {
"EMAILALIAS_API_KEY": "ea_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}Claude Desktopを再起動します。サーバーが接続されていることを示す🔌プラグアイコンが表示されるはずです。
Cursor、Zed、Cline、およびその他のMCPクライアント
すべてのMCP互換クライアントは同じ形式を受け入れます。正確な設定パスについては各クライアントのドキュメントを参照し、以下を使用してください:
command: npx
args: -y @emailalias/mcp
env: EMAILALIAS_API_KEY=ea_live_...グローバルインストール(オプション)
起動のたびにnpxでパッケージをダウンロードしたくない場合:
npm install -g @emailalias/mcpその後、commandをemailalias-mcpに変更し、-y @emailalias/mcp引数を削除してください。
Related MCP server: Inbound Email MCP Server
設定
環境変数 | 必須 | デフォルト | 備考 |
| ✅ | — | プレミアム限定。 |
| ❌ |
| ステージングやセルフホスト用の上書き。 |
利用可能なツール
ツール | 機能 |
| 転送/ブロック数を含むすべてのエイリアス |
| ランダム/カスタム/タグ付きエイリアスの作成 |
| 有効/無効の切り替え、ラベルの変更 |
| 送信者表示名の変更(プレミアム、24時間のクールダウンあり) |
| エイリアスの完全削除 |
| 利用可能なシステムドメインおよびカスタムドメイン |
| プライマリおよび検証済み転送先メールボックス |
| 新しい転送先の登録(確認メールが送信されます) |
| 転送先の削除(エイリアスで使用中の場合はブロックされます) |
| エイリアスからの送信(プレミアム) |
| アカウント全体のカウンター |
| ページネーション付き転送ログ(過去90日間) |
| 不審な送信者のアラート |
プロンプト例(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?開発
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.js手動で実行する場合は、シェルでEMAILALIAS_API_KEYを設定する必要があります。
セキュリティ上の注意
APIキーはマシン内に留まります。 このサーバーはローカル(stdioトランスポート)で実行され、HTTPS経由でEmailAlias APIを呼び出し、キーを直接送信します。第三者がキーを見ることはありません。
claude_desktop_config.jsonをコミットしないでください。 キーが含まれています。.envファイルと同様に扱ってください。スコープが重要です。 LLMが呼び出すことを決定したMCPツールは、すべてライブアカウントに対して実行されます。
delete_aliasのような破壊的なアクションを承認する前に、モデルが提案する内容を確認してください。
リンク
APIドキュメント: https://emailalias.io/documentation
EmailAlias.io: https://emailalias.io
Model Context Protocol: https://modelcontextprotocol.io
ライセンス
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.
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
Scored across 13 tools
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
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
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Migadu email hosting services through natural language, including creating mailboxes, setting up aliases, configuring autoresponders, and handling bulk operations efficiently.3528 PyPI16MIT
- FlicenseBqualityCmaintenanceEnables 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 gradedqualityBmaintenanceProvides AI assistants with access to PurelyMail's email management API, enabling user, domain, routing, and billing management through natural language.13 npm9MIT
- AlicenseAqualityDmaintenanceEnables reading, sending, and managing emails via IMAP/SMTP through natural language, including listing folders, searching, moving emails, and sending attachments.86 npmMIT