Instantly MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port number for HTTP mode deployment | 8080 |
| TOOL_CATEGORIES | No | Comma-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_KEY | No | Your Instantly API key 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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_accountsA | 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_accountA | Get account details, warmup status, and campaign eligibility by email. Returns comprehensive account information including:
|
| create_accountA | Create email account with IMAP/SMTP credentials. Provider codes:
Requires valid IMAP and SMTP credentials for email sending. |
| update_accountA | Update account settings (partial update). Common updates:
Only include fields you want to update. |
| manage_account_stateA | Manage account state: pause, resume, enable/disable warmup, or test vitals. Actions:
Use test_vitals to diagnose connection issues. |
| delete_accountA | đ¨ PERMANENTLY delete an email account. CANNOT UNDO! This action:
Confirm with user before executing! |
| create_campaignA | 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:
Use sequence_steps for multi-step follow-up sequences. IMPORTANT API v2 Structure:
|
| list_campaignsA | 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_campaignA | Get campaign details: config, sequences, schedules, sender accounts, tracking, status. Returns comprehensive campaign information including:
|
| update_campaignA | Update campaign settings (partial update). Common updates:
Only include fields you want to update. |
| activate_campaignA | Activate campaign to start sending. Prerequisites (all required):
Use get_campaign to verify all prerequisites are met. |
| pause_campaignA | Pause campaign to stop sending. Effects:
Use activate_campaign to resume sending. |
| delete_campaignA | đ¨ PERMANENTLY delete a campaign. CANNOT UNDO! â ď¸ REQUIRES USER CONFIRMATION before executing! This action:
Before calling this tool, you MUST:
|
| search_campaigns_by_contactA | Find all campaigns that a specific contact/lead is part of. Useful for:
Returns list of campaigns the contact email is enrolled in. |
| list_leadsA | 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:
Use distinct_contacts=true to deduplicate by email. |
| get_leadB | Get lead details by ID. Returns comprehensive lead information including:
|
| create_leadA | 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_leadA | Update lead (partial update). â ď¸ IMPORTANT: custom_variables REPLACES the entire object! To preserve existing custom variables:
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_listsA | 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_listB | 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_listB | Update lead list name, enrichment settings, or owner. |
| get_verification_stats_for_lead_listB | Get email verification statistics for a lead list. Returns breakdown of verification results:
|
| add_leads_to_campaign_or_list_bulkA | 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_leadA | đď¸ PERMANENTLY delete a lead. CANNOT UNDO! This action:
Confirm with user before executing! |
| delete_lead_listA | đ¨ PERMANENTLY delete a lead list. CANNOT UNDO! â ď¸ REQUIRES USER CONFIRMATION before executing! This action:
Before calling this tool, you MUST:
|
| move_leads_to_campaign_or_listA | Move or copy leads between campaigns/lists. Runs as background job for large operations. Source selection (use one):
Destination (use one):
Set copy_leads=true to copy instead of move. |
| get_server_infoA | 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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