Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPort number for HTTP mode deployment8080
TOOL_CATEGORIESNoComma-separated list of tool categories to load (valid values: accounts, campaigns, leads, emails, analytics). Reduces context window usage by loading only needed categories.
INSTANTLY_API_KEYNoYour Instantly API key for authentication

Capabilities

Server capabilities have not been inspected yet.

Tools

Functions exposed to the LLM to take actions

NameDescription
list_accounts

List email accounts with cursor-based pagination (100 per page).

PAGINATION: If response contains pagination.next_starting_after, there are MORE results. Call again with starting_after= to get next page. Continue until pagination.next_starting_after is null.

Status codes: 1=Active, 2=Paused, -1/-2/-3=Errors Provider codes: 1=IMAP, 2=Google, 3=Microsoft, 4=AWS

Returns accounts with warmup status and campaign eligibility.

get_account

Get account details, warmup status, and campaign eligibility by email.

Returns comprehensive account information including:

  • Connection status and provider info

  • Warmup configuration and progress

  • Daily limits and sending gaps

  • Tracking domain settings

create_account

Create email account with IMAP/SMTP credentials.

Provider codes:

  • 1: IMAP (generic)

  • 2: Google Workspace

  • 3: Microsoft 365

  • 4: AWS SES

Requires valid IMAP and SMTP credentials for email sending.

update_account

Update account settings (partial update).

Common updates:

  • first_name, last_name: Display name

  • warmup: Warmup configuration (limit, advanced settings)

  • daily_limit: Max emails per day (1-100)

  • sending_gap: Minutes between emails (0-1440)

  • tracking_domain_name: Custom tracking domain

Only include fields you want to update.

manage_account_state

Manage account state: pause, resume, enable/disable warmup, or test vitals.

Actions:

  • pause: Stop all sending from this account

  • resume: Re-enable sending

  • enable_warmup: Start warmup process

  • disable_warmup: Stop warmup process

  • test_vitals: Test IMAP/SMTP connectivity

Use test_vitals to diagnose connection issues.

delete_account

🚨 PERMANENTLY delete an email account. CANNOT UNDO!

This action:

  • Removes the account from all campaigns

  • Deletes all account data

  • Cannot be reversed

Confirm with user before executing!

create_campaign

Create email campaign. Two-step process:

Step 1: Call with name/subject/body to discover available sender accounts Step 2: Call again with email_list to assign senders

Personalization variables:

  • {{firstName}}, {{lastName}}, {{companyName}}

  • {{email}}, {{website}}, {{phone}}

  • Any custom variables defined for leads

Use sequence_steps for multi-step follow-up sequences.

IMPORTANT API v2 Structure:

  • Each step must have type="email"

  • Subject/body wrapped in variants array: variants=[{subject, body}]

  • Delay is in DAYS (not minutes)

  • Body should be HTML formatted

list_campaigns

List campaigns with cursor-based pagination (100 per page).

PAGINATION: If response contains pagination.next_starting_after, there are MORE results. Call again with starting_after= to get next page. Continue until pagination.next_starting_after is null.

Note: search filters by campaign NAME only, not by status. To filter by status, use campaign_status in get_daily_campaign_analytics.

Returns campaign list with status, lead counts, and performance metrics.

get_campaign

Get campaign details: config, sequences, schedules, sender accounts, tracking, status.

Returns comprehensive campaign information including:

  • Email sequences and their content

  • Schedule configuration

  • Sender account assignments

  • Tracking settings (opens, clicks)

  • Campaign status and statistics

update_campaign

Update campaign settings (partial update).

Common updates:

  • name: Campaign display name

  • sequences: Email sequence steps

  • email_list: Sender account assignments

  • daily_limit: Max emails per day per account

  • email_gap: Minutes between sends

  • open_tracking, link_tracking: Tracking toggles

Only include fields you want to update.

activate_campaign

Activate campaign to start sending.

Prerequisites (all required):

  1. At least one sender account assigned (email_list)

  2. At least one lead added to the campaign

  3. Email sequences configured

  4. Schedule configured

Use get_campaign to verify all prerequisites are met.

pause_campaign

Pause campaign to stop sending.

Effects:

  • Immediately stops all email sending

  • Leads remain in the campaign

  • In-progress sequences are paused

Use activate_campaign to resume sending.

delete_campaign

🚨 PERMANENTLY delete a campaign. CANNOT UNDO!

⚠️ REQUIRES USER CONFIRMATION before executing!

