Skip to main content
Glama
katekruger

instantly-mcp

by katekruger

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
INSTANTLY_API_KEYYesYour Instantly v2 API key, obtained from Settings → Integrations → API. Required for authentication.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_campaign_analyticsA

Analytics for ONE campaign over an optional date range (YYYY-MM-DD).

Returns sent/opens/replies/clicks/bounces/unsubscribes/opportunities counts plus computed open/reply/click/bounce rates.

get_account_analyticsA

Workspace-level daily sending analytics, aggregated across accounts.

NOTE: backed by GET /accounts/analytics/daily (there is no single

"account analytics overview" endpoint in v2). Returns per-day rows plus

a computed totals+rates roll-up.

get_campaign_steps_analyticsC

Per-sequence-step (and variant) analytics for one campaign.

list_campaignsA

List campaigns (id, name, status, created).

Optional status filter (int): 0=draft, 1=active, 2=paused, 3=completed, 4=running_subsequences, -1=accounts_unhealthy, -2=bounce_protect, -99=account_suspended.

get_campaignA

Get one campaign's full configuration (schedule, sequences, status).

list_leadsA

List leads, optionally filtered by campaign, list, or search text.

NOTE: v2 lists leads via POST /leads/list (not GET); the campaign filter

field is campaign, not campaign_id.

get_leadA

Get one lead by id.

search_leads_by_emailA

Find leads matching an email (across campaigns/lists) — who is this and which campaign(s) are they in.

add_leadsA

Add leads in bulk to a campaign OR a list (provide exactly one target).

leads is a list of objects: at least email (required for campaigns), plus optional first_name, last_name, company_name, job_title, phone, website, personalization, and custom_variables (a dict). Duplicate emails within the batch are deduped; skip_if_in_workspace avoids re-loading existing contacts (safe for scheduled re-runs). LOW_WRITE.

update_leadC

Update editable fields on a lead (first_name, last_name, company_name, job_title, phone, website, personalization, custom_variables, ...). LOW_WRITE.

set_lead_interest_statusB

Set a lead's interest status.

status is a label — one of: interested, meeting_booked, meeting_completed, won, out_of_office, not_interested, wrong_person, lost, do_not_contact — or a raw int (-4..4). LOW_WRITE.

NOTE: v2 keys this endpoint (POST /leads/update-interest-status) by

lead_email, not lead id, so this tool takes the email.

move_leadA

Move (or copy) one lead to another campaign or list. HIGH_WRITE.

NOTE: v2 POST /leads/move is asynchronous and returns a BackgroundJob;

it needs the SOURCE (from_campaign_id or from_list_id) as well as the

destination. Poll the returned job id if you need completion status.

delete_leadA

DESTRUCTIVE: permanently delete a lead. HIGH_WRITE + hard-blocked — always requires confirm=true, even in autonomous mode.

list_lead_listsB

List lead lists (id, name).

create_lead_listC

Create a new lead list. LOW_WRITE.

preview_campaign_buildA

Preview campaign, variants, schedule, senders, tags, and lead-list mapping.

Makes ZERO HTTP calls.

create_campaignA

Create a campaign. HIGH_WRITE. Created PAUSED — launch separately.

Convenience: pass name, subject, body and a sensible Mon-Fri business- hours schedule + single-step sequence are generated for you. For full control, pass schedule (a campaign_schedule object with a schedules array) and/or sequences (list of {steps:[{type,delay,variants:[{subject,body}]}]}).

update_campaignC

Patch campaign settings (name, campaign_schedule, sequences, ...). HIGH_WRITE.

launch_campaignB

Activate/resume a campaign so it starts sending. HIGH_WRITE.

NOTE: v2 path is POST /campaigns/{id}/activate.

pause_campaignC

Pause/stop a campaign. HIGH_WRITE.

list_emailsA

List Unibox emails (sends, replies, manual). Filter by campaign, lead email, sending account, or unread. # NOTE: this endpoint is rate-limited to 20 req/min by Instantly.

get_emailA

Get one email's full subject/body/thread.

count_unreadB

Count unread Unibox messages.

reply_to_emailA

Reply to an inbound Unibox email. HIGH_WRITE (sends mail from your account).

If eaccount (the sending account) or subject are omitted, they're derived from the original email ("Re: ") on execute. Set html=true to send body as HTML instead of plain text.

NOTE: v2 POST /emails/reply requires reply_to_uuid, eaccount, subject, and

a body object ({html|text}).

forward_emailB

Forward a Unibox email to to (comma-separated addresses). HIGH_WRITE.

If body is omitted the original message is included. eaccount/subject default from the original on execute.

NOTE: v2 POST /emails/forward requires reply_to_uuid, to_address_email_list,

eaccount, subject, and either a body or include_original_body=true.

mark_thread_readB

Mark all emails in a thread as read. LOW_WRITE (low risk).

list_accountsC

List sender email accounts with status, warmup status, and daily limit.

get_accountA

Get status/settings for one sending account (by email).

pause_accountA

Pause a sending account (stops it sending). HIGH_WRITE + hard-blocked — always requires confirm=true. Deliverability control.

resume_accountB

Resume a paused sending account. HIGH_WRITE.

update_accountB

Update account settings, e.g. {"daily_limit": 40}, sending_gap, signature, or a nested "warmup" object. HIGH_WRITE (affects deliverability).

list_blocklistC

List blocked contacts/domains.

NOTE: v2 path is /block-lists-entries.

add_to_blocklistA

Add emails/domains to the blocklist (plain strings). LOW_WRITE.

NOTE: v2 POST /block-lists-entries/bulk-create with body {"bl_values": [...]}.

remove_from_blocklistA

Remove emails/domains from the blocklist. HIGH_WRITE + hard-blocked — always requires confirm=true.

NOTE: v2 POST /block-lists-entries/bulk-delete with {"bl_values": [...]}

(bulk-delete body shape not fully documented in the public reference —

verify against your workspace on first real call).

verify_emailA

Verify a single email address (valid / invalid / catch-all).

NOTE: POST /email-verification consumes a verification credit. It returns

"pending" if it takes >10s — call again to poll the stored result.

get_workspaceA

Current workspace info and plan ids (useful to see what the key can reach).

list_webhooksA

List configured webhooks.

list_webhook_event_typesA

List the webhook event types this workspace supports (e.g. reply_received, lead_meeting_booked, email_sent/opened/clicked/replied/bounced/unsubscribed).

create_webhookA

Create webhook(s) pointing at url for the given event types. HIGH_WRITE.

Receiving webhooks needs a publicly reachable URL (the hosted deployment, not local stdio) and an Instantly plan tier that includes webhooks.

NOTE: v2 POST /webhooks takes a SINGULAR event_type per webhook, so this

tool creates one webhook per requested event type and returns them all.

delete_webhookA

Delete a webhook. HIGH_WRITE + hard-blocked — always requires confirm=true.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/katekruger/instantly-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server