addy.io

io.github.Former-Stranger由 GitHub 账号 Former-Stranger 发布v0.1.2更新于 Oct 24, 2026

Manage addy.io email aliases, recipients, domains, rules and blocklist.

已验证STDIO仅桌面沟通与协作安全与监控

概览

AI 生成的概览

让助手管理 addy.io 邮件别名账户:别名、收件人、用户名、域名、标签、规则、黑名单与投递失败记录。

可以做什么
通过按领域分组的工具覆盖 addy.io API:账户信息、别名(创建、更新、删除、恢复、遗忘、选项、收件人、标签)、批量别名操作、收件人、用户名、自定义域名、标签、规则、黑名单和投递失败记录(R2、R73-R82)。工具标注为只读、写入或破坏性,客户端可在执行风险操作前询问(R83)。删除别名可用 restore_alias 撤销,而遗忘别名不可恢复(R84、R85)。
适用场景
当你希望助手创建或整理邮件别名、按用途给别名打标签、屏蔽发件人、建立过滤规则,或排查发往某别名的邮件为何失败时使用(R65-R71)。适合已有 addy.io 账户、希望在 MCP 客户端中管理别名而非登录网页后台的用户。
运行要求
以 stdio 本地进程运行,通常通过 uvx(需 Python/uv)或 Claude Desktop 的 .mcpb 扩展安装(R16、R25、R11)。需要 addy.io API 密钥,通过 ADDY_API_KEY 或 ADDY_API_KEY_FILE 提供(R32、R33、R35)。自建实例可选 ADDY_BASE_URL(R38)。需要访问 addy.io 的网络连接(R87)。
安装前请注意
API 密钥可完全访问 addy.io 账户(R89);建议使用专用密钥并设置有效期,以便单独吊销,若只需查询可开启 ADDY_READ_ONLY 隐藏会改动账户的工具(R36、R90)。配置文件可能以明文保存密钥(R42)。存在写入与破坏性工具,包括批量操作;遗忘别名不可恢复(R85)。工具返回的别名地址、失败投递邮件等内容会传给 AI 客户端(R91)。

安装

在 SourceWeft 中

  1. 打开 控制台中的 addy.io,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

addy-mcp

[PyPI] [CI] [License: MIT]

An MCP server that lets Claude (and other MCP clients) manage your addy.io account: aliases, recipients, usernames, custom domains, labels, rules, the blocklist and failed deliveries. It covers the full addy.io API.

Unofficial. This project is not affiliated with or endorsed by addy.io.

It runs on your own computer with your own API key. Nothing is hosted, and your key is only ever sent to addy.io.

1. Create an API key

