Connect Eklow to an AI assistant
Ask Claude, Gemini or another AI assistant about your campaigns, replies, mailboxes and domains. It can read, never change anything.
Connect an AI assistant such as Claude, and you can ask it questions like “Which campaign has the best reply rate?” or “Which of my mailboxes are not ready to send?”.
The assistant can only read. It cannot send email, start or pause campaigns, or change anything.
To let it in, you give it an API key: a password that lets another app read your Eklow data. Each key reads one workspace.
Set it up in 3 steps
Open Settings → AI assistant (MCP), or AI assistant in the sidebar. You need to be a workspace admin or owner.
Under Create a key, press Create key. Press Copy key: it is shown only once. The key is named “AI assistant” and expires in one year.
Under Add it to your assistant, pick Claude, Claude Code, Gemini, ChatGPT or Other MCP client and follow the steps. Your key is already filled in. Eklow tests the connection for you under Test connection.
Add Eklow to Claude
These steps work on the Claude website and in the Claude desktop app.
In Claude, open Customize → Connectors.
Press + Add, then Add custom connector.
Enter the name
Eklowand paste your Server URL. Press Continue.Under Authentication, choose No sign in.
Under Request headers, add a header named
Authorizationwith the valueBearerfollowed by your key, for exampleBearer sc_….Press Add.
On a Claude Team or Enterprise plan, an owner adds the connector under Organization settings → Connectors. Everyone who uses it then shares that one key, so they all read the same workspace.
Gemini
Antigravity CLI
Antigravity CLI replaced Gemini CLI for free and Google One accounts on June 18, 2026. Add Eklow to ~/.gemini/config/mcp_config.json, then run /mcp in Antigravity CLI to check the connection.
{
"mcpServers": {
"eklow": {
"serverUrl": "https://app.eklowlab.com/api/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Antigravity CLI has no mcp add command, and it reads serverUrl, not httpUrl.
Gemini CLI (paid accounts)
Run this in your terminal, then /mcp in Gemini CLI to check the connection.
gemini mcp add -s user --transport http eklow https://app.eklowlab.com/api/mcp \
--header "Authorization: Bearer YOUR_API_KEY"Or add it to ~/.gemini/settings.json:
{
"mcpServers": {
"eklow": {
"httpUrl": "https://app.eklowlab.com/api/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Gemini's app connects with sign-in, which isn't available yet.
ChatGPT
ChatGPT's app connects with sign-in, which isn't available yet. Codex works: see “For developers” below.
What happens next
Ask your assistant a question about Eklow. It looks up what it needs and answers in plain words.
Good questions to start with: “Summarize this week's replies”, “Which campaigns are active and how are they doing?”, “Is acme.com verified?”, “What do we know about [email protected]?”.
What your assistant can read
- Your campaigns and their status.
- The numbers for one campaign: sends, opens, clicks, replies, bounces and unsubscribes.
- Your latest replies: who sent them, the subject and the first part of the message.
- Your connected mailboxes, their warmup and whether they are ready to send. Never their passwords.
- Your sending domains and whether they are verified.
- One contact, looked up by email address.
Keeping your data safe
- It can only read. Nothing your assistant does can send, change or delete anything.
- One workspace per key. The assistant reads only the workspace the key belongs to.
- Your sign-in stays private. The assistant uses the key, never your own Eklow sign-in.
- You can cut it off. Revoke the key in Settings → API keys and the assistant loses access straight away. A key also stops working when the person who created it leaves the workspace, is removed or is suspended.
- Where the data goes. What your assistant reads goes to the company that runs it, under its terms. Connect only assistants you trust with campaign and contact data. Use a separate key for each one.
Test the connection
Right after you create a key, Eklow tests it for you. To test another key, paste it under Test connection and press Test connection. The key is used for that one check and never stored.
Troubleshooting
| If you see | Do this |
|---|---|
| “You're connected — try asking your assistant: …” | All good. Ask your assistant the question shown. |
| “This key belongs to another workspace — create a key here” | The assistant would read that other workspace. Press create a key here. |
| “Eklow API keys start with sc_.” | Paste the whole key, or create a new one. |
“An Eklow API key is required as a Bearer token. Create one in Settings → AI assistant (MCP) and send it as Authorization: Bearer sc_….” | Your assistant sent no key, or not as Bearer sc_…. Check the Authorization header, including the word Bearer and a space before the key. |
| “API key is invalid or revoked. Create a new key in Settings → API keys.” | Press Create a key and test again. |
| “This API key has expired. Create a new key in Settings → API keys.” | Create a new key. Assistant keys expire after one year; to pick another expiry, use Create key at the top of Settings → API keys. |
| “The person who created this API key no longer has admin access to this workspace. Create a new key from an admin account.” | Ask an admin to create a new key. |
| “MCP access is not enabled for this workspace. Ask Eklow support to enable AI assistant access for it.” | Press Contact support and ask for it to be switched on. |
| “MCP server is included on the … plan.” | Upgrade, or contact support. |
| “This feature is not available.” | Press Contact support and ask for AI assistant access to be switched on. |
| “This workspace is suspended or deleted, so it cannot use the API. Sign in to the dashboard to see why.” | Press Contact support. |
| “Too many requests. Slow down and try again.” | Wait a minute and test again. |
| “Origin not allowed. Call this endpoint from an MCP client, not a web page.” | Open Eklow from its usual address and test again. |
| “Could not reach Eklow.” | Check your internet connection and test again. |
| The test works, but your assistant shows no Eklow tools | Restart the assistant. Check that the Server URL and the Authorization header match Settings → AI assistant (MCP) exactly, including the word Bearer and a space before the key. |
AI assistant access is being switched on workspace by workspace. If yours is not on yet, the test says so. Contact support to turn it on.
Disconnect an assistant
Revoke its key in Settings → API keys. The assistant loses access straight away.
For developers
Eklow runs a read-only remote MCP (Model Context Protocol) server over Streamable HTTP. It accepts only an Eklow API key as Authorization: Bearer sc_…, never the dashboard session cookie. In Settings → AI assistant (MCP), each assistant under Add it to your assistant shows the steps below with your URL and key filled in.
Claude Code
claude mcp add --transport http eklow https://app.eklowlab.com/api/mcp \
--header "Authorization: Bearer YOUR_API_KEY"Run /mcp in Claude Code to check the connection.
Claude Desktop config file
Instead of Customize → Connectors, you can add Eklow to the config file. This needs Node.js. Open Settings → Developer → Edit Config, add the block below, then quit and reopen Claude Desktop.
{
"mcpServers": {
"eklow": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://app.eklowlab.com/api/mcp", "--header", "Authorization:${AUTH_HEADER}"],
"env": { "AUTH_HEADER": "Bearer YOUR_API_KEY" }
}
}
}Codex
Add the server to ~/.codex/config.toml, then set the key in your shell before starting Codex.
[mcp_servers.eklow]
url = "https://app.eklowlab.com/api/mcp"
bearer_token_env_var = "EKLOW_API_KEY"export EKLOW_API_KEY=YOUR_API_KEYResponses API
[
{
"type": "mcp",
"server_label": "eklow",
"server_url": "https://app.eklowlab.com/api/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" },
"require_approval": "never"
}
]Any other MCP client
- Transport: Streamable HTTP (remote server).
- URL:
https://app.eklowlab.com/api/mcp. - Header:
Authorization: Bearer YOUR_API_KEY.
Tools
| Tool | Returns |
|---|---|
| list_campaigns | Your campaigns, newest first, with status. Up to 50 per page |
| get_campaign_stats | Sends, deliveries, opens, clicks, replies, bounces and unsubscribes for one campaign, with rates |
| list_recent_replies | The latest replies, newest first: sender, subject and a snippet of up to 500 characters. Up to 25 per page |
| list_mailboxes | Connected mailboxes with warmup, reply capture and send readiness. Never credentials |
| list_domains | Sending domains and their DNS verification status |
| get_contact | One contact, looked up by exact email address |
Logging, limits and error codes
- Every tool call is logged against the key: the tool, the outcome, a fingerprint of the arguments, the number of rows and the time taken. Never the arguments or results themselves.
- 60 requests a minute per key and 300 per workspace.
- Reply, contact and campaign text is marked untrusted, with links and images removed.
- Error codes:
unauthorized,api_key_expired,api_key_owner_inactive,mcp_not_enabled,plan_feature_unavailable,feature_unavailable,workspace_unavailable,rate_limited,origin_not_allowed.
Was this page helpful?
Related articles
- HubSpotConnect HubSpot with a private app token, import lists with a field mapping, log sends and replies on the contact, and keep unsubscribes in step both ways.Integrations
- SlackPost replies, bounces, unsubscribes, campaign updates and a daily digest to Slack channels through incoming webhooks.Integrations
- ZapierStart Zaps from replies, sends, opens, clicks, bounces, unsubscribes, completed campaigns and new contacts, and create contacts, tag them, add them to lists and campaigns from any app.Integrations


