Skip to content

Connect Interseller to Claude: Lookup Leads and Verify Pro Emails

Learn how to connect Interseller to claude using Truto. Step-by-step guide to tool calling, API quirks, and autonomous workflows.

Uday Gajavalli Uday Gajavalli · · 10 min read
Connect Interseller to Claude: Lookup Leads and Verify Pro Emails

If you need to connect Interseller to Claude to automate lead prospecting, email verification, and campaign tracking, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's tool calls and Interseller's REST API. You can either build and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL. If your team uses ChatGPT, check out our guide on connecting Interseller to ChatGPT or explore our broader architectural overview on connecting Interseller to AI Agents.

Giving a Large Language Model (LLM) read and write access to your sales outreach platform is an engineering challenge. You have to handle OAuth token lifecycles, map Interseller's nested JSON schemas to MCP tool definitions, and deal with specific API rate limits. Every time an endpoint updates or a new data structure is introduced, you have to update your server code, redeploy, and test the integration. This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Interseller, connect it natively to Claude, and execute complex outreach workflows using natural language.

The Engineering Reality of the Interseller API

A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, the reality of implementing it against Interseller's API requires dealing with domain-specific quirks. You are not just building a generic proxy - you are translating the nuances of campaign sequences, real-time email verification, and destructive team configurations into a format an LLM can understand without hallucinating.

If you decide to build a custom MCP server for Interseller, here are the specific architectural challenges you will own:

Destructive Array Updates (Blacklists) The Interseller API handles array updates in a way that often tricks LLMs. For example, updating a team blacklist via the API is not an additive operation. If you send an array to the blacklist endpoint, it wipes the existing list and substitutes it entirely with the payload you provided. If Claude decides to "add" a domain to the blacklist by simply sending the single domain, it will inadvertently delete your entire historical suppression list. A properly architected MCP server must expose tools with schemas that explicitly document this destructive behavior, forcing the model to first fetch the existing list, append the new item, and then send the complete array back.

Dictionary-Based Step Statistics When retrieving statistics for a campaign, most APIs return an array of objects. Interseller's step-level statistics endpoint returns an object keyed by step index (e.g., "0", "1"). This dictionary-based return structure requires precise JSON Schema definitions for the MCP tool so the LLM knows it needs to iterate over object keys rather than array indices. Without a dynamically generated schema derived from the actual API documentation, Claude will attempt to map over the response as an array and fail silently when compiling its final output to the user.

Strict Handling of Rate Limits Interseller enforces rate limits to protect its infrastructure, particularly around heavy operations like email verification and bulk contact lookups. When your AI agent attempts to process a list of 50 leads simultaneously, it will hit an HTTP 429 error. Truto does not retry, throttle, or apply backoff on rate limit errors. Instead, Truto normalizes upstream rate limit info into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF specification and passes the raw 429 error back to the caller. The caller (the agent framework or the user's prompt sequence) is entirely responsible for implementing retry logic and backoff. Do not rely on your MCP server to absorb these errors - architect your agent to expect and handle standard 429s gracefully.

How to Generate an Interseller MCP Server with Truto

Truto dynamically generates MCP tools based on the underlying API documentation and schemas, ensuring the tools exposed to Claude always match the current state of the Interseller API.

There are two ways to generate an MCP server in Truto: via the UI or programmatically via the API.

Method 1: Generating the Server via the Truto UI

For administrators setting up Claude Desktop for internal use, the UI is the fastest path.

  1. Log into Truto and navigate to your Integrated Accounts.
  2. Select the connected Interseller account.
  3. Click the MCP Servers tab.
  4. Click Create MCP Server.
  5. Select your desired configuration (e.g., restrict to read-only methods, or filter by specific tags like campaigns or verification).
  6. Copy the generated secure MCP server URL. This URL contains a hashed token that authenticates the server - treat it like a password.

Method 2: Generating the Server via the Truto API

If you are building a product that deploys AI agents for your end-users, you must provision these servers programmatically. Truto provides a REST endpoint to generate scoped, temporary MCP servers on demand.

curl -X POST https://api.truto.one/integrated-account/{integrated_account_id}/mcp \
  -H "Authorization: Bearer YOUR_TRUTO_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Interseller Prospecting Agent",
    "config": {
      "methods": ["read", "create", "update"],
      "tags": ["campaigns", "verification"]
    },
    "expires_at": "2026-12-31T23:59:59Z"
  }'

The API response returns the fully qualified, authenticated MCP server URL:

{
  "id": "mcp-token-789",
  "name": "Interseller Prospecting Agent",
  "config": { "methods": ["read", "create", "update"] },
  "expires_at": "2026-12-31T23:59:59Z",
  "url": "https://api.truto.one/mcp/a1b2c3d4e5f6g7h8i9j0..."
}

