Tools Reference
Complete reference for all 15 Keplars MCP tools, including inputs, outputs, and example prompts.
All 15 tools are available to any connected MCP client. Tools that send to large lists include a confirmation step before dispatching.
Two API keys
Keplars MCP uses two keys with different scopes. Email send tools require the send key (Authorization: <live_key>). All other tools require the admin key (X-Admin-Api-Key: <adm_key>). See the setup guide for how to configure both.
These tools use the send key.
send_transactional_email
Sends a single email immediately through the instant priority queue. Use for 2FA codes, password resets, order confirmations, and any time-sensitive message.
| Input | Type | Required | Description |
|---|---|---|---|
to | string | Yes | Recipient email address |
subject | string | Yes | Email subject line |
body | string | Yes | HTML or plain text body |
from_name | string | No | Sender display name |
from_email | string | No | Sender address (uses workspace default if omitted) |
reply_to | string | No | Reply-to address |
Example prompt
"Send a password reset email to [email protected] with a link to reset.example.com/token123"
send_bulk_email
Sends the same email to multiple recipients through the low-priority queue. Requires confirmation before dispatch.
| Input | Type | Required | Description |
|---|---|---|---|
recipients | string[] | Yes | Array of recipient email addresses |
subject | string | Yes | Email subject line |
body | string | Yes | HTML or plain text body |
from_email | string | No | Sender address |
Confirmation required
The AI will show you the recipient count and ask you to confirm before sending. Reply "yes" to proceed or "no" to cancel.
Example prompt
"Send an announcement to [email protected], [email protected], and [email protected] with subject 'Platform maintenance tonight' and body explaining 2 hours of downtime starting midnight UTC"
send_templated_email
Sends an email using a saved Keplars template with optional variable substitution. Queued as a normal-priority async email.
| Input | Type | Required | Description |
|---|---|---|---|
to | string | Yes | Recipient email address |
template_id | string | Yes | Template ID from Keplars |
variables | object | No | Key-value pairs injected into template placeholders |
from_email | string | No | Sender address |
Example prompt
"Send the welcome email template tmpl-abc123 to [email protected] with variables first_name=Sarah and plan=Pro"
Templates
These tools use the admin key.
list_templates
Returns all email templates in your workspace. Results are cached for 60 seconds.
No inputs required.
Example prompt
"Show me all my Keplars email templates"
get_template
Returns the full content and metadata of a single template. Results are cached for 5 minutes.
| Input | Type | Required | Description |
|---|---|---|---|
template_id | string | Yes | Template ID to retrieve |
Example prompt
"Get the details of template tmpl-abc123"
Contacts
These tools use the admin key.
list_audiences
Returns all contact audiences in your workspace. Results are cached for 60 seconds.
No inputs required.
Example prompt
"List all my Keplars audiences"
get_audience
Returns details and contact count for a single audience. Results are cached for 60 seconds.
| Input | Type | Required | Description |
|---|---|---|---|
audience_id | string | Yes | Audience ID to retrieve |
Example prompt
"How many contacts are in audience aud-xyz?"
add_contact
Adds a single contact to an audience.
| Input | Type | Required | Description |
|---|---|---|---|
audience_id | string | Yes | Target audience ID |
email | string | Yes | Contact email address |
first_name | string | No | Contact first name |
last_name | string | No | Contact last name |
tags | string[] | No | Tags to apply to the contact |
Example prompt
"Add [email protected] to my newsletter audience aud-123 with first name Jane and tag 'vip'"
bulk_add_contacts
Imports multiple contacts into an audience in a single call.
| Input | Type | Required | Description |
|---|---|---|---|
audience_id | string | Yes | Target audience ID |
contacts | object[] | Yes | Array of contacts, each with email, optional first_name, optional last_name |
Example prompt
"Bulk import these 3 contacts into audience aud-456: [email protected] (Alice Smith), [email protected] (Bob Jones), [email protected]"
remove_contact
Removes a contact from an audience.
| Input | Type | Required | Description |
|---|---|---|---|
audience_id | string | Yes | Audience ID |
contact_id | string | Yes | Contact ID to remove |
Example prompt
"Remove contact cid-789 from audience aud-123"
Campaigns
These tools use the admin key.
list_campaigns
Returns all campaigns in your workspace.
No inputs required.
Example prompt
"Show me all my Keplars campaigns"
create_campaign
Creates a new campaign targeting an audience with a template.
| Input | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Campaign name |
audience_id | string | Yes | Target audience ID |
template_id | string | Yes | Email template ID |
subject | string | Yes | Email subject line |
from_email | string | No | Sender address |
Example prompt
"Create a campaign called 'August Newsletter' targeting audience aud-123, using template tmpl-abc, subject 'What is new in August'"
send_campaign
Dispatches a campaign to its audience. Fetches the audience size first and requires confirmation before sending.
| Input | Type | Required | Description |
|---|---|---|---|
campaign_id | string | Yes | Campaign ID to send |
Confirmation required
Before sending, the AI fetches the campaign details and shows you the audience size. Confirm with "yes" to dispatch or "no" to cancel.
Example prompt
"Send campaign camp-456"
get_campaign_stats
Returns delivery statistics for a campaign: sent count, failed count, open count, and current status.
| Input | Type | Required | Description |
|---|---|---|---|
campaign_id | string | Yes | Campaign ID to check |
Example prompt
"What are the stats for campaign camp-456?"
Analytics
These tools use the admin key.
list_verified_domains
Returns all verified sending domains in your workspace. Results are cached for 5 minutes.
No inputs required.
Example prompt
"Which domains have I verified in Keplars?"