Skip to content

Connect LeadIQ to ChatGPT: Search and Enrich B2B Prospect Profiles

Learn how to connect LeadIQ to ChatGPT using a managed MCP server. Execute complex B2B prospect searches, enrich contacts, and build lead lists autonomously.

Yuvraj Muley Yuvraj Muley · · 9 min read
Connect LeadIQ to ChatGPT: Search and Enrich B2B Prospect Profiles

If you want to connect LeadIQ to ChatGPT so your AI agents can search B2B companies, enrich prospect profiles, and build targeted lead lists autonomously, you need a Model Context Protocol (MCP) server.

If your team uses Claude, check out our guide on connecting LeadIQ to Claude or explore our broader architectural overview on connecting LeadIQ to AI Agents.

Giving a Large Language Model (LLM) direct access to a premium B2B data provider like LeadIQ is an engineering challenge. You either spend weeks building, hosting, and maintaining a custom MCP server to translate LLM JSON arguments into LeadIQ's highly specific payload structures, or you use a managed infrastructure layer.

This guide breaks down exactly how to use Truto to generate a secure, authenticated MCP server for LeadIQ, connect it natively to ChatGPT, and execute complex prospecting workflows using natural language.

LeadIQ to ChatGPT Quickstart Guide

If you just want the fastest path from a fresh Truto account to ChatGPT calling the LeadIQ API, follow these steps. Deeper architecture, security, and lifecycle details live in the sections below.

What you need:

  • A Truto account with API access.
  • A LeadIQ account with necessary API permissions.
  • A ChatGPT Pro, Plus, Business, Enterprise, or Education seat with Developer mode available.

Step 1: Connect LeadIQ as an Integrated Account

In the Truto dashboard, navigate to Integrated Accounts -> New Integrated Account, select LeadIQ, and complete the authentication flow. Truto securely manages the underlying credentials and tokens, ensuring ChatGPT never operates with expired authentication.

Step 2: Generate the LeadIQ MCP Server

You can generate the MCP server URL using either the Truto UI or the API.

Method A: Via the Truto UI

  1. Navigate to the Integrated Account page for your active LeadIQ connection.
  2. Click the MCP Servers tab.
  3. Click Create MCP Server.
  4. Select your desired configuration (e.g., restrict to read-only methods).
  5. Copy the generated MCP server URL.

Method B: Via the API

Alternatively, you can scope an MCP endpoint programmatically. You will need your integrated_account_id. Filter by methods and tags to constrain what ChatGPT can access:

curl -X POST https://api.truto.one/integrated-account/$INTEGRATED_ACCOUNT_ID/mcp \
  -H "Authorization: Bearer $TRUTO_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "LeadIQ Search and Enrich",
    "config": {
      "methods": ["read"]
    }
  }'

The response contains a url field structured like https://api.truto.one/mcp/<token>. This single URL carries all necessary routing and authentication. Treat it like a highly sensitive secret.

Step 3: Connect the MCP Server to ChatGPT

You can expose these tools to ChatGPT using the visual interface or a configuration file.

Method A: Via the ChatGPT UI

  1. Open ChatGPT and navigate to Settings -> Apps -> Advanced settings.
  2. Toggle Developer mode on (custom connectors require this flag).
  3. Under MCP servers / Custom connectors, click to add a new server.
  4. Set the Name to "LeadIQ (Truto)".
  5. Paste your Truto MCP URL into the Server URL field and click Add.

Method B: Via Manual Config File

For local development or headless agent execution, you can define the server via an MCP configuration file. This uses the standard Server-Sent Events (SSE) transport adapter:

{
  "mcpServers": {
    "leadiq_truto": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "--url",
        "https://api.truto.one/mcp/<your_token>"
      ]
    }
  }
}

Once connected, ChatGPT will automatically request the tools/list from the server, mapping LeadIQ's API endpoints directly into its context window.

The Engineering Reality of the LeadIQ API

Building a custom MCP server means you own the entire lifecycle of the API integration. While the open MCP standard provides a predictable JSON-RPC interface, implementing it against LeadIQ's highly specific query structures is painful. Here are the specific integration challenges that make raw LeadIQ orchestration difficult for LLMs.

Cost-Controlled Payload Slicing

LeadIQ structures its API to protect users from accidental credit consumption. For instance, a basic identity lookup will return work emails by default. However, personal emails and phone numbers are stripped out unless you explicitly request them using the with_personal_emails or with_phones boolean flags.

If you build this manually, your MCP server must parse the LLM's natural language intent, map it to these specific boolean flags, and pass them securely. A hallucinated parameter could result in thousands of wasted API credits. Truto's auto-generated tool schemas strictly define these parameters, instructing the LLM precisely how and when to request premium fields.

Disjointed Advanced Search Topologies