Connecting the MCP Server to Claude

Once you have the Truto MCP URL, you need to register it with Claude. This process operates entirely over Server-Sent Events (SSE) or stdio depending on the transport layer you choose. Truto's managed MCP URLs utilize standard HTTP POST with JSON-RPC 2.0 messages.

Method 1: Connecting via the Claude UI

For users running Claude Desktop or using Claude via the Anthropic web console (for supported enterprise tiers):

  1. Open Settings in Claude.
  2. Navigate to Integrations (or Connectors depending on your version).
  3. Click Add MCP Server.
  4. Give the integration a name (e.g., "Interseller Ops").
  5. Paste the Truto MCP URL into the connection field and save.

Claude will immediately ping the server's tools/list endpoint, parse the available Interseller tools, and make them available in your context window.

Method 2: Connecting via the Claude Config File

If you are managing Claude Desktop deployments for developers or configuring headless agents via the Anthropic CLI, you can directly update the claude_desktop_config.json file.

Truto's endpoints are remote, so you utilize the official @modelcontextprotocol/server-sse package as an intermediary transport layer.

{
  "mcpServers": {
    "interseller_ops": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/a1b2c3d4e5f6g7h8i9j0..."
      ]
    }
  }
}

Restart Claude Desktop. The model will initialize the connection and announce its capabilities, preparing itself to execute tool calls against your Interseller instance.

Core Interseller Tools for Claude

Truto maps the complete Interseller API into individual, documented MCP tools. Rather than giving the LLM generic CRUD operations (get_resource), Truto generates highly descriptive, semantic tool names with complete JSON schemas injected with parameter descriptions.

Here are 7 high-leverage hero tools your AI agent can use immediately.

list_all_interseller_emails

This tool looks up professional email addresses for a person by providing their name and company domain. It returns ranked results containing the email, the system verdict, and a details object with MX validation flags.

"Find the professional email address for 'John Smith' at 'acmecorp.com'. I need to see the verdict and the MX validation flags to ensure it is safe to email."

create_a_interseller_email

Once an email is identified, this tool performs real-time validation using MX testing to determine if the address can actually accept emails, returning flags for disposable status, free services, and reachability.

"Take the email address 'jsmith@acmecorp.com' and run a real-time validation check. Tell me if it is a catch-all domain or if it is fully reachable."

list_all_interseller_campaigns

Retrieves a list of all Interseller campaigns in your workspace. You can optionally filter by archived status or search by name. This is critical context before an agent attempts to inject a new lead into a sequence.

"Pull a list of my active Interseller campaigns. I am looking for the one titled 'Q3 Enterprise Outreach'. Give me its ID."

get_single_interseller_campaign_by_id

Retrieves the deep metadata for a specific campaign, including its email steps, custom fields, schedule, and A/B testing variants.

"Get the details for campaign ID 4592. I need to see the email copy for step 1 and verify what custom fields are required before I add a contact to it."

get_single_interseller_campaign_step_stat_by_id

Retrieves step-level performance statistics (sent, viewed, clicked, replied) for a specific campaign. As noted earlier, this returns an object keyed by step index, which Truto's schema helps Claude parse correctly.

"Look up the step stats for campaign ID 4592. Compare the open rate of step 0 against step 1, and tell me where the biggest drop-off is occurring."

list_all_interseller_contact_activities

Lists all historical activities for a specific contact, including messages sent, opens, replies, and bookings. Essential for account research before drafting personalized follow-ups.

"Pull the activity history for contact ID 8831. Did they open the last email we sent them? If so, when was the last time they viewed it?"

update_a_interseller_team_blacklist_by_id

Replaces the entire Interseller team blacklist with a new list of domains and email addresses. Because this is a destructive replacement, the agent must fetch the existing list first.

"We need to add 'competitor.com' to the team blacklist. Fetch the current blacklist, append 'competitor.com' to the array, and then execute the update tool to overwrite the list safely."

For the complete inventory of available endpoints, request schemas, and response structures, refer to the Interseller integration page.

Workflows in Action

By chaining these tools together, Claude transforms from a simple chatbot into an autonomous sales operations engine. Here are three concrete workflows demonstrating how an agent navigates the Interseller API.

1. Autonomous Prospecting and Validation

Sales development reps spend hours guessing emails and running them through separate validation tools. Claude can execute this entirely in the background.

"Find the work email for Sarah Jenkins at TechCorp (techcorp.io). Run a real-time verification on the best result. If it's valid and reachable, list my active campaigns, find the 'TechCorp Tier 1' sequence, and tell me what custom fields I need to provide to add her."

