Connect ElasticEmail to Claude: Verify Contacts and Configure Domains
from the team behind Truto
ElasticEmail in Claude, in about a minute.
The best way to connect ElasticEmail to Claude is Elaichi: connect ElasticEmail to Elaichi once, then add Elaichi to Claude as a connector. Two steps, about a minute, with a 14‑day free trial and no credit card required.
- No credit card required
- 500+ connectors
- Credentials vaulted, never read back
-
Start your free trial
14 days free, no credit card required.
-
Connect ElasticEmail
Once, in Elaichi. Claude never gets more access than you have.
-
Add Elaichi to Claude
In Claude, open Customize, then Connectors, press Add and paste the URL. Sign in and approve.
https://api.elaichi.ai/mcp
Building ElasticEmail into your own product? This guide is for you.
Learn how to build a managed ElasticEmail MCP server, connect it to Claude Desktop or custom AI agents, and automate email delivery, domain configuration, and contact verification using natural language.
The developer guide
A complete engineering guide to connecting ElasticEmail to Claude via MCP. Automate domain verification, campaign stats, and transactional emails with AI agents.
If your team needs to connect ElasticEmail to Claude to automate transactional messaging, manage contact verification, or verify sending domains, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's natural language tool calls and ElasticEmail's REST API. You can either build and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL. If your team uses ChatGPT, check out our guide on connecting ElasticEmail to ChatGPT or explore our broader architectural overview on connecting ElasticEmail to AI Agents.
Giving a Large Language Model (LLM) read and write access to a core infrastructure platform like ElasticEmail is an engineering challenge. You have to map highly nested JSON schemas for domains and contact lists to MCP tool definitions, manage complex API key permissions, and gracefully handle ElasticEmail's strict sending quotas. Every time an endpoint changes or you need to support a new email template format, you have to update your server code, redeploy, and test the integration.
This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for ElasticEmail, connect it natively to Claude Desktop, and execute complex email delivery workflows using natural language.
The Engineering Reality of the ElasticEmail API
A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, the reality of implementing it against ElasticEmail's API is painful. ElasticEmail is built to process massive volumes of outbound messages and enforce strict deliverability standards. Its API reflects that scale and complexity.
If you decide to build a custom ElasticEmail MCP server, here are the specific integration challenges you will face:
Fragmented API Key Access Levels
ElasticEmail uses highly granular API key scopes (e.g., ViewCampaigns, ModifyContacts, SendHttp, ModifySettings). An LLM has no concept of which token to use for which operation. If your MCP server uses a key missing the ModifySettings scope, Claude's attempt to verify a domain will result in a hard 401 Unauthorized error. You must build an abstraction layer that either manages multiple keys or enforces strict boundary checks before passing requests downstream.
Asynchronous File Processing for Verification
Verifying a single email is synchronous, but verifying a list of 50,000 contacts requires uploading a CSV, securing a VerificationID, and polling a status endpoint until the job completes. LLMs cannot easily handle long-running background polling loops on their own. Your MCP server must expose discrete, stateful tools that allow the LLM to kick off the job, check the status, and eventually download the results.
Factual Note on Rate Limits and IETF Headers
ElasticEmail strictly throttles requests based on your account tier. It is critical to understand that Truto does not retry, throttle, or apply backoff on rate limit errors. When an upstream API returns HTTP 429, Truto passes that error directly to the caller. Truto normalizes the upstream rate limit information into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF spec. The caller (your agent or application framework) is entirely responsible for reading these headers and implementing its own retry or backoff logic.
How to Generate the ElasticEmail MCP Server
Truto eliminates the need to build a custom Node.js or Python server. Instead, Truto dynamically derives MCP tool definitions directly from the ElasticEmail API documentation and schema definitions.
You can generate your secure MCP server URL in two ways: via the Truto UI or programmatically via the API.
Method 1: Via the Truto UI
- Log into your Truto dashboard and navigate to the Integrated Accounts page.
- Select your connected ElasticEmail account.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Select your desired configuration (e.g., restrict to
readoperations or apply specific tags). - Copy the generated MCP server URL (e.g.,
https://api.truto.one/mcp/a1b2c3d4...).
Method 2: Via the Truto API
If you are dynamically provisioning AI workspaces for your customers, you can generate MCP servers programmatically.
Make a POST request to the /integrated-account/:id/mcp endpoint:
curl -X POST https://api.truto.one/integrated-account/YOUR_ACCOUNT_ID/mcp \
-H "Authorization: Bearer YOUR_TRUTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "ElasticEmail Deliverability Agent",
"config": {
"methods": ["read", "write", "custom"]
}
}'The API returns a secure, ready-to-use URL:
{
"id": "mcp-xyz-789",
"name": "ElasticEmail Deliverability Agent",
"url": "https://api.truto.one/mcp/a1b2c3d4e5f67890"
}This URL contains a hashed cryptographic token that acts as the authentication mechanism. Do not expose this URL publicly.
Connecting the MCP Server to Claude
Once you have the URL, you need to connect it to your LLM client. All communication happens over HTTP POST using standard JSON-RPC 2.0 messages.
Method A: Via the Claude or ChatGPT UI
For teams using commercial AI chat interfaces that support MCP custom connectors:
For Claude:
- Navigate to Settings -> Integrations -> Add MCP Server.
- Name the integration (e.g., "ElasticEmail Ops").
- Paste the Truto MCP URL and click Add.
For ChatGPT:
- Go to Settings -> Connectors -> Add custom connector.
- Name the connector and paste the Truto MCP URL.
- Save and initialize.
Method B: Via Manual Config File (Claude Desktop / Custom Agents)
If you are running Claude Desktop or using an open-source agent framework (like LangChain or AutoGen), you can connect via a JSON configuration file using the standard Server-Sent Events (SSE) transport adapter.
Add the following to your claude_desktop_config.json file:
{
"mcpServers": {
"elasticemail": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"--url",
"https://api.truto.one/mcp/YOUR_SECURE_TOKEN"
]
}
}
}Restart Claude Desktop. The client will send an initialize handshake to Truto, which dynamically generates and returns the available ElasticEmail tools.
Hero Tools for ElasticEmail
Truto automatically exposes the ElasticEmail REST endpoints as strictly typed MCP tools. The flat argument namespace handles merging query and body parameters automatically. Here are the highest-leverage tools for email operations.
Verify Domain
Tool: elastic_email_domains_verify
Verifies that the required DNS records (SPF, DKIM, DMARC, MX) exist and are properly configured for a specified domain. Essential for automating IT ops and deliverability troubleshooting.
"Claude, check the domain verification status for 'acme-corp.com' and tell me if the DKIM records are propagating yet."
Send Transactional Email
Tool: elastic_email_emails_send_transactional
Fires off a transactional email to specific recipients. Requires the SendHttp API key access level. The payload allows for complex HTML rendering and merge tag injection.
"Send a transactional welcome email to 'newuser@example.com'. Use the subject 'Welcome to our platform' and include a brief onboarding checklist in the body."
Verify Email List (Bulk)
Tool: elastic_email_verifications_verify_file
Uploads a CSV or TXT file of email addresses for bulk hygiene verification. This returns a VerificationID that you can use to poll for the completed results.
"I have a list of new marketing leads in a CSV format. Upload this file to ElasticEmail for bulk verification and return the VerificationID so we can track the job."
List All Campaigns
Tool: list_all_elastic_email_campaigns
Returns a paginated list of all configured email campaigns, including their status (Active, Paused, Completed), recipient counts, and basic configuration options.
"List all active email campaigns currently running in ElasticEmail and give me the total number of recipients for each."
Get Campaign Statistics
Tool: elastic_email_statistics_campaign
Retrieves detailed sending statistics for a single campaign, including delivery rates, bounces, opens, clicks, and unsubscribes.
"Pull the performance statistics for the campaign ID 'Q3-Newsletter-Blast'. Calculate the open rate and tell me how many emails bounced."
Manage Contact Lists
Tool: list_all_elastic_email_contacts
Loads detailed contact information from your ElasticEmail directory, including custom fields, consent status, and engagement activity. Crucial for syncing CRM data to marketing lists.
"Search our ElasticEmail contacts for anyone who was added in the last 7 days and check if their consent status is marked as verified."
To view the complete inventory of available ElasticEmail tools, schemas, and required parameters, visit the ElasticEmail integration page.
Workflows in Action
Connecting an LLM to ElasticEmail unlocks powerful, autonomous workflows that usually require dedicated IT ops or marketing engineering time. Here are two examples of how Claude navigates the ElasticEmail API via MCP.
Workflow 1: Domain Setup and Deliverability Audit
When a company launches a new product line, they often need to configure and verify a new sending subdomain. Claude can audit the configuration instantly.
"We just added 'mail.acme-new-product.com' to ElasticEmail. Check if the domain is fully configured. If any DNS records are missing, outline exactly what IT needs to add to our Cloudflare zone."
Execution steps:
- Claude calls
list_all_elastic_email_domainsto locate the ID formail.acme-new-product.com. - Claude calls
elastic_email_domains_verifyusing the retrieved domain ID. - Claude analyzes the returned
ValidationLogandCertificateValidationErrorproperties. - Claude outputs a specific IT checklist (e.g., "Your SPF record is valid, but the DKIM record is missing. Please add the following TXT record...").
sequenceDiagram
participant User
participant Claude as Claude Desktop
participant Truto as Truto MCP Server
participant Upstream as "ElasticEmail API"
User->>Claude: "Check domain verification for mail.acme-new-product.com..."
Claude->>Truto: tools/call {name: "list_all_elastic_email_domains"}
Truto->>Upstream: GET /domains
Upstream-->>Truto: Domain List JSON
Truto-->>Claude: Tool Result (Domain ID: 98765)
Claude->>Truto: tools/call {name: "elastic_email_domains_verify", arguments: {domain_id: "98765"}}
Truto->>Upstream: POST /domains/98765/verify
Upstream-->>Truto: ValidationLog JSON
Truto-->>Claude: Tool Result (DKIM Missing)
Claude-->>User: Outputs exact DNS records required by ITWorkflow 2: Contact Hygiene and Campaign Launch
Marketing teams frequently need to clean a list of emails before launching a campaign to protect sender reputation.
"I have a base64 encoded CSV of 5,000 webinar attendees. Upload it to ElasticEmail for bulk verification. Once verified, create a new campaign called 'Webinar Follow-Up' and draft a transactional email to them."
Execution steps:
- Claude calls
elastic_email_files_uploadto push the raw CSV to the ElasticEmail file system. - Claude calls
elastic_email_verifications_verify_filereferencing the uploaded file ID to begin the hygiene check. - Claude notes the
VerificationID(instructing the user that the async job has started and they should ask for a status check in a few minutes). - Claude prepares the payload for
create_a_elastic_email_campaign, configuring the verified list as the target audience.
Security and Access Control
Giving an AI agent raw access to your email infrastructure requires strict governance. Truto's MCP tokens include embedded security controls that restrict what the LLM can do:
- Method Filtering: You can strictly limit an MCP server to
readoperations. This allows Claude to analyze campaign statistics and read contact lists, but completely blocks it from sending emails or deleting domains. - Tag Filtering: Scope the MCP server by integration tags. For instance, restrict the agent to only access tools related to
campaignsandstatistics, keeping it away fromdomainsandsmtp_credentials. - Expiration (
expires_at): Generate ephemeral MCP servers. If you bring in an external marketing contractor who uses Claude, you can generate a URL that automatically self-destructs after 14 days. - Additional Authentication: By enabling
require_api_token_auth, possession of the MCP URL is no longer enough. The client must also pass a valid Truto API token in the headers, adding a crucial layer of identity verification for enterprise environments.
Wrap-Up
Integrating ElasticEmail via a managed MCP server transforms how your team interacts with email infrastructure. Instead of digging through complex dashboard UIs or writing custom Python scripts to verify domains and pull campaign stats, developers and marketers can simply ask Claude.
By leveraging Truto, you bypass the headache of mapping ElasticEmail's dense JSON schemas to tool definitions, eliminate the need to host custom middleware, and maintain strict, granular security controls over your email operations. Your agents get immediate, secure access, and your engineering team stays focused on core product logic.
FAQ
- What is the easiest way to connect ElasticEmail to Claude?
- The best way to connect ElasticEmail to Claude is Elaichi: connect ElasticEmail to Elaichi once, then add Elaichi to Claude as a connector. Two steps, about a minute, with a 14-day free trial and no credit card required.
- Does Truto automatically retry rate-limited ElasticEmail API requests?
- No. Truto does not retry, throttle, or apply backoff on rate limit errors. When ElasticEmail returns an HTTP 429 error, Truto passes it directly to the caller, normalizing the rate limit information into standard IETF headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset). Your agent must handle retry logic.
- How do I restrict the Claude agent from sending emails or modifying domains?
- When creating the MCP server in Truto, you can apply method filtering to restrict the server to 'read' operations only. This ensures the LLM can only query data (like campaign stats or domain status) and cannot execute write methods.
- Can I dynamically generate ElasticEmail MCP servers for my customers?
- Yes. You can use Truto's API to send a POST request to /integrated-account/:id/mcp to programmatically generate secure, authenticated MCP server URLs tailored for each tenant or user session.