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 分