Skip to content

Connect MoltSets to ChatGPT: Discover and Enrich B2B Prospect Data

Learn how to connect MoltSets to ChatGPT using Truto's auto-generated MCP servers. Automate B2B lead enrichment, people search, and firmographic data extraction.

Sidharth Verma Sidharth Verma · · 10 min read
Connect MoltSets to ChatGPT: Discover and Enrich B2B Prospect Data

If you want to connect MoltSets to ChatGPT so your AI agents can search company databases, enrich LinkedIn profiles, and verify B2B contact data, you need a Model Context Protocol (MCP) server. If your team uses Claude, check out our guide on connecting MoltSets to Claude or explore our broader architectural overview on connecting MoltSets to AI Agents.

Giving a Large Language Model (LLM) read and write access to a high-volume data enrichment platform is an engineering risk. If you hand an LLM direct API credentials, it will inevitably hallucinate query parameters, drain your API quota on malformed pagination loops, and mishandle error schemas.

You can spend weeks building, hosting, and maintaining a custom MCP server to translate LLM JSON arguments into MoltSets' specific payload structures - or you can use a managed infrastructure layer.

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

The Engineering Reality of the MoltSets API

A custom MCP server is essentially a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, implementing it against an enrichment API requires handling vendor-specific constraints.

If you decide to build a custom MCP server for MoltSets, you own the entire API lifecycle. Here are the specific integration challenges that break standard REST assumptions when working with MoltSets:

Token-Based Billing and Free Misses

MoltSets uses a complex, outcome-based billing model. Standard endpoints (like business email lookups) cost one token when data is found, but a not_found miss is free. Mobile phone lookups pull from a separate "phone-token" balance. If an LLM enters an aggressive retry loop on an endpoint that yields hits, it will rapidly drain your account balance. Your MCP server must expose tools that allow the agent to check token balances dynamically before executing large batch jobs.

Strict Filtering Rules and Pagination Limits

MoltSets search endpoints (like list_all_molt_sets_search_people) enforce strict parameter validation. A query requires at least one positive filter to execute - you cannot simply pass an empty object. Furthermore, results are capped at exactly 25 per page, and exactly one search record is returned per row. If you hand an LLM raw API documentation, it will frequently attempt to request 100+ records at once or submit invalid filter combinations, resulting in 400 Bad Request errors.

Tiered Access and Plan Restrictions

Not all MoltSets endpoints are available on every plan. Operations like querying USA personal emails or extracting Mobile Advertising IDs (MAIDs) will immediately return an HTTP 403 plan_restricted error if your subscription tier does not support them. A naive MCP server will pass these 403s back to the LLM without context, causing the agent to repeatedly try different parameter variations under the assumption that its request was simply malformed.

Rate Limiting Reality

It is critical to understand that Truto does not retry, throttle, or apply backoff on rate limit errors. When the upstream MoltSets API returns an HTTP 429, Truto passes that error directly to the caller. Truto normalizes the upstream rate limit information into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF specification. Your LLM or the orchestration framework calling the MCP server is fully responsible for catching the 429 and executing the appropriate retry and backoff logic.

How to Generate a MoltSets MCP Server

Truto derives MCP tools dynamically from the integration's resource definitions. If a method lacks documentation or schema definitions, it is excluded from the MCP server. This documentation-driven approach acts as a strict quality gate, ensuring ChatGPT only sees curated, tested tool schemas.

Each MCP server in Truto is scoped to a single integrated account and secured via a cryptographic token URL. You can generate this server via the Truto UI or programmatically via the API.

Method 1: Via the Truto UI

  1. Log into your Truto dashboard and navigate to the Integrated Accounts page.
  2. Select your connected MoltSets integration.
  3. Click the MCP Servers tab.
  4. Click Create MCP Server.
  5. Select your desired configuration (e.g., restrict allowed methods to read, apply specific tags, or set an expiration date).
  6. Copy the generated MCP server URL. It will look like https://api.truto.one/mcp/<token>.

Method 2: Via the Truto API

If you are provisioning MCP servers programmatically for your end-users, use the token management API. This endpoint validates that the integration has tools available, generates a secure token, and returns a ready-to-use URL.

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": "MoltSets Enrichment Server",
    "config": {
      "methods": ["read", "list", "custom"]
    }
  }'

The API response includes the secure endpoint:

{
  "id": "abc-123",
  "name": "MoltSets Enrichment Server",
  "config": { "methods": ["read", "list", "custom"] },
  "expires_at": null,
  "url": "https://api.truto.one/mcp/a1b2c3d4e5f67890"
}

Treat this URL like a secret. It encodes the account context and the authentication required to execute tools against MoltSets.

Connecting the MCP Server to ChatGPT

Once you have your Truto MCP URL, you can plug it into ChatGPT. You have two ways to configure this connection.

Option A: Via the ChatGPT UI (Custom Connectors)

