MCP server for the Instantly email outreach and automation platform, providing tools to manage leads, campaigns, accounts, and analytics
The server provides 26 tools with mostly complete input schemas and descriptions, but significant gaps exist. Naming follows the verb_noun convention consistently (create_lead, get_lead, list_leads, etc.), which is correct. Descriptions are present for all tools and most parameters, averaging ~80-120 characters, acceptable but some are sparse. Parameter descriptions are generally adequate but could be more prescriptive about valid values and constraints. Critical issues: (1) Tools 11 and 12 (instantly_create_campaign, instantly_update_campaign) have empty schemas ({"type":"object"} with no properties), rendering them unusable, schema score 0 for both. (2) Most tools lack enum constraints for values like 'status' in list_campaigns (status param accepts 0-4 but only described in text, not as enum). (3) No output schemas documented anywhere, LLMs cannot plan downstream calls. (4) Error handling returns plain text errors without recovery guidance or categorization. (5) Some parameter descriptions lack format specs: 'phone' accepts any string, no validation pattern; 'list_id' and 'campaign' are described as UUID but not validated; date parameters in get_campaign_analytics lack format specification. (6) The custom_variables parameter (in create_lead) is typed as object but has no schema for its properties. (7) No per-tool documentation of what fields are returned, what UUIDs can be used where, or how to chain tools (e.g., what ID does create_lead return?). Positive: tool naming is clear and action-oriented; descriptions exist for all tools; parameter typing is mostly present; error handling uses isError flag; tool annotations are present (Risk levels declared). The server is functional but would not pass production code review for agent tooling.
Create a new email account in Instantly
Create a new campaign in Instantly
Create a new lead in Instantly
Delete an email account
Delete a campaign
Delete a lead by ID or email address
Get details of an email account
Two tools (instantly_create_campaign, instantly_update_campaign) have empty input schemas, {"type":"object"} with no properties defined. These tools are unusable; the schema must enumerate all required and optional fields with types and descriptions.
No output/return schemas documented for any tool. LLMs cannot predict what fields are returned (e.g., does create_lead return a lead_id, or the full lead object?), forcing them to guess or make extra lookup calls. All tools must document their response structure.
Status and enumerated parameters are described as text (e.g., 'Filter campaigns by status (0: Draft, 1: Active, ...)') instead of declared as JSON Schema enums. LLMs cannot reliably parse text descriptions of enums, they hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Get details of a campaign
Get analytics for a specific campaign or all campaigns for a date range
Get details of a lead by ID
Get warmup analytics for specified email accounts
List email accounts in Instantly
List campaigns with pagination support
List leads with optional filters and search functionality
Get information about the MCP server
Merge multiple leads into a target lead
Pause an email account
Remove a lead from a subsequence
Resume a paused email account
Start a campaign
Stop a running campaign
Test the health and connectivity of email accounts in your Instantly workspace
Update email account settings
Update a campaign's settings
Update a lead's information
Update a lead's interest status
Error handling returns plain text in isError response without recovery guidance. E.g., 'Error creating lead' tells the LLM nothing about why it failed or what to do next. Errors must be categorized (retryable vs. user-fixable) and include actionable recovery hints.
Date/time format constraints are missing. get_campaign_analytics accepts 'start_date' and 'end_date' described as 'YYYY-MM-DD format' in text, but no JSON Schema format constraint ("format": "date") is declared. Parameter descriptions must include regex patterns or format constraints.
The custom_variables parameter in create_lead is typed as object but has no schema for its internal properties. The LLM cannot know what keys are valid or what type each should be.
Several parameters lack validation or format specification: 'phone' accepts any string with no pattern; 'website' has no validation; 'personalization' is unconstrained. Add format specs, length limits, or enum values where applicable.
No documentation of idempotency. Are merge_leads, delete_lead, and create_lead idempotent? Agents retry on ambiguous failures, non-idempotent operations risk duplicate side effects. Each write tool must declare its idempotency semantics.
Parameter descriptions are minimal and often omit context about when to use a tool or what prerequisites exist. E.g., 'Merge multiple leads into a target lead' does not explain: What happens to the source leads? Are their emails preserved? What fields take precedence? Add actionable dependency hints.
Pagination is supported (limit, starting_after) but no 'total_count' or 'next_cursor' field is documented in output. LLMs cannot know when they have retrieved all results or whether pagination is exhausted without this information.
instantly_delete_lead uses oneOf constraint with [id] or [email] but no description explains how the tool resolves the choice or what happens if both are provided. Undocumented parameter relationships cause misuse.