Connect AI agents (MCP)

7 min read

Connect Claude, ChatGPT, Cursor, and other AI agents to ReverseContact using the Model Context Protocol.

What is MCP

The Model Context Protocol (MCP) is an open standard that lets AI assistants call external tools directly. Once connected, your AI agent can enrich profiles, search people and companies, and more, all through natural conversation.

ReverseContact exposes 8 tools via MCP (beta). Same data, same credits, same rate limits as the REST API.

Prerequisites

  • A ReverseContact account
  • An MCP-compatible client (claude.ai, Cowork, Claude Desktop, Claude Code, ChatGPT, Codex, Cursor, etc.)

Two ways to authenticate:

  • Sign in with your account (OAuth): clients with OAuth support (claude.ai, Cowork, Claude Desktop, Claude Code, mobile, ChatGPT) connect with no API key. The first connection opens your browser, you approve the access, and a dedicated API key named MCP - {app} is created in your workspace automatically.
  • API key: every other client authenticates with an active API key (rc_*) in the Authorization header. Create one from API Keys.

Server details

Property Value
URL https://api.reversecontact.com/mcp
Transport Streamable HTTP (POST only)
Authentication OAuth 2.1 (sign in) or Authorization: Bearer rc_your_api_key
Protocol JSON-RPC 2.0

Setup by client

For clients using an API key, replace rc_your_api_key with your actual key in the examples below.

Claude.ai, Claude Desktop, Cowork and mobile (custom connector)

Claude surfaces connect through a custom connector, no API key involved:

  1. Open Settings > Connectors > Add custom connector.
  2. Paste https://api.reversecontact.com/mcp as the URL and confirm.
  3. Click Connect: your browser opens the ReverseContact consent page. Sign in if needed, pick the workspace shown, and approve.

The connector is then available in claude.ai chats, Claude Desktop, Cowork and the mobile apps. To revoke it later, delete its MCP - {app} key from API Keys.

Claude Code

Claude Code supports HTTP MCP servers natively. The fastest path is one command in your terminal, no API key needed:

Terminal
bash
claude mcp add --transport http reversecontact https://api.reversecontact.com/mcp

Then start a Claude Code session and run /mcp: select reversecontact and authenticate. Your browser opens the consent page, you approve, and the tools come online.

For headless or CI environments where the browser flow is not an option, pass an API key explicitly instead:

Terminal
bash
claude mcp add --transport http reversecontact \
  https://api.reversecontact.com/mcp \
  --header "Authorization: Bearer rc_your_api_key"

Alternatively, add a .mcp.json file at the root of your project to share the server with your team:

.mcp.json
JSON
{
  "mcpServers": {
    "reversecontact": {
      "type": "http",
      "url": "https://api.reversecontact.com/mcp",
      "headers": {
        "Authorization": "Bearer rc_your_api_key"
      }
    }
  }
}

ChatGPT

ChatGPT connects through a custom connector and signs in with OAuth, no API key involved. Custom connectors require a paid ChatGPT plan (Plus, Pro, Business, Enterprise or Edu) with developer mode enabled:

  1. Open Settings > Connectors > Advanced settings and toggle Developer mode on.
  2. Back in Connectors, click Create: name it ReverseContact, paste https://api.reversecontact.com/mcp as the MCP server URL, and keep Authentication on OAuth.
  3. Confirm and click Create: your browser opens the ReverseContact consent page. Sign in if needed, pick the workspace shown, and approve.

Enable the connector from the composer (plus menu) in any chat. To revoke it later, delete its MCP - {app} key from API Keys.

Codex

The Codex CLI reads the bearer token from an environment variable, so the key never lands in a config file:

Terminal
bash
export RC_API_KEY="rc_your_api_key"
codex mcp add reversecontact \
  --url https://api.reversecontact.com/mcp \
  --bearer-token-env-var RC_API_KEY

Add the export line to your shell profile so the variable is set whenever Codex launches. This writes the server to ~/.codex/config.toml:

config.toml
TOML
[mcp_servers.reversecontact]
url = "https://api.reversecontact.com/mcp"
bearer_token_env_var = "RC_API_KEY"

Cursor

Create a .cursor/mcp.json file at the root of your project. Cursor connects over HTTP natively, keyed on url (no type field):

.cursor/mcp.json
JSON
{
  "mcpServers": {
    "reversecontact": {
      "url": "https://api.reversecontact.com/mcp",
      "headers": {
        "Authorization": "Bearer rc_your_api_key"
      }
    }
  }
}