Step-by-step execution:

  1. Claude calls list_all_interseller_emails with name: "Sarah Jenkins" and url: "techcorp.io".
  2. The tool returns ranked results. Claude selects the highest confidence address.
  3. Claude calls create_a_interseller_email to run a deep MX verification on that specific address.
  4. Confirming the email is reachable and not disposable, Claude calls list_all_interseller_campaigns.
  5. Claude identifies the target campaign and returns a summary to the user outlining the required fields for insertion.
flowchart TD
    A["User requests<br>prospect lookup"] --> B["list_all_interseller_emails"]
    B --> C{"Confidence high?"}
    C -->|Yes| D["create_a_interseller_email"]
    C -->|No| E["Return failure to user"]
    D --> F{"Is Reachable?"}
    F -->|Yes| G["list_all_interseller_campaigns"]
    F -->|No| E
    G --> H["Return campaign requirements"]

2. Campaign Bottleneck Auditing

Sales managers need to know why sequences stop performing. An agent can traverse campaign stats and cross-reference them with individual contact activities to identify issues.

"Analyze campaign ID 9921. Get the step-by-step stats and tell me which step has the highest gap between 'viewed' and 'replied'. Then, pick three contacts who viewed that specific step but didn't reply, and pull their full activity timeline so I can see if they clicked any links."

Step-by-step execution:

  1. Claude calls get_single_interseller_campaign_step_stat_by_id.
  2. Claude parses the dictionary payload, comparing the viewed integer against the replied integer for each step key.
  3. Identifying Step 2 as the bottleneck, Claude needs contacts. (Assuming the agent has access to a list_contacts tool, or already has contact IDs in context).
  4. Claude loops list_all_interseller_contact_activities for the selected contacts.
  5. Claude synthesizes the data, returning a tactical summary of link clicks versus bounce rates.

3. Safe Suppression List Management

Managing global blacklists is risky due to the destructive nature of the endpoint. Claude can be instructed to handle this with programmatic safety.

"Add 'bad-domain.net' to our team blacklist. Make absolutely sure you do not delete the existing entries."

Step-by-step execution:

  1. Claude calls get_single_interseller_team_blacklist_by_id.
  2. The tool returns an array of strings: ["spam.com", "competitor.io"].
  3. Claude modifies the array in memory to ["spam.com", "competitor.io", "bad-domain.net"].
  4. Claude calls update_a_interseller_team_blacklist_by_id with the newly constructed, complete array.
  5. Claude verifies success and informs the user.
sequenceDiagram
    participant Claude as Claude Agent
    participant MCP as Truto MCP
    participant API as Interseller API
    
    Claude->>MCP: Call get_single_interseller_team_blacklist_by_id
    MCP->>API: GET /blacklist
    API-->>MCP: ["spam.com"]
    MCP-->>Claude: Result: ["spam.com"]
    
    Note over Claude: Appends new domain locally
    
    Claude->>MCP: Call update_a_interseller_team_blacklist_by_id<br>payload: ["spam.com", "bad.net"]
    MCP->>API: PUT /blacklist
    API-->>MCP: 204 No Content
    MCP-->>Claude: Success

Security and Access Control

When you give an LLM access to a platform that can send thousands of outbound emails, security is not optional. Truto MCP servers execute inside a scoped environment tied strictly to a single integrated account, ensuring data isolation. You can lock down the server using several built-in mechanisms:

  • Method Filtering: Prevent Claude from making unauthorized writes. By passing methods: ["read"] during server generation, the MCP server will only expose GET and LIST operations. The agent can analyze campaigns and stats, but cannot alter blacklists or send emails.
  • Tag Filtering: Restrict access to specific functional areas. Passing tags: ["verification"] ensures the agent only sees tools related to email validation, completely hiding the campaign management endpoints.
  • Secondary Authentication (require_api_token_auth): For shared MCP URLs, enable this flag to force the connecting client to pass a valid Truto API token in the Authorization header. This guarantees that possessing the URL alone is not enough to execute tools.
  • Automatic Expiration (expires_at): Provide a TTL (Time To Live) for the server. Truto's underlying key-value storage and alarm schedulers will automatically cryptographically invalidate the token and delete the database record at the exact timestamp, making it ideal for temporary agent sessions.

Scaling Agentic Integrations

Connecting Interseller to Claude using raw code means constantly maintaining pagination logic, monitoring destructive endpoint updates, and wrestling with rate limit headers. By abstracting the integration through a managed MCP server, you shift the burden from custom integration code to prompt engineering.

Truto derives its tools directly from accurate, live documentation, normalizing authentication and enforcing strict security boundaries. Your agent gets standard schemas, precise tool descriptions, and clean error pass-throughs, allowing it to focus on what it does best - orchestrating complex logic.

More from our Blog