Early access

Mailgun MCP server

Inspect sending domains, delivery events and suppression records before sending an authorized email. Access is gated: request enablement for your organization before connecting.

EmailAPI keyMCP + RESTmailgun.com
AUDIT LOG · MAILGUNPOLICY: acme-support
09:41:07 · claude · u_8f2read
mailgun.list_events
List events✓ allowed · 212ms
09:41:08 · claude · u_8f2read
mailgun.get_stats
Get stats✓ allowed · 164ms
09:41:09 · claude · u_8f2write
mailgun.send_email
Send email✓ approved · approved by user
ILLUSTRATIVE POLICY TRACE · NOT A LIVE RECEIPT
01 · USE CASES

Agent workflows for Mailgun.

01

List domains

Use when discovering sending domains and their verification state. Returns one bounded page; total_count is the full matching count. Does not expose SMTP credentials.

02

Get domain

Use when checking the connected sending domain and its verification state. The domain is fixed by the connection; SMTP credentials and DNS payloads are excluded.

03

Send email

Use when sending authorized text email from the connected domain to one recipient. test_mode defaults true (no delivery, still billed); false notifies them. Suppressed recipients are silently dropped; queued is not delivered. No unsolicited mail or blind retries; reconcile first (no idempotency).

02 · ACTIONS

9 Mailgun actions, graded by risk.

These actions come from the Arc0 registry. Your identity, provider permissions and Arc0 policies determine which actions can run.

read

8

Look things up, subject to your permissions.

  • mailgun.list_domains
    List domains

    Use when discovering sending domains and their verification state. Returns one bounded page; total_count is the full matching count. Does not expose SMTP credentials.

  • mailgun.get_domain
    Get domain

    Use when checking the connected sending domain and its verification state. The domain is fixed by the connection; SMTP credentials and DNS payloads are excluded.

  • mailgun.list_events
    List events

    Use when reconciling one recipient by message ID within seven days; returns a bounded first page. Events API is deprecated for Logs. Retention depends on plan: an empty old window does not prove no send occurred. Event IDs differ from message IDs.

  • mailgun.list_bounces
    List bounces

    Use when inspecting permanent delivery failures on the connected domain. Returns only the first bounded page, optionally filtered by address prefix; not an export. Never use this to reverse a recipient opt-out.

  • mailgun.list_unsubscribes
    List unsubscribes

    Use when inspecting recipient opt-outs on the connected domain. Returns only the first bounded page, optionally filtered by address prefix; not an export. Never use this to reverse a recipient opt-out.

  • mailgun.list_complaints
    List complaints

    Use when inspecting spam complaints on the connected domain. Returns only the first bounded page, optionally filtered by address prefix; not an export. Never use this to reverse a recipient opt-out.

  • mailgun.get_unsubscribe
    Get unsubscribe

    Use when checking whether one exact recipient has an unsubscribe record on the connected domain. Returns structural status only; a missing record is not consent to send. Never use to remove an opt-out.

  • mailgun.get_stats
    Get stats

    Use when checking daily delivery or engagement totals for the connected domain over at most 31 days. Legacy Stats API is deprecated in favor of Metrics. Omitted counters stay absent rather than becoming invented zeros.

write

1

Create and change things. Allow, or ask the user first.

  • mailgun.send_email
    Send email

    Use when sending authorized text email from the connected domain to one recipient. test_mode defaults true (no delivery, still billed); false notifies them. Suppressed recipients are silently dropped; queued is not delivered. No unsolicited mail or blind retries; reconcile first (no idempotency).

destructive

0

Delete, cancel or archive. Ask first, or deny outright.

  • No destructive actions.
03 · POLICIES AND AUDIT

Control access to Mailgun.

After early access is enabled, connect the intended Mailgun account, authorize your AI client and set policies for its tools.

Provider permissions and Arc0 policy both apply. Allow reads, require approval for selected writes, or deny destructive actions. The audit log records execution decisions.

Configure policies and approvals

Example policy choices

  • Read actions: allow where authorized
  • mailgun.send_email: require approval

Arc0 MCP endpoint: https://api.arc0.ai/mcp

04 · AUTH AND DATA

How Mailgun connects.

Connect Mailgun using API key. OAuth grants the provider scopes shown during consent; API keys and other credentials retain the permissions configured at the provider. Arc0 stores credentials in its encrypted vault and does not pass them to the model. Disconnect to remove access through Arc0; revoke a key at the provider to invalidate it there. Token refresh and provider-side revocation depend on the authentication lane and provider.

The connection serves authorized calls through Arc0 MCP and REST. How Arc0 handles credentials →

AUTH
API key
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · AI CLIENTS

Use Mailgun with your AI client.

Request access to Mailgun first. An Arc0 administrator must enable it for your organization before these actions appear. Then authorize your AI client separately. It only receives tools and accounts allowed for that identity.

Mailgun with Claude

