Skip to main content
Glama
bcharleson

Instantly MCP Server

create_lead_list

Build targeted lead lists for email outreach campaigns, with optional enrichment to add company details and social profiles automatically.

Instructions

Create a lead list.

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Implementation Reference

  • The main execution function (handler) for the create_lead_list tool. It constructs the request body from input params and makes a POST request to the Instantly API's /lead-lists endpoint to create the lead list.
    async def create_lead_list(params: CreateLeadListInput) -> str:
        """
        Create a lead list.
        
        Set has_enrichment_task=true to enable automatic lead enrichment.
        Enrichment adds company info, social profiles, and other data.
        """
        client = get_client()
        
        body: dict[str, Any] = {
            "name": params.name,
        }
        
        if params.has_enrichment_task is not None:
            body["has_enrichment_task"] = params.has_enrichment_task
        if params.owned_by:
            body["owned_by"] = params.owned_by
        
        result = await client.post("/lead-lists", json=body)
        return json.dumps(result, indent=2)
  • Pydantic input schema (BaseModel) defining the parameters for create_lead_list: required name, optional has_enrichment_task and owned_by.
    class CreateLeadListInput(BaseModel):
        """
        Input for creating a lead list.
        
        Set has_enrichment_task=true for auto-enrich.
        """
        
        model_config = ConfigDict(str_strip_whitespace=True, extra="ignore")
        
        name: str = Field(..., description="List name")
        has_enrichment_task: Optional[bool] = Field(default=None)
        owned_by: Optional[str] = Field(default=None, description="Owner UUID")
  • Registration of create_lead_list within the LEAD_TOOLS list, which is used to register all lead-related tools with the MCP server.
    LEAD_TOOLS = [
        list_leads,
        get_lead,
        create_lead,
        update_lead,
        list_lead_lists,
        create_lead_list,
        update_lead_list,
        get_verification_stats_for_lead_list,
        add_leads_to_campaign_or_list_bulk,
        delete_lead,
        delete_lead_list,
        move_leads_to_campaign_or_list,
    ]
  • Tool annotation in TOOL_ANNOTATIONS dictionary specifying behavior hints (destructiveHint: False) for create_lead_list, used during MCP tool registration.
    "create_lead_list": {"destructiveHint": False},
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide destructiveHint=false, indicating this is a non-destructive operation. The description adds useful context about the enrichment feature ('Set has_enrichment_task=true to enable automatic lead enrichment. Enrichment adds company info, social profiles, and other data.'), which goes beyond the annotations. However, it doesn't mention permissions, rate limits, or what happens after creation beyond enrichment.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with three sentences. The first states the purpose, the second explains the key parameter, and the third elaborates on enrichment benefits. Each sentence adds value, though the structure could be slightly improved by front-loading the enrichment explanation with the parameter mention.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there's an output schema (which handles return values), annotations cover safety (destructiveHint=false), and the description explains the key enrichment feature, this is adequate for a creation tool. However, it doesn't address prerequisites, permissions, or how this tool relates to sibling operations like list_lead_lists or update_lead_list, leaving some contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides specific guidance about the 'has_enrichment_task' parameter, explaining what it does and what enrichment includes. With 0% schema description coverage (schema has no parameter descriptions beyond the ref), this adds significant value. However, it doesn't mention the 'name' or 'owned_by' parameters, leaving those undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Create a lead list' which clearly indicates the verb (create) and resource (lead list). However, it doesn't differentiate from sibling tools like 'create_campaign' or 'create_account' - all are creation operations for different resources. The purpose is clear but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There are multiple creation tools (create_account, create_campaign, create_lead) and related list tools (list_lead_lists, update_lead_list, delete_lead_list), but the description offers no context about when this specific creation tool is appropriate versus other options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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