This action:

  • Permanently removes the campaign

  • Deletes all campaign data, sequences, and settings

  • Removes leads from this campaign (leads themselves are NOT deleted)

  • Cannot be reversed

Before calling this tool, you MUST:

  1. Confirm with the user that they want to delete this campaign

  2. Verify the campaign_id is correct

  3. Warn them this action cannot be undone

search_campaigns_by_contact

Find all campaigns that a specific contact/lead is part of.

Useful for:

  • Checking if a lead is already in any campaigns

  • Finding duplicate enrollments

  • Auditing lead campaign membership

Returns list of campaigns the contact email is enrolled in.

list_leads

List leads with cursor-based pagination (100 per page).

PAGINATION: If response contains pagination.next_starting_after, there are MORE results. Call again with starting_after= to get next page. Continue until pagination.next_starting_after is null.

Filter values:

  • FILTER_VAL_CONTACTED: Leads that have been contacted

  • FILTER_VAL_NOT_CONTACTED: Leads not yet contacted

  • FILTER_VAL_COMPLETED: Leads that completed sequence

  • FILTER_VAL_ACTIVE: Currently active leads

Use distinct_contacts=true to deduplicate by email.

get_lead

Get lead details by ID.

Returns comprehensive lead information including:

  • Contact details (email, name, company, phone)

  • Custom variables

  • Campaign/list membership

  • Sequence status and history

  • Interest status

create_lead

Create a single lead with custom variables.

Use skip_if_in_campaign=true to prevent duplicates (recommended).

Custom variables must match field names defined in the campaign. Example: {"industry": "Technology", "company_size": "50-100"}

For bulk imports (10+ leads), use add_leads_to_campaign_or_list_bulk instead.

update_lead

Update lead (partial update).

⚠️ IMPORTANT: custom_variables REPLACES the entire object! To preserve existing custom variables:

  1. First call get_lead to retrieve current values

  2. Merge your changes with existing values

  3. Pass the complete merged object

Example: If lead has {"industry": "Tech"} and you want to add {"size": "Large"}, you must pass {"industry": "Tech", "size": "Large"} - not just {"size": "Large"}

list_lead_lists

List lead lists with cursor-based pagination (100 per page).

PAGINATION: If response contains pagination.next_starting_after, there are MORE results. Call again with starting_after= to get next page. Continue until pagination.next_starting_after is null.

Lead lists are containers for organizing leads outside of campaigns. Use has_enrichment_task filter to find lists with auto-enrichment enabled.

create_lead_list

Create a lead list.

Set has_enrichment_task=true to enable automatic lead enrichment. Enrichment adds company info, social profiles, and other data.

update_lead_list

Update lead list name, enrichment settings, or owner.

get_verification_stats_for_lead_list

Get email verification statistics for a lead list.

Returns breakdown of verification results:

  • Valid emails

  • Invalid/bounced emails

  • Risky emails

  • Unknown status

add_leads_to_campaign_or_list_bulk

Bulk add up to 1,000 leads. 10-100x faster than create_lead.

Provide EITHER campaign_id OR list_id (not both).

Each lead requires at minimum an email address. Custom variables must match campaign field definitions.

Use skip_if_in_campaign=true to prevent duplicates (recommended).

delete_lead

πŸ—‘οΈ PERMANENTLY delete a lead. CANNOT UNDO!

This action:

  • Removes the lead from all campaigns and lists

  • Deletes all lead data and history

  • Cannot be reversed

Confirm with user before executing!

delete_lead_list

🚨 PERMANENTLY delete a lead list. CANNOT UNDO!

⚠️ REQUIRES USER CONFIRMATION before executing!

This action:

  • Permanently removes the lead list

  • Leads in the list may be orphaned (check your workflow)

  • Cannot be reversed

Before calling this tool, you MUST:

  1. Confirm with the user that they want to delete this list

  2. Verify the list_id is correct

  3. Warn them this action cannot be undone

move_leads_to_campaign_or_list

Move or copy leads between campaigns/lists.

Runs as background job for large operations.

Source selection (use one):

  • ids: Specific lead IDs to move

  • search + campaign/list_id: Filter leads by search term

  • filter + campaign/list_id: Filter by status

Destination (use one):

  • to_campaign_id: Target campaign

  • to_list_id: Target list

Set copy_leads=true to copy instead of move.

get_server_info

Get Instantly MCP server information.

Returns server version, loaded categories, and configuration status. Useful for debugging and verifying server setup.

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/bcharleson/instantly-mcp-python'

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