Claude Desktop + Claude Code

  1. In Claude Desktop, add Arc0 through the remote MCP settings and use OAuth. Follow the generic remote-client steps if your account’s interface differs.
  2. For Claude Code, run the command below. Open /mcp, select Arc0, and authenticate in your browser. Select your workspace and review access.
  3. Check the connection with claude mcp get arc0.
claude mcp add --transport http --scope user arc0 https://api.arc0.ai/mcp
Full MCP setup and troubleshooting
All apps for Claude
Mailgun with ChatGPT

ChatGPT on the web

  1. Open Plugins in ChatGPT, select the plus button, then Add custom MCP server.
  2. Name it Arc0, enter the server URL below, and choose OAuth. Use dynamic client registration if asked; no Arc0 API key is needed.
  3. Review the notice and select Create as a plugin. Complete Arc0 sign-in, workspace selection and consent, then install and select the plugin in your conversation. Labels and access vary by account; managed workspaces may require administrator approval.
https://api.arc0.ai/mcp
Full MCP setup and troubleshooting
All apps for ChatGPT
Mailgun with OpenAI Codex

Codex app + CLI

  1. Run the registration command below. The app and CLI share ~/.codex/config.toml.
  2. Complete browser OAuth, choose your Arc0 workspace, and review access. If authentication does not start, run codex mcp login arc0.
  3. Check codex mcp list, then open a new Codex chat. Inspect an existing arc0 entry before changing it.
codex mcp add arc0 --url https://api.arc0.ai/mcp
Full MCP setup and troubleshooting
All apps for OpenAI Codex
Mailgun with Cursor

Remote MCP setup

  1. Add Arc0 in your client’s remote MCP settings using the server URL below.
  2. Choose OAuth, sign in to Arc0, select the intended workspace and review access.
  3. Confirm the server is connected and start with an allowed read. These are generic remote-MCP steps; consult your client’s settings for its current interface.
https://api.arc0.ai/mcp
Full MCP setup and troubleshooting
All apps for Cursor
Mailgun with VS Code

Remote MCP setup

  1. Add a remote HTTP MCP server named Arc0 using the URL below.
  2. Use OAuth and finish Arc0 sign-in, workspace selection and consent.
  3. Confirm discovery succeeds before requesting a read. These are generic remote-MCP steps; client UI and availability may differ.
https://api.arc0.ai/mcp
Full MCP setup and troubleshooting
Mailgun with Any MCP client

Streamable HTTP

  1. Use a client that supports remote MCP over Streamable HTTP. Add the server URL below and choose OAuth.
  2. For a client without OAuth, use a self-bound API key with execute permission in the X-API-Key header. Store it in secret storage or an environment variable, outside source control. Never send both an API key and an OAuth bearer token.
  3. Use the MCP clients guide for the SDK transport example and Embedded identity for business-managed end users.
https://api.arc0.ai/mcp
Full MCP setup and troubleshooting

After setup, ask your agent to find an allowed read action, load its schema, and execute it on the intended account. Check Activity for the receipt. A connected MCP client alone does not confirm a successful provider call.

07 · FAQ

Mailgun and Arc0, answered.

Q01

Does Mailgun work with Claude Desktop and Claude Code?

Yes, after early access is enabled for your organization and you connect the intended account. Use Arc0’s remote MCP endpoint with OAuth. Claude Code has a documented registration command; Desktop uses the generic remote-client setup.

Q02

Can I use Mailgun with OpenAI Codex, ChatGPT and Cursor?

Yes, after early access is enabled for your organization and you connect the intended account. Codex and ChatGPT have setup instructions in Arc0’s MCP clients guide. Cursor uses the generic remote-MCP steps. Tool access remains scoped to the authorized identity.

Q03

Is this the official Mailgun MCP server?

This is Arc0’s integration page, not a claim of an official Mailgun server. Arc0 adds a shared connection, policy and audit experience across apps. Consult Mailgun for its own current MCP offerings.

Q04

Which Mailgun actions are supported?

9 registry-defined actions: 8 read, 1 write and 0 destructive. Provider permissions, access enablement and Arc0 policy determine what can execute.

Q05

Which permissions does Mailgun need?

Connect Mailgun using API key. OAuth grants the provider scopes shown during consent; API keys and other credentials retain the permissions configured at the provider. Arc0 stores credentials in its encrypted vault and does not pass them to the model. Disconnect to remove access through Arc0; revoke a key at the provider to invalidate it there. Token refresh and provider-side revocation depend on the authentication lane and provider.

Q06

Can I restrict writes in Mailgun?

You can deny write and destructive actions or require approval. Provider scopes and Arc0 action policies are separate controls; a policy does not grant additional provider permissions.

Q07

What does Mailgun through Arc0 cost?

See Arc0 pricing for current connectivity plans. The provider may require its own subscription or charge per request. Arc0 plan allowances do not make third-party data or paid actions free.

Get started

Request Mailgun access.

Mailgun MCP server: 9 actions including list domains, get domain, send email. Request early access through Arc0.

Free to build · MCP + REST · Audit log on every plan

Mailgun and its logo are trademarks of their respective owners. Arc0 is not affiliated with or endorsed by Mailgun.