A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Migadu MCP Server - Control your Migadu email hosting through AI assistants
Control your Migadu email hosting from AI assistants via the Model Context Protocol.
Migadu is a Swiss email host that prices on actual usage instead of mailbox count, with standard SMTP/IMAP/POP3 and no lock-in.
Covers the full Migadu API surface as MCP tools:
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.
Once configured, ask your AI assistant things like:
acme.example — walk me through DNS setup and activation"support@acme.example as an alias to both Alice and Bob"vacation@acme.example until January 15th"Three built-in prompts are registered to scaffold common workflows: mailbox_creation_wizard, bulk_operation_planner, domain_onboarding.
list_domains, get_domain, create_domain, update_domain, get_domain_records, get_domain_diagnostics, activate_domain, get_domain_usage
list_mailboxes, get_mailbox, create_mailbox, update_mailbox, delete_mailbox, reset_mailbox_password, set_autoresponder
list_aliases, get_alias, create_alias, update_alias, delete_alias
list_identities, get_identity, create_identity, update_identity, delete_identity
list_forwardings, get_forwarding, create_forwarding, update_forwarding, delete_forwarding
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.
Read-only views addressable by URI:
domains:// — all domains on the accountdomain://{name} — one domain's full configdomain-records://{name} — required DNS records for setupdomain-usage://{name} — message + storage metricsmailboxes://{domain} — mailboxes for a domainmailbox://{domain}/{local_part} — one mailboxidentities://{domain}/{mailbox} — identities on a mailboxforwardings://{domain}/{mailbox} — forwardings on a mailboxaliases://{domain} — aliases for a domainrewrites://{domain} — rewrite rules for a domainhttpx.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.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.
MIT — see LICENSE.
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots