Skip to main content
Glama
bcharleson

Instantly MCP Server

delete_account

Destructive

Permanently remove an email account from the Instantly.ai platform. This action deletes all account data, removes it from campaigns, and cannot be reversed.

Instructions

🚨 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!

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Implementation Reference

  • The main async handler function that executes the delete_account tool by encoding the email and calling client.delete('/accounts/{email}') API endpoint. Returns JSON success response.
    async def delete_account(params: DeleteAccountInput) -> str:
        """
        🚨 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!
        """
        client = get_client()
        email_encoded = quote(params.email, safe="")
        result = await client.delete(f"/accounts/{email_encoded}")
        return json.dumps({"success": True, "deleted": params.email, **result}, indent=2)
  • Pydantic BaseModel schema for DeleteAccountInput, validates the required 'email' field with description warning of permanence.
    class DeleteAccountInput(BaseModel):
        """Input for deleting an account. ⚠️ PERMANENT - CANNOT UNDO!"""
        
        model_config = ConfigDict(str_strip_whitespace=True, extra="ignore")
        
        email: str = Field(..., description="Email to DELETE PERMANENTLY")
  • TOOL_ANNOTATIONS dictionary entry registering MCP annotations for delete_account tool: destructiveHint=True and confirmationRequiredHint=True.
    # Account tools
    "list_accounts": {"readOnlyHint": True},
    "get_account": {"readOnlyHint": True},
    "create_account": {"destructiveHint": False},
    "update_account": {"destructiveHint": False},
    "manage_account_state": {"destructiveHint": False},
    "delete_account": {"destructiveHint": True, "confirmationRequiredHint": True},
  • Includes delete_account in ACCOUNT_TOOLS list, which is used by get_all_tools() for dynamic tool registration in the MCP server.
    ACCOUNT_TOOLS = [
        list_accounts,
        get_account,
        create_account,
        update_account,
        manage_account_state,
        delete_account,
    ]
Behavior5/5

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

The description adds significant behavioral context beyond the 'destructiveHint: true' annotation. It details specific consequences: 'Removes the account from all campaigns', 'Deletes all account data', and 'Cannot be reversed'. This provides concrete information about what gets destroyed and the irreversible nature, which the annotation alone doesn't specify.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the critical warning. Each sentence adds value: the first states the action with urgency, the bullet points detail consequences, and the final sentence provides usage guidance. There's no redundant or wasted text, making it highly efficient.

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

Completeness5/5

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

Given the tool's high complexity (destructive, irreversible operation) and the presence of annotations and an output schema, the description is complete. It covers the purpose, behavioral consequences, and usage prerequisites. The output schema likely handles return values, so the description appropriately focuses on the irreversible nature and required confirmation.

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?

With 0% schema description coverage for the single parameter, the description doesn't explicitly mention the 'email' parameter or its semantics. However, it implies the target is 'an email account', which aligns with the parameter. The description compensates by emphasizing the permanence ('PERMANENTLY delete'), but doesn't provide format or validation details for the email parameter.

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

Purpose5/5

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

The description explicitly states the action ('PERMANENTLY delete') and resource ('an email account'), distinguishing it from sibling tools like 'delete_campaign' or 'delete_lead' by specifying the account type and irreversible nature. It uses strong language ('🚨', 'CANNOT UNDO!') to emphasize the specific destructive operation.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: 'Confirm with user before executing!' This indicates a prerequisite user confirmation step. It also implicitly distinguishes from alternatives like 'manage_account_state' or 'update_account' by highlighting the permanent deletion aspect, though it doesn't name specific alternatives.

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