Google Gemini

The Gemini app does not support custom MCP connectors yet, so ReverseContact cannot be connected there for now. We will add setup instructions as soon as Google opens custom connectors in Gemini.

Other clients (mcp-remote)

Most clients that support HTTP MCP servers (VS Code, Windsurf, Gemini CLI, etc.) accept the same URL and Authorization: Bearer rc_your_api_key header through their own config format. If your MCP client only supports stdio transport, use mcp-remote as a bridge:

mcp-remote
bash
npx mcp-remote https://api.reversecontact.com/mcp \
  --header "Authorization: Bearer rc_your_api_key"

This works with any client that supports stdio-based MCP servers.

Available tools

Enrichment

Tool What it does Credits Response
enrich_person Get a person’s LinkedIn profile from cache, or resolve by email/name 1 (cached) / 2 (resolve if found) Instant
enrich_person_live Force a fresh LinkedIn scrape for a person profile (URL only) 2 (live) Async
enrich_company Get a company’s LinkedIn profile from cache (description, size, HQ, industry) 1 (cached) Instant
enrich_company_live Force a fresh LinkedIn scrape for a company profile (URL only) 2 (live) Async
Tool What it does Credits Response
search_persons Search people by name, title, company, industry, location 1 / page Instant
search_companies Search companies by name, domain, industry, size, location 1 / page Instant

Utility (free)

Tool What it does Credits Response
check_usage Check your credit balance and rate limit status 0 Instant
check_task Poll the status of an async operation 0 Instant

Example prompts

Once the MCP server is connected, ask your AI agent in natural language. These examples map to the tools above and use the same credits as the REST API.

  1. Enrich a person from an email

    Enrich the LinkedIn profile for [email protected] and summarize current title, company, and recent experience.

  2. Enrich a company from a domain

    Look up the company for domain stripe.com and return industry, employee range, headquarters, and a one-paragraph description.

  3. Search people with filters

    Find people who are Heads of Sales or VPs of Sales at SaaS companies in the United States. Return the first page of results with name, title, and company.

  4. Search companies with filters

    Search for fintech companies with 50 to 200 employees headquartered in France. List name, domain, and size.

  5. Check usage before a batch

    Check my ReverseContact credit balance and rate limit status before I run a larger enrichment batch.

  6. Async live enrichment workflow

    Live-enrich the LinkedIn profile https://www.linkedin.com/in/example with enrich_person_live and, if the tool returns a task id, poll until the result is ready, then summarize the profile.

Tip: for live enrichments the agent receives a taskId from enrich_person_live or enrich_company_live and should call check_task until status is succeeded or errored. You usually do not need to manage that loop yourself.

Async workflow

The live tools (enrich_person_live, enrich_company_live) run asynchronously. They return a taskId instead of data:

Async response
JSON
{
  "taskId": "abc123",
  "status": "processing",
  "message": "Scraping LinkedIn profile. Poll with check_task in ~10 seconds."
}

Use check_task with the taskId to poll for results. Tasks typically complete in 10–60 seconds.

Status flow: in_progresssucceeded or errored

When succeeded, check_task returns the full data payload. Your AI agent handles this polling automatically. Just ask for what you need.

Credits and rate limits

MCP tools consume the same credits and respect the same rate limits as the REST API. That means:

  • MCP calls use the same endpoint pricing as REST.
  • MCP calls count toward the same gateway RPM limits as REST API calls.
  • Agent LLM turns are different: they consume credits but do not affect gateway RPM until the Agent triggers a real tool call.

Use check_usage to inspect your current balance before expensive operations.

See Rate limits & credits for details on quotas and throttling.

Troubleshooting

Error Cause Fix
Authentication required (code -32001) Missing or invalid credentials OAuth clients: re-authenticate from the client (the access expires if its key is deleted). API key clients: check the key is active and the Bearer prefix is present
SSE streaming not supported (code -32601) Client sent a GET request Your client must use POST. Use mcp-remote if it defaults to SSE
RATE_LIMIT_EXCEEDED Too many requests per minute Wait for the rate limit window to reset. Check limits with check_usage
INSUFFICIENT_CREDITS Not enough credits for the operation Top up credits from the dashboard
TRIAL_RESTRICTED Trial plans cannot use live/async endpoints Upgrade to a paid plan
Connection timeout Client cannot reach the server Verify the URL is https://api.reversecontact.com/mcp and your network allows HTTPS

Previous

Production checklist

Next

Industry values