If you have a ChatGPT Pro, Plus, Business, Enterprise, or Education account, you can add remote MCP servers directly via the interface.

  1. In ChatGPT, navigate to Settings -> Apps -> Advanced settings.
  2. Enable the Developer mode toggle (MCP support requires this flag).
  3. Under the MCP servers / Custom connectors section, click to add a new server.
  4. Enter a name for the connection (e.g., "MoltSets Truto").
  5. Paste your Truto MCP URL into the Server URL field.
  6. Click Save.

ChatGPT will immediately connect, perform an initialization handshake, and discover the available MoltSets tools.

Option B: Via Manual Config File (SSE Transport)

If you are using a local agent orchestrator or prefer file-based configuration, you can connect using the official @modelcontextprotocol/server-sse transport wrapper.

Add the following to your MCP configuration JSON file:

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

Hero Tools for MoltSets ChatGPT Integration

Truto automatically generates descriptive snake_case tool names and highly structured JSON schemas for every endpoint. By injecting explicit instructions into the schema descriptions (such as strict cursor handling for pagination), Truto prevents the LLM from hallucinating parameters.

Here are the highest-leverage hero tools for B2B data enrichment with MoltSets.

list_all_molt_sets_search_companies

Search the MoltSets firmographic database by name, domain, industry, headcount, revenue, NAICS code, or location. This tool requires at least one positive filter and returns ranked company profiles up to 25 per page.

Contextual usage notes: When prompting ChatGPT to find companies, explicitly tell it to gather the domains from the response. The domain is the primary key required for downstream people searches.

"Find me 15 B2B SaaS companies in the healthcare sector located in California with a headcount between 50 and 200. Output their domains and estimated revenue."

list_all_molt_sets_search_people

Search the MoltSets people database by name, title, employer, seniority, department, industry, or location. Returns ranked profiles with business emails and current company details.

Contextual usage notes: Instruct the LLM to use the domains retrieved from the company search tool to ensure it is finding prospects at the correct target accounts.

"Using the list of healthcare SaaS domains we just found, use the people search tool to find individuals with 'VP of Sales' or 'Chief Revenue Officer' in their title at those specific companies."

molt_sets_emails_lookup_business_by_linkedin

Retrieves the verified work email for a specific LinkedIn profile URL. You can pass a single linkedin_url or an array of linkedin_urls for up to 100 profiles. Costs 1 token per profile found.

Contextual usage notes: Bulk lookups save context window space and execution time. Always prompt the LLM to batch its requests if it has multiple LinkedIn URLs.

"Take these 10 LinkedIn profile URLs and run a bulk business email lookup. Format the results in a table mapping the LinkedIn URL to the verified work email."

molt_sets_business_profiles_lookup_by_linkedin

Fetches the complete business profile behind a LinkedIn URL. This returns name, title, location, employer firmographics, and both business and personal emails along with their send-safety risk scores.

Contextual usage notes: This is a heavy enrichment tool. Use this when you need deep context on a single high-value prospect before drafting personalized outreach.

"Look up the business profile for this LinkedIn URL: linkedin.com/in/example. Extract their current title, the industry of their current employer, and evaluate the risk score of their primary business email."

molt_sets_mobile_phones_lookup_by_linkedin

Retrieves a carrier-verified mobile number for a LinkedIn profile. This tool spends 1 phone-token per number returned (from a separate paid phone-token subscription). Misses are free.

Contextual usage notes: Because this consumes a different token type, ensure the LLM knows to only use this tool for high-priority executive outreach where a phone number is explicitly requested.

"I need a direct line for the CEO of Example Corp. Take their LinkedIn URL and run a mobile phone lookup. If a number is returned, provide it to me immediately."

list_all_molt_sets_account

Retrieves your MoltSets account status, token balances, phone-token balances, live fair-use headroom, and confirms whether specific plan-restricted features (like personal-email lookups) are enabled.

Contextual usage notes: It is highly recommended to instruct ChatGPT to run this tool before executing large batch jobs to ensure you have sufficient token runway.

"Check my MoltSets account balance. How many standard tokens and phone tokens do I have left? Are personal email lookups enabled on my plan?"

To view the complete inventory of available MoltSets tools and their underlying schema definitions, visit the MoltSets integration page.

Workflows in Action

When you expose MoltSets through an MCP server, ChatGPT becomes an autonomous revenue operations engine. Here are real-world examples of how an AI agent chains these tools together to execute complex B2B workflows.

Scenario 1: The Account-Based Marketing (ABM) Prospecting Sequence

Sales development teams spend hours building target account lists and hunting down contact info. You can automate the entire funnel with a single prompt.

"I am building a targeted ABM list. First, search for companies in the 'Financial Services' industry based in New York with 500-1000 employees. Extract their domains. Then, search for people at those specific domains who hold the title 'Director of IT' or 'VP of Engineering'. Finally, take the LinkedIn URLs of the people you found and look up their verified business emails."

