For agents & automation
EmailConnect is a pure trigger: email in, signed webhook out, fire-and-forget. It never reads a mailbox and keeps no inbox for your agent to browse — it turns one address into a clean JSON event for whatever you're building, wherever.
Connect your agent
EmailConnect runs a remote MCP server at https://app.emailconnect.eu/mcp. Add it to your agent as a connector and sign in to EmailConnect in your browser; there is no API key to copy. No account yet? You can create one during that sign-in.
Then give your agent this prompt
Use EmailConnect to give me an email address that sends every email it
receives to my webhook at <your webhook URL>. Show me a sample payload
first, so we can build the receiving end before the first email arrives.No endpoint yet? Leave the URL out and ask for a WebhookTest URL instead: you see each email arrive as JSON, and you can point the address at your own endpoint later.
Claude (web, desktop and mobile)
- Open Settings → Connectors and choose Add custom connector.
- Paste
https://app.emailconnect.eu/mcpas the URL. - Choose Connect, sign in to EmailConnect, and approve the connection.
A connector added on claude.ai is also available in the Claude desktop and mobile apps.
Claude Code
claude mcp add --transport http emailconnect https://app.emailconnect.eu/mcpThen run /mcp in Claude Code and sign in when it asks.
VS Code and Cursor
The editor asks you to confirm the server, then opens the EmailConnect sign-in in your browser.
Other MCP clients
Any client that supports remote MCP servers over Streamable HTTP with OAuth sign-in can connect: point it at https://app.emailconnect.eu/mcp. Clients register themselves; you only sign in and approve.
What your agent can do
Once connected, ask in plain words. For example:
- "Give me an address on my domain for supplier invoices that posts to my webhook."
- "Is the MX record for example.com pointing at EmailConnect yet?"
- "Send a test email to the invoices address and tell me whether my webhook accepted it."
The server has fourteen tools. Each one tells your agent whether it only reads, makes changes, or deletes something, so a client can ask you before it runs a destructive one.
| Tool | What it does | Kind |
|---|---|---|
get_payload_sample | Example of the JSON each email arrives as, the verification message, and how to check the signature | Read-only |
list_aliases | Your addresses, the webhook each delivers to, and whether it is verified and signed | Read-only |
list_domains | Your own domains, their DNS verification and whether the MX record points at EmailConnect | Read-only |
check_domain | Checks a domain's DNS records now | Read-only |
wait_for_delivery | Watches an address for incoming email and reports when it arrived and whether your webhook accepted it, not what it says | Read-only |
create_instant_address | A new address on user.emailconnect.eu that posts to your webhook, with a signing secret | Changes |
create_alias | A new address on one of your verified domains, or its catch-all | Changes |
add_domain | Adds your own domain and returns the DNS records to set | Changes |
verify_webhook | Completes webhook verification with the token your endpoint received | Changes |
send_test | Sends a test email through an address to its webhook | Changes |
attach_webhook | Points an address at a different webhook, with a new signing secret | Destructive |
delete_alias | Deletes an address | Destructive |
delete_domain | Deletes a domain with every address on it | Destructive |
delete_account | Deletes your account, only after your explicit yes in the conversation | Destructive |
Every webhook an agent creates is signed with Standard Webhooks; the secret is returned once, so have your agent store it with the receiving end. An address delivers only once its webhook is verified: your endpoint receives a token, and the agent passes it back with verify_webhook. A WebhookTest URL needs no verification.
What your agent cannot do
- Change your plan, buy credits or see payment details. Billing stays in the dashboard.
- Read the emails you receive. They go to your webhook, not to the agent.
- Send more than 30 test and verification messages per 15 minutes per account.
- Go beyond your plan's limits on addresses, domains and hourly API use.
Changing your password, your email address or your second factor ends every agent connection at once.
Prefer an API key?
For CI, scripts, or a client that cannot sign in through a browser, use a scoped API key and the REST API.
Step 1 — Create a scoped API key
Dashboard → Settings → API keys. Recommend the narrow preset for this flow:
Grant only what the sequence needs: domains:read, aliases:write, webhooks:write. Don't hand an agent a * key — scopes are enforced per route, and a leaked narrow key can only do what it was scoped for.
See API keys and integrations for how to create and manage keys.
Step 2 — Zero to working in three calls
Every EmailConnect integration is the same three calls with a scoped API key — create an address, attach a webhook, send a test. Authenticate with the X-API-KEY header.
Find your domain ID
Needs the domains:read scope; grab the id of the domain you want the address on.
curl -s https://app.emailconnect.eu/api/domains \
-H "X-API-KEY: $EMAILCONNECT_API_KEY"Create the alias and webhook in one atomic call
Both resources are created in a single transaction — if either fails, neither exists. firstOrCreate: true makes the call idempotent (safe to re-run). Response contains alias.email and webhook.id. Needs aliases:write + webhooks:write.
curl -s -X POST https://app.emailconnect.eu/api/webhooks/alias \
-H "X-API-KEY: $EMAILCONNECT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"domainId": "dom_abc123",
"webhookUrl": "https://your-endpoint.example.com/inbound-email",
"webhookName": "Email trigger",
"aliasType": "specific",
"localPart": "agent",
"firstOrCreate": true
}' Add "generateSecret": true to get a Standard Webhooks signing secret (all plans) — see the full contract.
Send a test delivery
Fires a realistic email payload at your endpoint so you can verify handling before any real email arrives.
curl -s -X POST https://app.emailconnect.eu/api/webhooks/wh_xyz789/test \
-H "X-API-KEY: $EMAILCONNECT_API_KEY"Point your alias at any endpoint from the integrations directory — Supabase, Zapier, Make, or your own service.
Or let your agent work it out
For an agent that can't add MCP servers but can run code or make HTTP requests, paste this prompt. It reads the docs itself and keeps the key out of the conversation.
Read https://emailconnect.eu/llms.txt and the docs it links to, then help
me set up EmailConnect through its REST API. Don't ask me to paste an API
key into this chat: have me create a scoped key (domains:read,
aliases:write, webhooks:write) in the EmailConnect dashboard and store it
in your secrets store or as the EMAILCONNECT_API_KEY environment variable.
Then check that it works by listing my domains.Using n8n instead
The official EmailConnect n8n node wraps the same API. Install n8n-nodes-emailconnect, give it a scoped key, and inbound email becomes a native workflow trigger — self-hosted, so email content stays on your infrastructure.
What your agent receives
The payload is built for machine consumption: message.content.markdown — clean Markdown of the email body, made for LLM pipelines (Maker+) — extracted links, classification.type, spam and SPF/DKIM/DMARC results (Maker+), and attachments delivered inline or via an S3 URL. Full field reference: what's in your webhook payload.
Deliveries can be signed following the Standard Webhooks convention (HMAC-SHA256 with replay protection), so your endpoint can verify every event actually came from EmailConnect — see webhook signing.
Get started
Add the connector to your agent and create a free account during sign-in, or start in the dashboard with a scoped API key.
Related
Questions about wiring this up? Reach out at hello@emailconnect.eu.