Unlike standard CRUD APIs, LeadIQ handles list operations differently depending on the entity type. The list_all_lead_iq_contacts method executes a flat advanced search, while list_all_lead_iq_companies executes a grouped advanced search. They have different structural requirements and offset pagination logic. Manually building a translation layer that standardizes these distinct topologies into cohesive LLM tools requires significant routing logic.

Rate Limits and Retry Handling

The LeadIQ API enforces strict concurrency and rate limits on complex queries. When an upstream API returns an HTTP 429 Too Many Requests error, Truto does not retry, throttle, or apply backoff. Instead, Truto passes that error directly to the caller, normalizing the upstream rate limit information into standardized IETF headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset).

This is a critical architectural pattern. The caller (ChatGPT or your agent orchestrator) must be responsible for retry and backoff logic. Truto ensures the agent receives clean, predictable error states so it can decide whether to pause execution or pivot its search strategy.

Offset Pagination Caps

LeadIQ's list endpoints use offset pagination (skip and limit) but are strictly capped at 10,000 combined records. If an LLM attempts to iterate past this limit, the API will reject the call. The MCP tools dynamically inject cursor and limit schema definitions with explicit instructions, ensuring the model understands its boundaries.

LeadIQ Hero Tools for ChatGPT

When Truto dynamically generates the MCP server, it creates tools based directly on LeadIQ's underlying documentation and resources. Here are the highest-leverage tools available for your B2B prospecting workflows.

This is the core enrichment tool. It executes an identity lookup for a single person using an email, LinkedIn URL, or a combination of their name and company domain. It always includes a work email if LeadIQ has one.

Contextual usage notes: Personal emails and phone numbers (both work and personal) are excluded by default to control your API costs. The LLM must explicitly set with_personal_emails or with_phones to true if the prompt demands multi-channel outreach data.

"Look up the contact profile for john.doe@acmecorp.com. I need his direct phone number and personal email included in the response so I can build a multi-channel sequence."

This tool executes a precise identity lookup for a single company by domain, LinkedIn URL, or name. This is not a filtered search - it expects an exact match and returns the first result (or zero results on a miss).

Contextual usage notes: This tool is best used when the LLM already knows the target account and needs to retrieve firmographic data (like revenue bands, exact employee count, or HQ location) before drilling down into contacts.

"Find the company profile for the domain snowflake.com. I need to know their estimated revenue and total employee count before I map out their engineering leadership."

list_all_lead_iq_companies

This tool executes a grouped advanced search. It allows the LLM to search for companies based on broad criteria like employee-count ranges, location, or industry tags.

Contextual usage notes: This method returns only the company half of the grouped result. It does not return the people associated with those companies, meaning it is safe to use for broad account discovery without accidentally incurring credit charges for contact data.

"Search for software companies in the United States with an employee count between 500 and 1000. Return the first 10 matches."

list_all_lead_iq_contacts

This tool executes a flat advanced search to discover people based on title, seniority, company domain, or location.

Contextual usage notes: Crucially, this method never selects email or phone fields. It is designed strictly for discovery. Once the LLM identifies the correct target from this list, it must pass the resulting identifier to lead_iq_people_search to actually enrich the profile and obtain contact info.

"Find all contacts at acmecorp.com with the seniority of 'Director' or 'VP' in the Engineering department. Do not enrich them yet, just give me their names and current titles."

For the complete inventory of available LeadIQ proxy operations and their underlying schema requirements, visit the Truto LeadIQ integration page.

Workflows in Action

Exposing individual endpoints is just the foundation. The true power of an MCP server is enabling ChatGPT to orchestrate multi-step data pipelines autonomously. Here are realistic B2B sales workflows executed entirely via natural language.

Scenario 1: Account-Based Marketing (ABM) Discovery

A sales development representative needs to map the leadership team of a target account before launching a highly personalized outreach sequence.

"We are targeting Acme Corp (acmecorp.com). First, get me their exact firmographics so I understand their size. Then, find all contacts with a 'VP' seniority in the Marketing department. Finally, enrich the profile of their highest-ranking Marketing leader and get their direct phone number."

Step-by-step execution:

  1. ChatGPT calls lead_iq_companies_search passing the domain "acmecorp.com".
  2. The model processes the firmographic response to confirm the company profile.
  3. ChatGPT calls list_all_lead_iq_contacts, passing the domain and filtering for seniority "VP" and department "Marketing".
  4. LeadIQ returns a list of matching profiles (without contact info).
  5. ChatGPT identifies the primary target from the list and calls lead_iq_people_search, explicitly setting the with_phones boolean flag to true.
  6. ChatGPT synthesizes the final response, presenting the user with the company data, the full leadership map, and the enriched target profile.
