By michaelzag
Manage Migadu email hosting (domains, mailboxes, aliases, identities, forwardings, rewrites) with workflow guidance for DNS onboarding, routing decisions, and bulk operations.
Run bulk Migadu mutations safely — ordering, partial-failure detection, and cleanup patterns. Use when the user asks to create, update, or delete more than a handful of mailboxes/aliases/identities/forwardings at once, or mentions anything that implies a batch ("onboard these 30 new hires", "delete everyone from the old team").
Walk the user through configuring an email client (Apple Mail, Thunderbird, Outlook, iOS Mail, Android, mutt, etc.) for a Migadu mailbox. Use when the user asks about IMAP/POP3/SMTP settings, "how do I set up email on my phone/laptop", autoconfig issues, or can't get a specific client to connect.
Translate Migadu's required DNS records (from get_domain_records) into the specific steps for the user's DNS provider — Cloudflare, Route 53, Namecheap, GoDaddy, Porkbun, Squarespace, etc. Use when the user needs to configure DNS after create_domain, when diagnostics are failing, or anywhere they're stuck in the registrar UI.
Onboard a new Migadu email domain end-to-end — create it, fetch DNS records, wait for propagation, run diagnostics, activate, and verify usage. Use when the user wants to add a new domain to their Migadu account or asks "how do I set up email for X.com".
Choose the right Migadu routing primitive — mailbox, alias, rewrite, or forwarding. Use when the user asks for anything involving email delivery to specific addresses, pattern-based routing, "forward X to Y", or anything that could reasonably be solved by more than one of these tools.
Requires secrets
Needs API keys or credentials to function
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Claude Code plugin for Migadu email hosting. Manages domains, mailboxes, aliases, identities, forwardings, and rewrites — and knows how to walk you through the parts that are annoying to get right: DNS setup at your registrar, picking between routing primitives that overlap, configuring an email client, running bulk operations without trashing data.
The plugin bundles the migadu-mcp MCP server (35 tools across the full Migadu API) with five skills that kick in when the tool descriptions alone aren't enough.
Prerequisite: uvx on your PATH.
/plugin marketplace add Michaelzag/migadu-plugin
/plugin install migadu@michaelzag
Then set your credentials in the environment where Claude Code runs:
export [email protected]
export MIGADU_API_KEY=... # https://admin.migadu.com/account/api/keys
export MIGADU_DOMAIN=example.com # optional — default domain for tools that accept one
Restart Claude Code and the migadu MCP server will show up under /mcp as Connected.
Each skill loads on demand when the topic comes up in conversation. Try asking Claude Code the examples below; the relevant skill will activate automatically.
| Skill | What it covers | Try asking |
|---|---|---|
domain-onboarding | Full domain setup: create → DNS records → wait for propagation → diagnostics → activate → usage. Handles the multi-minute external DNS wait. | "Onboard acme.example for email hosting" |
dns-configuration | Registrar-specific record setup for Cloudflare, Route 53, Namecheap, GoDaddy, Porkbun, Squarespace, and others. Covers the Cloudflare-proxy gotcha, DKIM line-wrapping, SPF merging. | "I added the DNS records but diagnostics still fail" |
routing-decisions | Pick between mailbox, alias, rewrite, and forwarding. They overlap — the wrong choice is hard to migrate away from. | "[email protected] should go to both Alice and Bob" |
bulk-safely | Order-of-operations, partial-failure detection, destructive-batch patterns, rollback guidance. | "Create mailboxes for 40 new hires from this CSV" |
client-setup | IMAP/SMTP/POP3 settings for Apple Mail, Thunderbird, Outlook, iOS, Android, mutt. Covers Migadu's shared server hostnames, full-email-as-username pattern, and the Outlook SMTP-auth gotcha. | "How do I set up [email protected] in Outlook?" |
35 tools across six resource types — domains, mailboxes, identities, aliases, forwardings, rewrites. Every mutation tool takes a list[dict] of items and returns a bulk-result envelope with per-item success/failure, so "create 40 mailboxes" and "create 1 mailbox" are the same call shape.
Read operations are summarized when they'd blow past a rough token budget, so list_mailboxes on a 500-mailbox domain returns counts plus a sample instead of flooding context.
Ten read-only MCP resource URIs are registered too (domains://, mailbox://{domain}/{local_part}, domain-records://{name}, and so on) for AI clients that prefer addressing data over tool calls.
Full tool inventory lives in the MCP server repo.
| Variable | Required | Notes |
|---|---|---|
MIGADU_EMAIL | Yes | Admin email on your Migadu account |
MIGADU_API_KEY | Yes | From Migadu Admin → API Keys |
MIGADU_DOMAIN | No | Default domain for tools that accept an optional domain arg |
The plugin's .mcp.json expects these to come through the environment — credentials are never embedded in the plugin itself.
If you manage multiple Migadu domains, leave MIGADU_DOMAIN unset and pass domain explicitly on each tool call. Start with list_domains to see what's available on your account.
MCP server shows "Failed to connect" in /mcp. Almost always missing env vars. Verify MIGADU_EMAIL and MIGADU_API_KEY are set in the environment Claude Code inherited. Run echo $MIGADU_EMAIL in the same shell where you launched Claude Code.
"The token is invalid or expired." The MIGADU_EMAIL must match the admin email tied to the API key. API keys are scoped to a specific admin user, not the organization.
uvx: command not found. Install uv. It ships uvx alongside uv.
Skills don't fire when I expect them to. Skills activate based on the conversation content matching their descriptions. If you want to force one, invoke it directly: /migadu:domain-onboarding (or whichever). The plugin's skills are listed under /plugin once installed.
npx claudepluginhub michaelzag/migadu-plugin --plugin migaduA growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Reliable automation, in-depth debugging, and performance analysis in Chrome using Chrome DevTools and Puppeteer
Comprehensive feature development workflow with specialized agents for codebase exploration, architecture design, and quality review
Memory compression system for Claude Code - persist context across sessions