In addy.io go to Settings → API Keys (https://app.addy.io/settings/api) and click Create New API Key. Consider giving it a name like "Claude" and an expiry date.

2. Install

Claude Desktop (easiest)

  1. Download the latest addy-mcp-<version>.mcpb from the Releases page.
  2. Double-click it (or drag it into Settings → Extensions in Claude Desktop) and click Install.
  3. Paste your API key when asked. Claude Desktop stores it encrypted.

Claude Desktop (manual config)

Requires uv. Open Settings → Developer → Edit Config and add:

json
{  "mcpServers": {    "addy": {      "command": "uvx",      "args": ["addy-mcp@latest"],      "env": {        "ADDY_API_KEY": "paste-your-api-key-here"      }    }  }}

Then fully quit and reopen Claude Desktop. If it can't find uvx, replace "uvx" with the full path from which uvx (macOS/Linux) or where uvx (Windows). Desktop apps don't always see your shell's PATH.

Claude Code

bash
claude mcp add addy --scope user --env ADDY_API_KEY=paste-your-api-key-here -- uvx addy-mcp@latest

This makes the server available in Claude Code (the CLI and the desktop app's Code tab). Claude Desktop's chat uses a separate config, set up above.

Other MCP clients

Run uvx addy-mcp@latest as a stdio server with ADDY_API_KEY set in its environment.

@latest makes uvx check PyPI for a new release each time the server starts. Leave it off and uvx keeps using whichever version it first downloaded. To stay on a specific version instead, use e.g. addy-mcp==0.1.1.

Configuration

Environment variableRequiredDescription
ADDY_API_KEYYes*Your addy.io API key.
ADDY_API_KEY_FILENoPath to a file containing the key, instead of ADDY_API_KEY. Takes precedence if both are set. *One of the two is required.
ADDY_READ_ONLYNoSet to true to hide every tool that can change your account. Claude can then only look things up.
ADDY_BASE_URLNoFor self-hosted addy.io instances, e.g. https://addy.example.com. Defaults to https://app.addy.io.

Storing your key securely

The setup above keeps the key in plain text in your MCP client's config file. That's the usual approach for local MCP servers, but you can do better:

  • Claude Desktop extension: the .mcpb install stores the key encrypted. Nothing else to do.

  • macOS Keychain (Claude Code and other clients): keep the key in the Keychain and fetch it only when the server starts, so it's never written to a config file. Add the key (you'll be prompted for it, so it doesn't end up in your shell history):

    bash
    security add-generic-password -a "$USER" -s addy-mcp -w

    Then add the server with a small wrapper instead of --env:

    bash
    claude mcp add addy --scope user -- /bin/sh -c 'ADDY_API_KEY="$(security find-generic-password -a "$USER" -s addy-mcp -w)" || exit 1; export ADDY_API_KEY; exec uvx addy-mcp@latest'

    If the server fails to start because uvx isn't found, replace uvx with its full path from which uvx.

    On Linux, the same pattern works with secret-tool store --label=addy-mcp service addy-mcp and secret-tool lookup service addy-mcp. With 1Password, use op read "op://<vault>/<item>/credential" in place of the security command.

  • Key file: set ADDY_API_KEY_FILE to a file that only you can read (chmod 600), or to a Docker or Kubernetes secret mount.

  • VS Code: let VS Code prompt for the key and keep it in its secret storage:

    json
    {  "inputs": [    { "type": "promptString", "id": "addy-api-key", "description": "addy.io API key", "password": true }  ],  "servers": {    "addy": {      "type": "stdio",      "command": "uvx",      "args": ["addy-mcp@latest"],      "env": { "ADDY_API_KEY": "${input:addy-api-key}" }    }  }}

Whichever you choose, use a separate addy.io key for each app or device, so you can revoke one without breaking the others, and give it an expiry date.

Updating

  • Installed with addy-mcp@latest (the commands above): restart Claude (or your MCP client) and the newest release is picked up automatically.
  • Installed with plain uvx addy-mcp: uvx keeps using the version it first downloaded. Change addy-mcp to addy-mcp@latest in your config and restart Claude.
  • Claude Desktop extension (.mcpb): download the new .mcpb from the Releases page and install it the same way. Your API key and settings are kept, so you won't be asked for them again.

To see which version is newest, run uvx addy-mcp@latest --version (available from 0.1.1). To hear about new releases, watch the repo on GitHub (Watch → Custom → Releases). Changes are listed in the changelog.

What you can ask

  • "Make me a new alias for my Netflix account."
  • "Which of my aliases have blocked the most emails? Deactivate the top 5."
  • "Find every alias I created for shopping sites and label them 'Shopping'."
  • "Block everything from marketing.example.com."
  • "Create a rule that blocks newsletters (List-Unsubscribe header) sent to my shop@ alias."
  • "Why did mail to my bank alias fail last week?"

Tools

AreaTools
Accountget_account_details, get_api_token_details, get_account_notifications, get_domain_options, get_app_version
Aliaseslist_aliases, get_alias, create_alias, update_alias, delete_alias, restore_alias, forget_alias, set_alias_option (active / pinned / attached-recipients-only), set_alias_recipients, set_alias_labels
Bulk aliasesbulk_alias_action (get / activate / deactivate / pin / unpin / delete / restore / forget), bulk_set_alias_recipients, bulk_set_alias_labels
Recipientslist_recipients, get_recipient, create_recipient, update_recipient, delete_recipient, resend_recipient_verification, add_recipient_public_key, remove_recipient_public_key, set_recipient_option (active / can reply-send / encryption / inline encryption / protected headers / strip PGP keys / strip PGP signatures)
Usernameslist_usernames, get_username, create_username, update_username, delete_username, set_username_default_recipient, set_username_option (active / catch-all / can login)
Domainslist_domains, get_domain, create_domain, update_domain, delete_domain, set_domain_default_recipient, check_domain_sending_records, set_domain_option (active / catch-all / shared with family)
Labelslist_labels, get_label, create_label, update_label, delete_label
Ruleslist_rules, get_rule, create_rule, update_rule, delete_rule, reorder_rules, set_rule_active
Blocklistlist_blocklist, add_to_blocklist, remove_from_blocklist
Failed deliverieslist_failed_deliveries, get_failed_delivery, download_failed_delivery, resend_failed_delivery, delete_failed_deliveries

Every tool is labelled read-only, write, or destructive (MCP tool annotations), so clients like Claude can ask before running anything risky. Deleting an alias can be undone with restore_alias. Forgetting an alias is permanent.

Privacy and security

  • The server runs locally and talks only to addy.io (or your ADDY_BASE_URL). It has no telemetry.
  • Your API key gives full access to your addy.io account. Use a dedicated key so you can revoke it on its own, and turn on ADDY_READ_ONLY if you only want Claude to look things up.
  • Anything the tools return (alias addresses, descriptions, failed-delivery emails) is passed to your AI client, and is subject to that client's privacy policy.

Development

bash
git clone https://github.com/Former-Stranger/addy-mcpcd addy-mcpuv run --no-editable python -m pytest      # unit tests (mocked HTTP, never touch a real account)uv run ruff check && uv run ruff format --check

scripts/live_test.py exercises the server against a real account: it creates, updates, deletes, restores and finally forgets a throwaway alias and label. Run it with ADDY_API_KEY=... uv run --no-editable python scripts/live_test.py --yes.

--no-editable: on some macOS setups files in .venv get the "hidden" flag, and Python 3.13+ ignores hidden .pth files, which breaks editable installs. A regular install sidesteps that.

Releasing

  1. Bump version in pyproject.toml, run uv run python scripts/sync_metadata.py, and update CHANGELOG.md.
  2. Commit, then tag and push: git tag v0.2.0 && git push origin v0.2.0.
  3. Approve the pypi deployment when GitHub asks (the release pauses until a maintainer approves it).

The release workflow publishes to PyPI, attaches the .mcpb bundle to a GitHub release, and updates the MCP Registry listing.

A weekly workflow compares the addy.io API docs with scripts/addy_api_snapshot.txt and opens an issue when the API changes. After updating the tools, refresh the snapshot with python3 scripts/check_api_docs.py --update. Dependabot opens weekly pull requests for dependency and GitHub Actions updates.

License

MIT

来源:README.md,提交 28f190f

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

3
  1. v0.1.2最新Oct 14, 2026
  2. v0.1.1Oct 14, 2026
  3. v0.1.0Oct 13, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分