Elastic Email MCP Server (v1)

Download OpenAPI specification:Download

OpenAPI style documentation describing Elastic Email MCP tools

Campaign management

create_campaign

Creates and sends a new campaign. By default, the campaign status is set to active, and the campaign is sent immediately upon creation.To delay sending, set the status to paused.You can also create draft campaign and finish creation proccess later.

Request Body schema: application/json
campaignData
required
object

Request samples

Content type
application/json
{
  • "campaignData": { }
}

list_campaigns

List existing campaigns

Request Body schema: application/json
object

Request samples

Content type
application/json
{ }

get_campaign

Get existing campaign

Request Body schema: application/json
name
required
string

Request samples

Content type
application/json
{
  • "name": "string"
}

pause_campaign

Pause selected capaign

Request Body schema: application/json
name
required
string

Request samples

Content type
application/json
{
  • "name": "string"
}

update_campaign

Update selected capaign

Request Body schema: application/json
campaignData
required
object

Request samples

Content type
application/json
{
  • "campaignData": { }
}

Statistics

get_campaign_statistics

Get campaign selected by name statistics

Request Body schema: application/json
name
required
string

Request samples

Content type
application/json
{
  • "name": "string"
}

get_all_campaign_statistics

Get all campaigns statistics

Request Body schema: application/json
object

Request samples

Content type
application/json
{ }

fetch_contact_history

Get contact history by email address

Request Body schema: application/json
email
required
string

Email address to search by

Request samples

Content type
application/json
{
  • "email": "string"
}

Contacts management

fetch_contacts

Fetch existing contacts. By default get 20 contacts but number may be changed.

Request Body schema: application/json
limit
integer <int32>

Request samples

Content type
application/json
{
  • "limit": 0
}

fetch_lists

Fetch existing lists

Request Body schema: application/json
object

Request samples

Content type
application/json
{ }

fetch_list

Get list by name

Request Body schema: application/json
listName
required
string

Request samples

Content type
application/json
{
  • "listName": "string"
}

fetch_list_contacts

Get contacts from list by list name

Request Body schema: application/json
listName
required
string

Request samples

Content type
application/json
{
  • "listName": "string"
}

add_contacts_to_list

Add contacts to existing list

Request Body schema: application/json
listName
required
string
emails
required
object

Request samples

Content type
application/json
{
  • "listName": "string",
  • "emails": { }
}

remove_contacts_from_list

Remove contacts from existing list. Provide rule or list of emails, never both in the same time.

Request Body schema: application/json
listName
required
string
contacts
required
object
rule
required
string

Request samples

Content type
application/json
{
  • "listName": "string",
  • "contacts": { },
  • "rule": "string"
}

create_list

Create new list with provided contacts

Request Body schema: application/json
listName
required
string
emails
required
object

Request samples

Content type
application/json
{
  • "listName": "string",
  • "emails": { }
}

add_contact

Add new simple contact

Request Body schema: application/json
email
required
string
firstName
string
lastName
string

Request samples

Content type
application/json
{
  • "email": "string",
  • "firstName": "string",
  • "lastName": "string"
}

delete_contacts

Delete contact. Provide rule or list of emails, never both in the same time.

Request Body schema: application/json
contacts
required
object
rule
required
string

Request samples

Content type
application/json
{
  • "contacts": { },
  • "rule": "string"
}

upload_contacts

Uploads/import contacts from file

Request Body schema: application/json
fileName
required
string
base64Content
required
string
listName
required
string

Request samples

Content type
application/json
{
  • "fileName": "string",
  • "base64Content": "string",
  • "listName": "string"
}

create_segment

Create new segment

Request Body schema: application/json
segmentData
required
object

Request samples

Content type
application/json
{
  • "segmentData": { }
}

get_segments

Get existing segments

Request Body schema: application/json
object

Request samples

Content type
application/json
{ }

get_segment

Get existing segment by name

Request Body schema: application/json
name
required
string

Request samples

Content type
application/json
{
  • "name": "string"
}

Domain management

get_domains

List of all domains configured for this Account.

Request Body schema: application/json
object

Request samples

Content type
application/json
{ }

get_domain

Retrieve a domain configured for this Account by name.

Request Body schema: application/json
domain
required
string

Request samples

Content type
application/json
{
  • "domain": "string"
}

add_domain

Add new domain to Account.

Request Body schema: application/json
payload
required
object

Request samples

Content type
application/json
{
  • "payload": { }
}

set_domain_as_default

Set domain as default.

Request Body schema: application/json
email
required
string

Request samples

Content type
application/json
{
  • "email": "string"
}

delete_domain

Deletes configured domain from Account.

Request Body schema: application/json
domain
required
string

Request samples

Content type
application/json
{
  • "domain": "string"
}

verify_domain

Verifies that required DNS records exist for specified domain.

Request Body schema: application/json
domain
required
string

Request samples

Content type
application/json
{
  • "domain": "string"
}

Emails sending

get_sent_emails

Get sent emails

Request Body schema: application/json
from
object
to
object

Request samples

Content type
application/json
{
  • "from": { },
  • "to": { }
}

view_email

View email (including its body) by Msg ID

Request Body schema: application/json
msgId
required
string

Msg ID

Request samples

Content type
application/json
{
  • "msgId": "string"
}

get_sent_emails_by_transaction_id

Get sent emails by transaction ID

Request Body schema: application/json
transactionId
required
string

Transaction ID that was received sending emails

Request samples

Content type
application/json
{
  • "transactionId": "string"
}

send_bulk_emails

Send bulk emails

Request Body schema: application/json
emailData
required
object

Input email data: content, recipients list, subject. Use CC list only if user requires it.

Request samples

Content type
application/json
{
  • "emailData": { }
}

send_transactional_email

Send transactional email. Avoid putting all contacts in To field, rather send them separately. Use template if you want to send email with dynamic content.

Request Body schema: application/json
data
required
object

Input email data: content, recipients list, subject. Use CC field only if user requires it. Avoid putting all contacts in To or CC fields. Use template if you want to send email with dynamic content.

Request samples

Content type
application/json
{
  • "data": { }
}

fetch_template

Get template by name

Request Body schema: application/json
name
required
string

Request samples

Content type
application/json
{
  • "name": "string"
}

fetch_templates

Get email templates list

Request Body schema: application/json
scopes
required
object
templateTypes
object

Request samples

Content type
application/json
{
  • "scopes": { },
  • "templateTypes": { }
}

MCP Tools

is_ready

Check readiness and connectivity with MCP server and API

Request Body schema: application/json
object

Request samples

Content type
application/json
{ }

Suppressions management

add_contact_to_suppression_list

Mark contacts as supressed. Type can be: Bounce, Complained (spam), Unsubscribe.

Request Body schema: application/json
emails
required
object

List of email addresses, maximum 1000

type
required
object

Request samples

Content type
application/json
{
  • "emails": { },
  • "type": { }
}

delete_suppression

Remove conmtact from suppression list.

Request Body schema: application/json
email
required
string

Request samples

Content type
application/json
{
  • "email": "string"
}

get_suppression_list

Get existing contacts supressions.

Request Body schema: application/json
object

Request samples

Content type
application/json
{ }