MCP server

Connect Claude Code, Claude Desktop, Cursor, VS Code or any MCP client to your Emelia account. 26 tools for campaigns, lists, contacts, enrichment and deliverability.

The Emelia MCP server lets an AI assistant work in your Emelia account in plain language: "add these three prospects to my SaaS founders list", "what is the reply rate of my Q4 campaign this week?", "which of my mailboxes are disconnected?".

URLhttps://mcp.emelia.io/mcp
TransportStreamable HTTP, stateless (POST only)
AuthenticationYour Emelia API key in the Authorization header (raw or Bearer <key>), or in X-Api-Key. No OAuth.
Health checkhttps://mcp.emelia.io/mcp/health answers {"ok":true}

You need an API key first:

Whatever the client, name the server emelia: the tools then show up as mcp__emelia__<tool>, the names the Claude Code plugin expects.

Install

For yourself, in every project:

claude mcp add --transport http --scope user emelia https://mcp.emelia.io/mcp \
  --header "Authorization: YOUR_EMELIA_API_KEY"

For a shared project, commit a .mcp.json at the root. It references the variable, not the key: each person keeps the key in their environment (export EMELIA_API_KEY=YOUR_EMELIA_API_KEY).

.mcp.json
{
  "mcpServers": {
    "emelia": {
      "type": "http",
      "url": "https://mcp.emelia.io/mcp",
      "headers": {
        "Authorization": "${EMELIA_API_KEY}"
      }
    }
  }
}

Run /mcp: emelia should show as connected. That does not prove the key is right (the server checks it at the first tool call): ask "list my campaigns" to test it. If /mcp shows "needs authentication", the header does not reach the server.

Tools

The server relays each tool to the REST API with your key. Tools marked credits spend Emelia credits (prices). Tools marked destructive delete data for good.

Campaigns

ToolWhat it does
list_campaignsAll campaigns of the current app (not the legacy ones), with id, name and status. Archived campaigns are left out.
get_campaignFull configuration: status, schedule, steps, attached and excluded lists.
create_campaignCreates a draft campaign from a name, with the default settings.
get_campaign_statsSent, opens, clicks, replies, bounces, globally and per step, optionally between two dates.
get_campaign_activitiesThe 30 most recent activities, replies included, filtered by type, contact or version.
list_manual_tasksPending manual tasks of a campaign.
complete_manual_taskMarks a manual task ok or ko.

Lists and contacts

ToolWhat it does
create_listCreates an empty list.
list_listsYour lists, paginated, with name search and filters.
get_listOne list and its counters.
rename_listRenames a list.
delete_listDestructive. Deletes a list and all its contacts.
get_list_contactsContacts of a list, or an exact lookup by email or LinkedIn URL.
get_contactOne contact of a list.
add_contact_to_listAdds one contact; it enters the campaigns of the list. Duplicates are detected.
add_contacts_to_list_bulkAdds up to 100 contacts in one call.
update_contactUpdates the fields of a contact.
delete_contactDestructive. Deletes a contact, and removes it from campaigns.
find_contactLooks a contact up across all your lists, by email or LinkedIn URL.

Enrichment

ToolWhat it does
find_emailCredits. Finds a professional email from a full name, a company and a country.
find_phoneCredits. Finds a phone number from a LinkedIn profile URL.
verify_emailCredits. Verifies an email address.
get_enrichment_resultReads a job that was still running.

The three enrichment tools wait up to 90 seconds for the result. A longer job comes back with its jobId and status: "running": ask the assistant to check it later with get_enrichment_result.

Deliverability

ToolWhat it does
list_email_providersYour sending mailboxes, passwords masked. Can list only the disconnected ones.
get_warmup_statusWarmup of each mailbox: running or not, score, sent, received, spam.
set_warmupTurns the warmup of a mailbox on.

Known quirks

  • find_email needs country. The tool marks it optional, but the API refuses a search without it. Always give the country of the company.
  • set_warmup with enabled: false fails with "Warmup not found": the tool sends the id of the mailbox where the API expects the id of the warmup. Turn the warmup off in the Emelia app.
  • get_warmup_status returns every mailbox at once, whatever the page you pass.
  • get_campaign_stats on an unknown campaign shows "Invalid or disabled Emelia API key", because the statistics route answers 401. Check the campaign id before your key. Its end date is an exact bound: a date without time excludes that day.

Limits

The server has no quota of its own: it uses the one of your account. The tools that read or change campaigns, mailboxes and warmup count in your per minute quota (30 to 1,000 requests per minute depending on your plan). The enrichment tools and the list and contact tools are not counted. Over the quota, a tool fails with "Emelia API error (500)": wait a minute.

Requests to the server are limited to 4 MB, and each tool returns the whole API response, without truncation: ask for small pages on big lists.

Troubleshooting

SymptomCause
Missing Emelia API key (JSON-RPC error -32001, HTTP 401)The header did not reach the server. Check the client configuration.
"Invalid or disabled Emelia API key"The key is wrong, disabled or deleted, or the campaign of get_campaign_stats does not exist. Create a new key in Settings, API & Webhooks if needed.
"Emelia API error (500)"Usually the per minute quota. Wait a minute.
"Emelia API error (400): ..." with a JSON bodyThe API refused the request; the message says why, for example "country" is required.
405 on /mcpThe server only answers POST. A GET in the browser is expected to fail.
406 or 415The client does not send Accept: application/json, text/event-stream or Content-Type: application/json.
A tool is missingThe server covers the 26 tools above. Everything else is in the REST API.

Prompts to try

  • "List my campaigns and tell me which ones are running."
  • "Add Claire Fontaine, CTO at Nexora, claire.fontaine@nexora.io, to my Q4 SaaS founders list." She enters the campaigns of that list.
  • "What is the reply rate of my Q4 SaaS founders campaign since Monday, step by step?"
  • "Find and verify the email of Hugo Martin at Brightlane, in France, then add him to my Warm leads list."
  • "Which of my mailboxes are disconnected, and which have a low warmup score?"

Your assistant acts with your key

The assistant can change your campaigns and spend your credits. Keep the confirmations of your client on for tools that delete data or use credits.

On this page