Mailgun
Interact with Mailgun API.
Mailgun MCP Server
Overview
A Model Context Protocol (MCP) server for Mailgun, enabling MCP-compatible AI clients to interact with the Mailgun email service.
Note: This MCP server runs locally on your machine. Mailgun does not currently offer a hosted version of this server.
Capabilities
- Messaging — Send emails, retrieve stored messages, resend messages
- Domains — View domain details, verify DNS configuration, manage tracking settings (click, open, unsubscribe)
- Webhooks — List, create, update, and delete event webhooks
- Routes — View and update inbound email routing rules
- Mailing Lists — Create and manage mailing lists and their members
- Templates — Create and manage email templates with versioning
- Analytics — Query sending metrics, usage metrics, and logs
- Stats — View aggregate statistics by domain, tag, provider, device, and country
- Suppressions — View bounces, unsubscribes, complaints, and allowlist entries
- IPs & IP Pools — View IP assignments and dedicated IP pool configuration
- Bounce Classification — Analyze bounce types and delivery issues
Prerequisites
- Node.js (v18 or higher)
- Mailgun account and API key
Quick Start
Configuration
Add the following to your MCP client configuration:
{
"mcpServers": {
"mailgun": {
"command": "npx",
"args": ["-y", "@mailgun/mcp-server"],
"env": {
"MAILGUN_API_KEY": "YOUR-mailgun-api-key",
"MAILGUN_API_REGION": "us"
}
}
}
}
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
MAILGUN_API_KEY | Yes | — | Your Mailgun API key |
MAILGUN_API_REGION | No | us | API region: us or eu |
Client-Specific Config Paths
- Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Desktop (Windows):
%APPDATA%/Claude/claude_desktop_config.json - Claude Code: Run
claude mcp addor edit~/.claude.json
Sample Prompts
Send an Email
Can you send an email to EMAIL_HERE with a funny email body that makes it sound
like it's from the IT Desk from Office Space? Please use the sending domain
DOMAIN_HERE, and make the email from "postmaster@DOMAIN_HERE"!
Note: some MCP clients require a paid plan to invoke tools that send data. If sending fails silently, check your client's plan.
Fetch and Visualize Sending Statistics
Would you be able to make a chart with email delivery statistics for the past week?
Manage Templates
Create a welcome email template for new signups on my domain DOMAIN_HERE.
Include a personalized greeting and a call-to-action button.
Investigate Deliverability
Can you check the bounce classification stats for my account and tell me
what the most common bounce reasons are?
Troubleshoot DNS
Check the DNS verification status for my domain DOMAIN_HERE and tell me
if anything needs fixing.
Review Suppressions
Are there any unsubscribes or complaints for DOMAIN_HERE? Summarize the
top offenders.
Manage Routing Rules
List all my inbound routes and explain what each one does.
Create a Mailing List
Create a mailing list called announcements@DOMAIN_HERE and add these
members: alice@example.com, bob@example.com.
Compare Domains
Compare my sending volume and delivery rates across all my domains for
the past month.
Engagement by Region
Break down my email engagement by country and device for DOMAIN_HERE.
Review Tracking Settings
List all my domains and show which ones have tracking enabled for clicks
and opens.
Development
To run from source, clone the repository and use node directly:
git clone https://github.com/mailgun/mailgun-mcp-server.git
cd mailgun-mcp-server
npm install
npm test
In your MCP client config, replace the npx command with:
"command": "node",
"args": ["/path/to/mailgun-mcp-server/src/mailgun-mcp.js"]
Security Considerations
API key isolation
Your Mailgun API key is passed as an environment variable and is never exposed to the AI model itself — it is only used by the MCP server process to authenticate requests. The server does not log API keys, request parameters, or response data.
Local execution
The server runs locally on your machine. All communication with the Mailgun API is over HTTPS with TLS certificate validation enforced. No data is sent to third-party services beyond the Mailgun API.
API key permissions
Use a dedicated Mailgun API key with permissions scoped to only the operations you need. The server exposes read and update operations but does not expose any delete operations, which limits the blast radius of unintended actions.
Rate limiting
The server does not implement client-side rate limiting. Each tool call from the AI translates directly into a Mailgun API request. The server relies on Mailgun's server-side rate limits to prevent abuse — requests that exceed those limits will return an error to the AI assistant.
Prompt injection
As with any MCP server, a crafted or adversarial prompt could trick the AI assistant into calling operations you did not intend — for example, modifying tracking settings or reading mailing list members. Review your AI assistant's tool-call confirmations before approving actions, especially in untrusted prompt contexts.
Webhook URLs
Webhook create and update operations accept arbitrary URLs provided through the AI assistant. The MCP server passes these URLs to the Mailgun API without additional validation. Mailgun is responsible for validating webhook destinations. Ensure your AI assistant does not set webhook URLs to unintended internal or sensitive addresses.
Input validation
All tool parameters are validated against the Mailgun OpenAPI specification using Zod schemas. However, validation depends on the accuracy of the OpenAPI spec, and some edge-case parameters may fall back to permissive validation. The Mailgun API performs its own server-side validation as an additional layer of protection.
Debugging
The MCP server communicates over stdio. Refer to the MCP Debugging Guide for troubleshooting.
License
Apache 2.0 — see LICENSE for details.
Contributing
We welcome contributions! Please feel free to submit a Pull Request or open an Issue.
Related Servers
YCloud WhatsApp API
Interact with the YCloud WhatsApp API to send and manage messages.
Twilio SMS Server
Send SMS messages using the Twilio API. Functions as an MCP server or a standalone REST API.
LinkedIn Post Generator
Generates professional LinkedIn post drafts from YouTube videos by summarizing their content.
Beyond MCP Server
Provides standardized access to social platform and onchain data using the Neynar API.
Chatterbox TTS
Generates text-to-speech audio with automatic playback using the Chatterbox TTS model.
Webhooks MCP
Send HTTP requests to webhooks with dynamic parameters.
Brevo API
Integrate with the Brevo email marketing platform via its API.
SimpleChatJS
A lightweight AI chat application with MCP support, built with pure JavaScript and Node.js.
Just Facebook
Automate and manage interactions on a Facebook Page using the Facebook Graph API.
WhatsApp MCP
Send and receive messages using the WhatsApp API.