sequenceDiagram
    participant User as User
    participant ChatGPT as ChatGPT
    participant MCP as Truto MCP Server
    participant LeadIQ as LeadIQ API

    User ->> ChatGPT: "Target Acme Corp..."
    ChatGPT ->> MCP: Call lead_iq_companies_search
    MCP ->> LeadIQ: GET /companies/search
    LeadIQ -->> MCP: Firmographic Data
    MCP -->> ChatGPT: JSON Result
    ChatGPT ->> MCP: Call list_all_lead_iq_contacts
    MCP ->> LeadIQ: GET /contacts/search
    LeadIQ -->> MCP: List of VP profiles (no emails)
    MCP -->> ChatGPT: JSON Result
    ChatGPT ->> MCP: Call lead_iq_people_search (with_phones=true)
    MCP ->> LeadIQ: GET /people/identity
    LeadIQ -->> MCP: Enriched profile (with phone)
    MCP -->> ChatGPT: Final Contact Data
    ChatGPT -->> User: "Here is your target account map..."

Scenario 2: Territory Expansion List Building

A growth marketer wants to build a list of target companies in a specific region and isolate the key buyers.

"I am building a list of mid-market tech companies in Austin, Texas. Find companies with 100 to 500 employees. For the top 3 companies, find their Head of Sales or VP of Sales. Do not enrich their contact info, just give me the list of names and LinkedIn URLs."

Step-by-step execution:

  1. ChatGPT calls list_all_lead_iq_companies with the location filter set to "Austin, TX" and the headcount range set to "100-500".
  2. LeadIQ returns the grouped advanced search results containing the top companies.
  3. For each of the top 3 companies, ChatGPT executes a sequential call to list_all_lead_iq_contacts, passing the respective domain and filtering for "Sales" titles.
  4. ChatGPT formats the raw JSON arrays into a clean markdown table, presenting the company names, prospect names, and LinkedIn URLs for the user to review before committing budget to enrichment.

Security and Access Control

Exposing an enterprise data platform to an LLM requires strict boundary control. A hallucinated query could burn through monthly credit limits in minutes. Truto's MCP servers provide deep security controls encoded directly into the connection URL.

  • Method Filtering: You can strictly limit the server to read operations. This ensures the agent can query LeadIQ data but prevents it from executing custom or non-standard methods that might trigger unwanted state changes.
  • Tag Filtering: Truto allows you to group tools by functional area using config.tool_tags. You can scope an MCP server to only expose tools tagged with "discovery" or "enrichment", hiding the rest of the API surface from the model.
  • Double Authentication (require_api_token_auth): By default, possessing the MCP URL is enough to connect. For high-security environments, you can enforce a second layer of authentication, requiring the client to pass a valid Truto API token in the headers.
  • Automatic Expiration (expires_at): If you are generating a server for a temporary contractor or an ephemeral automated workflow, you can assign an ISO datetime. Truto's infrastructure will automatically schedule a cleanup alarm, purging the token from KV storage and the database exactly when time expires.
flowchart TD
    A["ChatGPT Client"] -->|"POST /mcp/:token"| B["Truto MCP Router"]
    B --> C{"KV Token Valid?"}
    C -->|"Yes"| D{"Require API Token?"}
    C -->|"No"| E["401 Unauthorized"]
    D -->|"Yes (Validate)"| F["Execute Proxy Handlers"]
    D -->|"No"| F
    F --> G["LeadIQ API"]

Stop Wrestling With B2B Data APIs

Connecting LeadIQ to ChatGPT transforms raw B2B data into conversational intelligence. But building the middleware to handle specific boolean flags, grouped advanced searches, and offset pagination limits is a massive engineering drain.

By leveraging Truto's auto-generated MCP servers, you bypass the boilerplate. You get a production-ready, highly secure connection that handles the authentication and tool generation dynamically, letting your engineering team focus on building smarter agent logic instead of reading API docs.

FAQ

How does the MCP server authenticate with LeadIQ?
The MCP server uses Truto's managed OAuth and token refresh infrastructure. You authenticate your LeadIQ account once via the Truto dashboard, and Truto securely proxies the API calls, meaning ChatGPT never handles the raw LeadIQ credentials.
Does Truto automatically handle LeadIQ rate limits?
No. Truto does not retry, throttle, or apply backoff on rate limit errors. When LeadIQ returns an HTTP 429, Truto passes that error directly to ChatGPT, normalizing the upstream rate limit info into standardized IETF headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset). The AI agent must handle its own backoff strategy.
Can I restrict which LeadIQ tools ChatGPT can use?
Yes. When generating the MCP server URL in Truto, you can pass configuration filters to restrict access to specific HTTP methods (like read-only) or specific integration tags, ensuring the model only touches what you authorize.

More from our Blog