1. Conduid
  2. Communication
  3. Migadu MCP
MCP server · Communication

Migadu MCP

Migadu MCP Server - Control your Migadu email hosting through AI assistants

Unclaimed MIT comms
49Fair

Scored 20 hours ago · breakdown

About Migadu MCP

Migadu MCP is an MCP server published by Michaelzag in the Communication category: migadu MCP Server - Control your Migadu email hosting through AI assistants.

The repository has 17 stars and 2 forks, with the last commit 5 months ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/Michaelzag/migadu-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Migadu MCP

Powered by Claude · Grounded in docs

I know everything about Migadu MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 20 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v3.6.1v3.6.1 — Advertise companion Claude Code plugin · 22 Apr 2026Adds a top-level `instructions=` string to the FastMCP server so agents running the MCP server standalone (e.g. via `uvx migadu-mcp` outside of the plugin) see a short note about the companion Claude Code plugin and how to install it. When…
v3.6.0v3.6.0 — API coverage + correctness fixes + unified decorator · 22 Apr 2026Full Migadu API coverage plus a batch of correctness fixes and an architectural refresh. Added Domain resource (8 tools) — `list_domains`, `get_domain`, `create_domain`, `update_domain`, `get_domain_records`, `get_domain_diagnostics`,…
v3.5.1v3.5.1 - Performance Optimizations · 18 Jun 2025🚀 Performance Optimizations 🔧 Improvements Reduced token usage in MCP tool descriptions for more efficient LLM interactions Optimized tool metadata while preserving all functionality and safety features Improved MCP client performance…
v3.5.0v3.5.0 - Enhanced Type Safety and Validation · 18 Jun 2025🛡️ Enhanced Type Safety and Validation 🔧 Improvements More Reliable Email Operations: Enhanced validation ensures malformed requests are caught early with clearer error messages Consistent Response Handling: All MCP tools now provide…
v3.4.0v3.4.0 - Type-Safe Email Management with Pydantic 2.0+ · 17 Jun 2025Full Changelog: https://github.com/Michaelzag/migadu-mcp/compare/v3.3.0...v3.4.0

README

Migadu MCP Server

PyPI version

Control your Migadu email hosting from AI assistants via the Model Context Protocol.

What is Migadu?

Migadu is a Swiss email host that prices on actual usage instead of mailbox count, with standard SMTP/IMAP/POP3 and no lock-in.

What this does

Covers the full Migadu API surface as MCP tools:

  • Domains — create, update, activate, DNS records, diagnostics, usage
  • Mailboxes — CRUD, autoresponders, password resets
  • Aliases — forwarding rules without a mailbox behind them
  • Identities — send-as addresses on a mailbox
  • Forwardings — external delivery copies with confirmation flow
  • Rewrites — pattern-based routing rules

Setup

Get an API key at Migadu Admin → My Account → API Keys.

Add to your MCP client config (e.g. Claude Desktop, ~/.claude.json, etc.):

{
  "mcpServers": {
    "migadu": {
      "command": "uvx",
      "args": ["migadu-mcp"],
      "env": {
        "MIGADU_EMAIL": "you@example.com",
        "MIGADU_API_KEY": "your-api-key",
        "MIGADU_DOMAIN": "example.com"
      }
    }
  }
}

Or via the Claude Code CLI:

claude mcp add migadu \
  --env MIGADU_EMAIL=you@example.com \
  --env MIGADU_API_KEY=your-api-key \
  --env MIGADU_DOMAIN=example.com \
  -- uvx migadu-mcp

MIGADU_DOMAIN is optional. It's the default domain used by tools like list_mailboxes when you don't pass one explicitly. Skip it if you manage multiple domains and prefer to pass domain on every call.

Example usage

Once configured, ask your AI assistant things like:

  • "Onboard a new domain acme.example — walk me through DNS setup and activation"
  • "Create mailboxes for alice@acme.example and bob@acme.example"
  • "Set up support@acme.example as an alias to both Alice and Bob"
  • "Configure an autoresponder on vacation@acme.example until January 15th"
  • "Delete the mailboxes for everyone who left: list of addresses..."

Three built-in prompts are registered to scaffold common workflows: mailbox_creation_wizard, bulk_operation_planner, domain_onboarding.

Tools

Domain

list_domains, get_domain, create_domain, update_domain, get_domain_records, get_domain_diagnostics, activate_domain, get_domain_usage

Mailbox

list_mailboxes, get_mailbox, create_mailbox, update_mailbox, delete_mailbox, reset_mailbox_password, set_autoresponder

Alias

list_aliases, get_alias, create_alias, update_alias, delete_alias

Identity

list_identities, get_identity, create_identity, update_identity, delete_identity

Forwarding

list_forwardings, get_forwarding, create_forwarding, update_forwarding, delete_forwarding

Rewrite

list_rewrites, get_rewrite, create_rewrite, update_rewrite, delete_rewrite

All mutation tools (create_*, update_*, delete_*, activate_*, set_autoresponder, reset_mailbox_password) accept a list[dict] of items and return a bulk-result envelope with per-item success/failure. A single-item list works too.

Resources

Read-only views addressable by URI:

  • domains:// — all domains on the account
  • domain://{name} — one domain's full config
  • domain-records://{name} — required DNS records for setup
  • domain-usage://{name} — message + storage metrics
  • mailboxes://{domain} — mailboxes for a domain
  • mailbox://{domain}/{local_part} — one mailbox
  • identities://{domain}/{mailbox} — identities on a mailbox
  • forwardings://{domain}/{mailbox} — forwardings on a mailbox
  • aliases://{domain} — aliases for a domain
  • rewrites://{domain} — rewrite rules for a domain

Notes

  • Migadu's API returns HTTP 500 on successful DELETE (known quirk). The client treats 200/204/404/500 as success on DELETE; other codes raise.
  • One long-lived httpx.AsyncClient per server process, closed on shutdown via FastMCP lifespan hook.
  • list_* tools pass responses through a static summarizer when they exceed ~2000 tokens, returning a count plus a sample instead of flooding context.

Development

git clone https://github.com/Michaelzag/migadu-mcp.git
cd migadu-mcp
uv sync --group dev

# Quality gates (same as CI)
uv run ruff format --check .
uv run ruff check migadu_mcp/ tests/
uv run ty check migadu_mcp/
uv run pytest
uv run bandit -r migadu_mcp/

Tests use respx to mock the Migadu API — no credentials needed. Integration tests (behind @pytest.mark.integration) hit the real API and are skipped by default.

License

MIT — see LICENSE.

README fetched from the repository 20 hours ago. The original is authoritative.

Questions

About Migadu MCP

How do I install Migadu MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Migadu MCP safe to use with an AI agent?

Its trust score is 49 out of 100 (fair). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Migadu MCP still maintained?

Yes — the latest release is v3.6.1 (22 Apr 2026), and the last commit was 5 months ago. The repository has 17 stars.