Tools
Every tool of the Emelia MCP server, by category. 82 tools for campaigns, lists, enrichment, LinkedIn extractions, mailboxes and the account, and 61 for the inbox.
The Emelia tools relay each call to the REST API with your key. The inbox tools work on the Inbox of the same account. Each section below is a category.
Tools marked Credits. spend Emelia credits (prices). Tools marked Destructive. are flagged as destructive to your client (destructiveHint), which can ask you to confirm them: they delete data or, in the inbox, send, forward or move emails to Trash or Spam. start_campaign and send_campaign_test_email are not flagged, but they send real messages too, and say so.
Campaigns
Category campaigns, 32 tools.
| Tool | What it does |
|---|---|
list_campaigns | All campaigns of the current app (not the legacy ones), with id, name and status. Archived campaigns are left out. |
get_campaign | Full configuration: status, schedule, steps, attached and excluded lists. |
create_campaign | Creates a draft campaign from a name, with the default settings. |
get_campaign_stats | Sent, opens, clicks, replies, bounces, globally and per step, optionally between two dates. |
get_campaign_activities | The 30 most recent activities, replies included, filtered by type, contact or version. |
list_manual_tasks | Pending manual tasks of a campaign. |
complete_manual_task | Marks a manual task ok or ko. |
delete_campaign | Destructive. Deletes a campaign. A running campaign must be paused first. Its lists and contacts are kept. |
rename_campaign | Renames a campaign that is not running. |
get_campaign_sequence_guide | How to write a sequence: the step tree, step types, A/B versions, conditions, variables, attachments and voice notes, and how to edit a campaign that already sent. |
update_campaign_steps | Replaces the whole sequence of a campaign that is not running. |
update_campaign_settings | Changes the sending settings: days and hours, time zone, daily limits, tracking, the events that take a contact out of the sequence. Not while running. |
update_campaign_recipients | Sets the lists of the campaign and its exclusion lists. Works on a running campaign. |
update_campaign_identities | Sets the senders of the campaign: mailboxes, LinkedIn and WhatsApp accounts. Not while running. |
schedule_campaign_start | Plans an automatic start at a date, or cancels it. |
duplicate_campaign | Copies a campaign into a new draft, with or without its settings, steps, contacts and senders. |
start_campaign | Starts or resumes a campaign: it sends to the real contacts. When a start check fails, returns it with its code. |
pause_campaign | Pauses a running campaign. |
archive_campaign | Archives a campaign, which leaves list_campaigns. |
reactivate_campaign | Moves a finished campaign back to paused, to edit it and start it again. |
finish_campaign | Marks a running or paused campaign as finished. |
send_campaign_test_email | Sends a real email: one version of an email step, to the address you give, with the variables of a contact of the campaign. |
list_campaign_contacts | Contacts of a campaign with their status, paginated (the first page is 0). |
add_contact_to_campaign | Adds one contact to a campaign, through a list made for it. A finished campaign starts again. |
remove_contact_from_campaign | Destructive. Removes a contact from a campaign and deletes its activities there. The contact stays in its lists. |
set_campaign_contact_field | Sets one field or custom variable of a contact of the campaign, found by email or LinkedIn URL. |
get_activity_message | Rebuilds the message of a send activity (email, LinkedIn message, InMail, invitation, WhatsApp). |
get_campaign_progress | For each step, how many contacts passed it and how many wait at it. |
list_step_contacts | Contacts that passed or wait at one step, 20 per page (the first page is 1). |
export_campaign | The contacts, activities or replies of a campaign, as CSV. |
upload_campaign_attachments | Uploads up to 3 files for email, LinkedIn message or WhatsApp steps, and returns their public URLs. |
upload_linkedin_voice_note | Converts an audio file into a LinkedIn voice note, and returns its public URL and its duration. |
Before writing or changing a sequence, the assistant should read get_campaign_sequence_guide: update_campaign_steps replaces the whole tree, and a wrong step id makes contacts receive steps again. The guide follows Write the sequence and the editing rules of the campaigns guide, with tool names in place of the routes.
Known quirk. get_campaign_stats on an unknown campaign shows "Emelia refused the credentials of this connection", because the statistics route answers 401. Check the campaign id before your key or your sign-in. Its end date is an exact bound: a date without time excludes that day.
Lists
Category lists, 17 tools.
| Tool | What it does |
|---|---|
create_list | Creates an empty list. |
list_lists | Your lists, paginated, with name search and filters. |
get_list | One list and its counters. |
rename_list | Renames a list. |
delete_list | Destructive. Deletes a list and all its contacts. |
get_list_contacts | Contacts of a list, or an exact lookup by email or LinkedIn URL. |
get_contact | One contact of a list. |
add_contact_to_list | Adds one contact; it enters the campaigns of the list. Duplicates are detected. |
add_contacts_to_list_bulk | Adds up to 100 contacts in one call. |
update_contact | Updates the fields of a contact. |
delete_contact | Destructive. Deletes a contact, and removes it from campaigns. |
find_contact | Looks a contact up across all your lists, by email or LinkedIn URL. |
find_campaigns_using_lists | The campaigns that use each list, to know whether new contacts will enter a campaign. |
export_list | One list as CSV, filtered or not. |
get_list_export | Reads an export that was still running, and returns the CSV once it is ready. |
create_custom_variable | Declares a contact or company custom variable, before loading contacts. |
check_custom_variable | Tells whether a variable name is already taken. |
export_list returns the CSV at once up to 5,000 contacts. Above that, Emelia prepares the file in the background: the tool waits up to 90 seconds, like the enrichment tools, then returns the jobId if the file is not ready yet. Ask the assistant to read it later with get_list_export. One large export runs at a time per account: while it runs, a new export request returns that running job, which may concern other lists. An export above 100,000 contacts is refused.
Enrichment
Category enrichment, 5 tools.
| Tool | What it does |
|---|---|
find_email | Credits. Finds a professional email from a full name, a company and a country. |
find_phone | Credits. Finds a phone number from a LinkedIn profile URL. |
verify_email | Credits. Verifies an email address. |
get_enrichment_result | Reads a job that was still running. |
list_enrichment_jobs | The history of your email searches, phone searches or email verifications. |
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.
Known quirk. find_email needs country. The tool marks it optional, but the API refuses a search without it. Always give the country of the company.
LinkedIn scraper
Category linkedin_scraper, 15 tools.
| Tool | What it does |
|---|---|
list_linkedin_scrapers | Your LinkedIn extractions, newest first, 20 per page. |
get_linkedin_scraper | One extraction and its progress: the tool to poll while it runs. |
create_linkedin_scraper | Starts extracting a Sales Navigator search, lead list or account search, or a classic LinkedIn people search. Without a subscription, the extraction uses credits. |
rename_linkedin_scraper | Renames an extraction. |
delete_linkedin_scraper | Destructive. Deletes an extraction and stops it. The list created from it is kept. |
pause_linkedin_scraper | Pauses a large extraction split into chunks. |
resume_linkedin_scraper | Restarts a paused or planned extraction, or one stopped by an invalid cookie or a LinkedIn rate limit. |
split_linkedin_scraper | Splits a long extraction to use the contacts collected so far, while the rest goes on. |
filter_linkedin_scraper | Removes the profiles already found by your 10 latest extractions, before an enrichment. |
enrich_linkedin_scraper | Credits. Finds the email of every contact of a finished extraction: 1 credit per email found. |
download_linkedin_scraper | The CSV of an extraction: the contacts with an email, without, or all of them. |
add_linkedin_scraper_webhook | Registers a URL that Emelia calls when the extraction finishes or fails. |
remove_linkedin_scraper_webhook | Destructive. Unregisters a webhook URL of an extraction. |
connect_linkedin_scraper_account | Connects a LinkedIn account for extractions, from the cookies of a browser session logged in to LinkedIn. |
update_linkedin_scraper_account | Replaces the cookies of an extraction account, for example after an invalid cookie. |
Mailboxes
Category mailboxes, 8 tools.
| Tool | What it does |
|---|---|
list_email_providers | Your sending mailboxes, passwords masked. Can list only the disconnected ones. |
get_warmup_status | Warmup of each mailbox: running or not, score, sent, received, spam. |
set_warmup | Turns the warmup of a mailbox on. |
create_email_provider | Adds an SMTP and IMAP mailbox, after testing its credentials. |
update_email_provider | Updates the credentials of a mailbox, tests them and marks it connected again. |
delete_email_provider | Destructive. Removes a mailbox from the account. |
update_sender_name | Changes the sender name of a mailbox. |
check_mailbox_health | Starts a new DNS, sending and blacklist check of a mailbox. The result shows in get_warmup_status a few minutes later. |
Known quirks.
set_warmupwithenabled: falsefails 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_statusreturns every mailbox at once, whatever thepageyou pass.
Account
Category account, 5 tools.
| Tool | What it does |
|---|---|
list_credit_usage | The credits you consumed, newest first. |
list_webhooks | The activity webhooks registered on your campaigns. |
get_blacklist | Your blacklist: emails, domains and LinkedIn profiles. |
add_to_blacklist | Adds an email, a domain or a LinkedIn profile to the blacklist of the account. |
remove_from_blacklist | Destructive. Removes an email, a domain or a LinkedIn profile from the blacklist. |
Inbox
Category inbox, 39 tools. They appear once the Inbox has been opened in Emelia (see The inbox tools), and their links open the Emelia inbox.
These tools refuse to run without confirm: true, which the assistant may only set once you approved the exact email or action: the tools that send (send_draft, send_email, schedule_draft, unsubscribe), the ones that create or change an auto-forward rule, and most deletions. The tools that act on several emails take up to 60 emails per call.
Emails
| Tool | What it does |
|---|---|
list_emails | Lists emails, newest first, by folder, view, or list (waiting for reply, scheduled, hidden by filters), with filters on labels, read state, dates and more. Without the body. |
search_emails | Searches the subject, sender, To recipients and first lines of the emails, in every folder. |
get_email | One email: sender, recipients, labels, attachments, and the reply draft prepared for it, if any. Without the body. |
get_thread | The whole conversation of an email, with the bodies, oldest message first. |
get_attachment | Reads an attachment: text files as text, images and PDFs up to 5 MB as content the assistant can read. |
mark_emails_read | Marks emails read or unread, in the inbox and at the email provider. |
pin_emails | Pins or unpins emails. |
move_emails | Destructive. Moves emails to the Inbox or to Spam, in the inbox and at the email provider. Moving to Spam reports the senders, and that cannot be undone. |
trash_emails | Destructive. Moves emails to Trash. move_emails restores them. |
apply_label_to_emails | Adds a label to emails. |
remove_label_from_emails | Removes a label from emails. |
dismiss_waiting_for_reply | Takes sent emails out of the waiting for reply list. |
get_unsubscribe_options | Tells whether and how the mailbox can unsubscribe from the sender of an email. |
unsubscribe | Destructive. Unsubscribes the mailbox from a sender, with a one-click request or an email sent from the mailbox. Cannot be undone. |
Drafts and sending
| Tool | What it does |
|---|---|
get_draft | One draft: recipients, full body, attachments, schedule. |
create_draft | Creates a draft in a mailbox, and returns a link to review it in the inbox. Nothing is sent. |
update_draft | Changes the recipients, the subject or the text of a draft. |
delete_draft | Destructive. Deletes a draft and its attachments. |
send_draft | Destructive. Sends a draft now. It reaches the recipients and cannot be undone. |
send_email | Destructive. Sends a new email now, from one of your mailboxes or one of their send-as addresses. |
draft_reply | Drafts a reply, or a reply to all, in the same conversation, with the quoted original. |
draft_forward | Drafts a forward of an email, with its attachments. |
schedule_draft | Destructive. Schedules a draft at a local time, in the time zone of your inbox. It is then sent automatically. |
cancel_scheduled_send | Cancels a scheduled send. The draft stays in Drafts. |
add_draft_attachment | Attaches a file to a draft, up to about 3 MB per file through this server. |
remove_draft_attachment | Destructive. Removes an attachment from a draft and deletes the file. |
cancel_auto_reply | Stops an automatic reply that is about to be sent. The draft stays in Drafts. |
generate_magic_reply | Credits. Suggests a reply in your own style, with a confidence score. Creates no draft. |
list_snippets | Your snippets: reusable pieces of text, such as a booking link or an address. |
create_snippet | Creates a snippet. |
update_snippet | Changes the name, icon, text or position of a snippet. |
delete_snippet | Destructive. Deletes a snippet. |
Mailboxes and account
| Tool | What it does |
|---|---|
get_workspace | Your inbox: name, time zone, AI features, permissions and usage limits. The assistant calls it first. |
list_mailboxes | The mailboxes of the inbox, with their sync status and send-as addresses. For their warmup and campaign settings, use list_email_providers. |
sync_mailbox | Fetches the newest emails of a mailbox now, at most once every 5 minutes. |
get_unread_counts | Unread counts of the inbox, of each view, of each mailbox and of the waiting for reply list. |
suggest_contacts | People a mailbox exchanged emails with, to fill the recipients. |
set_workspace_timezone | Sets the time zone used to schedule emails, if it was never set. |
get_reference | Reference for the other tools: label colors, view icons, the filter grammar, rule options, limits. |
Inbox settings
Category inbox_settings, 22 tools. Like the inbox tools, they appear once the Inbox has been opened in Emelia.
Labels
| Tool | What it does |
|---|---|
list_labels | Your labels, manual and AI. |
create_label | Creates a manual label, in one of seven colors. |
update_label | Renames a manual label or changes its color. |
delete_label | Destructive. Deletes a manual label and removes it from every email. |
AI label rules
| Tool | What it does |
|---|---|
list_ai_label_rules | Your AI label rules: the condition, and the auto-draft, auto-reply and hide options. |
create_ai_label_rule | Creates an AI label and the plain language condition that applies it to new emails. The rule can also draft replies, send them automatically, or keep the emails out of the main inbox. While AI label rules exist, each new email is classified with Emelia credits. |
update_ai_label_rule | Changes the label, the condition or the options of an AI label rule. |
delete_ai_label_rule | Destructive. Deletes an AI label rule and its label, which leaves every email. |
classify_existing_emails | Credits. Runs your AI label rules on emails already received: the 200 latest of each mailbox by default. |
Views
| Tool | What it does |
|---|---|
list_views | Your views: saved lists of emails that match filters. |
create_view | Creates a view from filters, with an emoji icon. |
update_view | Renames a view, changes its icon or replaces its filters. |
delete_view | Destructive. Deletes a view. The emails it showed are not touched. |
Inbox filters
| Tool | What it does |
|---|---|
list_inbox_filters | Your inbox filters: the senders, domains, subjects or labels kept out of the main inbox. |
create_inbox_filter | Keeps the emails of a sender, a domain, a subject or a label out of the main inbox, past emails included. Nothing is moved. |
update_inbox_filter | Changes the type or the value of an inbox filter. |
delete_inbox_filter | Destructive. Deletes an inbox filter. The emails it hid come back in the main inbox. |
Auto-forward rules
| Tool | What it does |
|---|---|
list_auto_forward_rules | The rules that forward new emails to another address automatically. |
create_auto_forward_rule | Destructive. Creates a rule that sends every new matching email to another address, automatically, from now on. |
update_auto_forward_rule | Destructive. Changes, pauses or resumes an auto-forward rule. |
delete_auto_forward_rule | Destructive. Deletes an auto-forward rule and its history. Forwarding stops at once. |
get_auto_forward_logs | The 50 latest forwards of a rule, sent or failed. |
Tool categories
Turn on only the tool categories you need with the toolsets parameter of the server URL. The 8 categories, the syntax, ready-made combinations, and how to change them in each client.
Limits and troubleshooting
The quotas and size limits of the Emelia MCP server, the errors you can meet and what they mean, and prompts to try first.