Step-by-step execution:

  1. Company Search: ChatGPT calls list_all_molt_sets_search_companies using the industry, location, and headcount filters, returning an array of matched companies.
  2. People Search: It parses the domains from step 1, formats an array, and calls list_all_molt_sets_search_people, filtering by the specified senior IT titles.
  3. Email Lookup: It extracts the LinkedIn URLs from the people search results and passes them as a batch array to molt_sets_emails_lookup_business_by_linkedin.

Output: The user receives a clean, formatted table containing the target company, the prospect's name, their exact title, their LinkedIn URL, and a verified business email address, ready for outreach.

sequenceDiagram
    participant User as User
    participant GPT as ChatGPT
    participant MCP as Truto MCP
    participant MoltSets as MoltSets API
    User->>GPT: Find NY Finance companies,<br>get IT Directors' emails.
    GPT->>MCP: Call list_all_molt_sets_search_companies
    MCP->>MoltSets: GET /search/companies
    MoltSets-->>MCP: Company Domains
    MCP-->>GPT: JSON Results
    GPT->>MCP: Call list_all_molt_sets_search_people
    MCP->>MoltSets: GET /search/people
    MoltSets-->>MCP: LinkedIn URLs
    MCP-->>GPT: JSON Results
    GPT->>MCP: Call molt_sets_emails_lookup_business_by_linkedin
    MCP->>MoltSets: GET /emails/linkedin
    MoltSets-->>MCP: Verified Emails
    MCP-->>GPT: JSON Results
    GPT-->>User: Final Prospecting List

Scenario 2: Inbound Lead Enrichment and Verification

When a vague inbound lead enters your CRM with only a LinkedIn URL, you need deep firmographic context before assigning it to an account executive.

"A new lead just dropped into the queue with this LinkedIn profile: linkedin.com/in/johndoe. First, look up their full business profile to get their current employer and title. Next, check if we have enough phone-tokens in our account. If we do, execute a mobile phone lookup for this profile."

Step-by-step execution:

  1. Profile Enrichment: ChatGPT calls molt_sets_business_profiles_lookup_by_linkedin to retrieve the prospect's full employment history, current company firmographics, and risk-scored email addresses.
  2. Balance Check: It calls list_all_molt_sets_account to read the current phone_token balance.
  3. Phone Lookup: Seeing sufficient tokens, it calls molt_sets_mobile_phones_lookup_by_linkedin to pull a direct dial.

Output: The LLM returns a comprehensive dossier on the inbound lead, including their exact role, company revenue estimates, business email, and a direct mobile number, ensuring the AE has full context before the first call.

Security and Access Control

By default, anyone with your MCP server URL can invoke the underlying tools. Truto provides several mechanisms to lock down the server, enforced at the API proxy layer.

  • Method Filtering: You can restrict a server to specific operation types by configuring the methods array. Passing ["read"] ensures the LLM can only execute safe data-retrieval operations, while excluding custom or write methods.
  • Tag Filtering: Limit the server's scope to specific functional areas using tags. For example, setting tags: ["enrichment"] guarantees the server only exposes endpoints related to profile lookups, hiding billing and account management tools.
  • Secondary Authentication (require_api_token_auth): For enterprise security, you can enable this flag to require clients to pass a valid Truto API token in the Authorization header. This prevents unauthorized use if the base URL is exposed in client logs.
  • Automatic Expiration (expires_at): You can bind a Time-To-Live (TTL) to the MCP server. Once the ISO datetime passes, the backend infrastructure automatically tears down the token in KV storage and cleans up the database record, ensuring temporary access cannot become permanent.

The Safest Way to Build Agentic Integrations

Exposing an enrichment engine like MoltSets to ChatGPT requires strict schema validation and reliable infrastructure. Writing custom integration code means you have to manually parse complex search filters, handle tiered access restrictions, and rebuild your JSON-RPC schemas every time the upstream API changes.

Truto abstracts away the entire protocol lifecycle. By dynamically generating highly structured tools based on integration documentation, normalizing rate-limit headers, and securing requests through managed proxy routing, Truto lets your engineering team focus on building better AI agents instead of maintaining integration boilerplate.

FAQ

How does MoltSets billing work when using ChatGPT?
MoltSets charges based on successful lookups. A 'hit' costs one token (or one phone-token for mobile numbers), while a 'not_found' miss is free. Truto exposes these tools directly to ChatGPT, so you should monitor your token consumption using the `list_all_molt_sets_account` tool to prevent the LLM from draining your balance.
How does Truto handle MoltSets rate limits?
Truto does not retry, throttle, or apply backoff on rate limit errors. When the MoltSets API returns an HTTP 429, Truto passes that error directly to ChatGPT. Truto normalizes the upstream rate limit information into standardized IETF headers, but the caller (or the LLM) is responsible for handling retry and backoff logic.
Why do some MoltSets tools return a 403 plan_restricted error?
Certain MoltSets tools, like USA personal email lookups or mobile ad ID lookups, require specific subscription tiers. If your account plan does not support these features, MoltSets returns a 403 plan_restricted error, which Truto passes back to the LLM.

More from our Blog