addy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ADDY_API_KEY | No | Your addy.io API key. | |
| ADDY_BASE_URL | No | For self-hosted addy.io instances, e.g. `https://addy.example.com`. Defaults to `https://app.addy.io`. | |
| ADDY_READ_ONLY | No | Set to `true` to hide every tool that can change your account. Claude can then only look things up. | |
| ADDY_API_KEY_FILE | No | Path to a file containing the key, instead of ADDY_API_KEY. Takes precedence if both are set. One of the two is required. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Tools for managing an addy.io (formerly AnonAddy) email-forwarding account.
Concepts:
Alias: a forwarding address (e.g. shop123@anonaddy.me). Mail sent to it is forwarded to one or more recipients.
Recipient: a real mailbox that aliases forward to. New recipients must be verified by email.
Username: an extra username giving its own subdomain (e.g. anything@myname.anonaddy.com).
Domain: a custom domain the user owns and has connected to addy.io.
Rule: conditions + actions applied to forwarded/replied/sent mail.
Blocklist: senders/domains whose mail is rejected.
Most tools take ids (UUIDs). Look them up with the list_* tools first. Deleting an alias is reversible (restore_alias); forgetting an alias is permanent. Confirm with the user before deleting or forgetting anything.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_account_detailsA | Get account details: username, plan/subscription, bandwidth used, default alias domain/format, limits, etc. |
| get_api_token_detailsA | Get the name, creation date and expiry of the API token this server is using. |
| get_account_notificationsB | Get account notifications/announcements from addy.io. |
| get_domain_optionsA | Get the domains available for creating aliases, plus the account's default alias domain and format. |
| get_app_versionA | Get the addy.io app version (only available on self-hosted instances). |
| list_aliasesB | List or search aliases. Results are paginated; the response includes |
| get_aliasA | Get a single alias, including its recipients, labels and statistics. |
| create_aliasB | Create a new alias. Use get_domain_options to see which domains are available. |
| update_aliasB | Update an alias's description, from name, or labels. Only the fields you pass are changed. |
| delete_aliasA | Delete an alias. It stops receiving mail but can be brought back with restore_alias. |
| restore_aliasC | Restore a deleted alias. |
| forget_aliasA | PERMANENTLY forget an alias: it is disassociated from the account and cannot be restored. |
| set_alias_optionB | Turn an alias option on or off (activate/deactivate, pin/unpin, limit reply/send to attached recipients). |
| set_alias_recipientsB | Replace the set of recipients an alias forwards to. |
| set_alias_labelsB | Replace the labels attached to an alias. |
| bulk_alias_actionA | Apply one action to up to 25 aliases at once (or fetch them with action='get'). |
| bulk_set_alias_recipientsB | Replace the recipients of up to 25 aliases at once. |
| bulk_set_alias_labelsB | Replace the labels of up to 25 aliases at once. |
| list_recipientsA | List the account's recipients (the real mailboxes aliases forward to). |
| get_recipientB | Get a single recipient and its settings. |
| create_recipientA | Add a new recipient. addy.io emails it a verification link; it can't be used until verified. |
| update_recipientB | Set a recipient's description. |
| delete_recipientA | Delete a recipient. Aliases that used it fall back to the default recipient. |
| resend_recipient_verificationA | Resend the verification email for an unverified recipient. |
| add_recipient_public_keyA | Add a public GPG key to a recipient so forwarded mail can be encrypted. |
| remove_recipient_public_keyB | Remove a recipient's public GPG key (this also turns off encryption for it). |
| set_recipient_optionC | Turn a recipient option on or off. |
| list_usernamesA | List the account's usernames (each gives a subdomain like name.anonaddy.com for on-the-fly aliases). |
| get_usernameC | Get a single username and its settings. |
| create_usernameA | Create an additional username (counts against the plan's username limit). |
| update_usernameC | Update a username's description, from name, or auto-create regex. |
| delete_usernameB | Delete a username. Its aliases stop working. |
| set_username_default_recipientA | Set (or clear) the default recipient for aliases on a username. |
| set_username_optionC | Turn a username option on or off. |
| list_domainsA | List the custom domains connected to the account. |
| get_domainA | Get a single custom domain and its settings/verification status. |
| create_domainA | Add a custom domain. Its DNS must already have the TXT verification record addy.io shows in its dashboard. |
| update_domainC | Update a custom domain's description, from name, or auto-create regex. |
| delete_domainA | Delete a custom domain. Its aliases stop working. |
| set_domain_default_recipientB | Set (or clear) the default recipient for aliases on a custom domain. |
| check_domain_sending_recordsB | Check a custom domain's DNS records (SPF, DKIM, DMARC, ...) for sending/replying from aliases. |
| set_domain_optionC | Turn a custom domain option on or off. |
| list_labelsC | List the labels used to organise aliases. |
| get_labelC | Get a single label. |
| create_labelC | Create a label for organising aliases. |
| update_labelB | Rename a label or change its colour. |
| delete_labelB | Delete a label (aliases are kept, just unlabelled). |
| list_rulesA | List all rules, in the order they are applied. |
| get_ruleA | Get a single rule with its conditions and actions. |
| create_ruleA | Create a rule that runs actions on emails matching conditions. Example: block newsletters to a specific alias -> conditions=[{type:'alias', match:'is exactly', values:['shop@anonaddy.me']}, {type:'header', match:'exists', values:['List-Unsubscribe']}], actions=[{type:'block'}]. |
| update_ruleA | Update a rule. Only the fields you pass change; the rest are kept from the current rule. |
| delete_ruleC | Delete a rule. |
| reorder_rulesB | Set the order rules are applied in. |
| set_rule_activeC | Activate or deactivate a rule. |
| list_blocklistB | List blocked senders/domains, with how many emails each has blocked. |
| add_to_blocklistA | Block mail from sender email addresses or whole domains, across all aliases. |
| remove_from_blocklistA | Unblock blocklist entries by id (see list_blocklist). |
| list_failed_deliveriesA | List emails that addy.io failed to deliver (or quarantined). |
| get_failed_deliveryB | Get details of a failed delivery (sender, alias, bounce reason, ...). |
| download_failed_deliveryA | Download the raw email (.eml source) of a failed delivery, if addy.io stored it. |
| resend_failed_deliveryB | Retry delivering a failed or quarantined email. |
| delete_failed_deliveriesB | Delete failed delivery records (and any stored email). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 62 tools
Each tool targets a distinct resource+action, and the descriptions carefully separate delete_alias / restore_alias / forget_alias and the three bulk tools. Some overlap remains: update_alias can change labels while set_alias_labels exists, and bulk_alias_action acts as a catch-all that shadows the per-alias update/delete/option tools. The generic set_*_option tools also require guessing valid option names.
The set is dominated by a clean verb_noun snake_case pattern (get_alias, create_recipient, set_domain_option, resend_failed_delivery). A few deviations break the pattern: bulk_alias_action is vague where its siblings are bulk_set_alias_* , forget_alias uses a non-standard verb, and blocklist tools mix list_blocklist with add_to_blocklist / remove_from_blocklist.
62 tools is heavy for an alias-management API; four near-identical set_*_option tools (alias, domain, username, recipient) plus four bulk variants could be consolidated. Several resources get full CRUD plus option/default-recipient/DNS sub-tools, inflating the surface well past the comfortable 3-15 range.
Coverage is broad and lifecycle-complete for aliases, recipients, domains, usernames, rules, labels, blocklist and failed deliveries, including soft-delete/restore and bulk paths. Minor gaps: API tokens are read-only (no create/revoke), and there is no standalone alias statistics or DNS-record-set operation beyond checking/setting options.