RocketReach MCP server for AI agents

Live

API KEY

CONTACT DATA

CRM & Sales

RocketReach gives your agent contact data for prospecting: search people and companies, look up emails and phones for one person or up to 100 at once, enrich their employer, and verify email addresses.

  • Per-user credentials: each call uses the actual user's API key, never a shared bot.
  • Encrypted per-tenant vault: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: pre-call scope check, 90-day SIEM-exportable audit chain.
RocketReach
agent · Acme Q3
Run
Find VPs of Marketing at fintech companies in New York.
S
rocketreach_search_people
129ms
Prospecting agent
RocketReach returned 86 matching profiles. Here are the first 10 with title, employer, and location.
Sources: RocketReach people search
rocketreach
86 profiles
18:29
Message Claude...

Tools your prospecting agent reaches for on RocketReach, scoped per user.

CALL ANY TOOL
16 tools for prospecting in RocketReach: search people and companies, look up people and companies one at a time or in bulk, verify emails, and check credit usage, on standard or Universal Credits accounts.
rocketreach_bulk_lookup_people
Bulk lookup people
Start asynchronous lookups for up to 100 people in one request. Returns acknowledgement with the profile IDs queued; results arrive by webhook or by polling check_person_lookup_status. Use for batches; use lookup_person for a single person. Spends lookup credits.
Parameters
Name
Type
Required
Description
queries
array
Required
List of lookup criteria objects, at most 100. Each object identifies one person with id, name together with current_employer, linkedin_url, email, phone or npi_number, and optionally title.
profile_list
string
Optional
Name of the profile list that looked-up profiles are added to when the lookup completes. Default: `API Bulk Lookup`.
webhook_id
integer
Optional
ID of a webhook from your RocketReach API settings that receives the results when the lookups complete.
rocketreach_check_person_lookup_status
Check person lookup status
rocketreach_get_account
Get account
rocketreach_get_universal_account
Get universal account
rocketreach_lookup_company
Lookup company
rocketreach_lookup_person
Lookup person
rocketreach_lookup_person_and_company
Lookup person and company
rocketreach_search_companies
Search companies
rocketreach_search_people
Search people
rocketreach_universal_bulk_lookup_people
Universal bulk lookup people
rocketreach_universal_check_person_lookup_status
Universal check person lookup status
rocketreach_universal_lookup_company
Universal lookup company
rocketreach_universal_lookup_person
Universal lookup person
rocketreach_universal_search_companies
Universal search companies
rocketreach_universal_search_people
Universal search people
rocketreach_verify_email
Verify email
Build your Agent
Same auth pattern across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

// RocketReach tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["rocketreach"], toolNames: [
    "rocketreach_search_people",
    "rocketreach_lookup_person",
    "rocketreach_verify_email"] },
  pageSize: 100,
});

const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Find VPs of Marketing at fintech companies in New York and get their emails" }] });
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const openai = new OpenAI();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["rocketreach"] }, pageSize: 100,
});

const res = await openai.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "Find VPs of Marketing at fintech companies in New York and get their emails" }],
  tools,
});

// Execute the tool call with the user's vaulted RocketReach API key
await sk.tools.executeTool(res.choices[0].message.tool_calls[0], "user_123");
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const anthropic = new Anthropic();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["rocketreach"] }, pageSize: 100,
});

const msg = await anthropic.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Find VPs of Marketing at fintech companies in New York and get their emails" }],
  tools,
});

// Tool call runs with the user's vaulted RocketReach API key
await sk.tools.executeTool(msg.content, "user_123");
import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["rocketreach"] }, pageSize: 100,
});

const agent = new Agent({
  name: "prospecting_agent",
  model: "gemini-2.5-pro",
  instruction: "RocketReach tools scoped to this user",
  tools,
});

await agent.run("Find VPs of Marketing at fintech companies in New York and get their emails");
Try these prompts
Copy any prompt into your agent. Each maps directly to a RocketReach tool. Click to copy, paste into your agent, done.
Search
Copy the prompt
Copied
Find VPs of Marketing at fintech companies in New York.
Copy the prompt
Copied
Find SaaS companies in Austin with 100 to 500 employees.
Copy the prompt
Copied
Look up the company profile for northwind.io.
Lookups
Copy the prompt
Copied
Get the email and phone for this RocketReach profile ID.
Copy the prompt
Copied
Look up Dana Kim and her employer's firmographics.
Copy the prompt
Copied
Start lookups for these 60 profile IDs and tell me when they finish.
Verify and account
Copy the prompt
Copied
Verify whether sam@contoso.com can receive mail.
Copy the prompt
Copied
How many RocketReach credits have I used?
Copy the prompt
Copied
Show my Universal Credits balance.
SEE HOW AUTH WORKS
Each user connects their own RocketReach API key once, and Scalekit sends it with every call. Keys stay vaulted, every call is scope checked, and every action is logged.
1
Authorize
Your user connects
RocketReach
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
RocketReach
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
RocketReach
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
RocketReach
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other CRM and sales connectors.
GTM and RevOps Teams
Outbound prospecting agent
Searches Apollo for prospects matching your ICP, scores and ranks them, drafts personalized outreach in Gmail, and logs every send to Google Sheets. Mail goes out as the rep, not from a shared inbox.
GTM and RevOps Teams
CRM AI agent
Reads the Granola transcript after every call, extracts next steps and updates the HubSpot record, drafts the follow-up in Gmail, and confirms in Slack, all on the rep's own delegated OAuth.
Test other agents
See the same per-user auth pattern across other CRM and sales connectors.
SALES
Outbound prospecting agent
Search Apollo for ICP matches, rank them, draft personalised Gmail outreach, and log every send to Google Sheets.
GTM
CRM AI agent
Turn each Granola call transcript into a HubSpot record update, a drafted Gmail follow-up, and a Slack recap.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared RocketReach API key looks fine in a demo. In production every lookup looks like one service account, and you cannot tell which user triggered it. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared key
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
RocketReach today. Ten connectors tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access RocketReach as the user or through a shared API key?
As the user. Each user connects their own RocketReach API key once, and Scalekit sends it with every call. Audit logs attribute every lookup and verification to that user, not a shared service account.
Where is the RocketReach API key stored?
In Scalekit's managed AES-256 token vault, namespaced per tenant. To rotate it, the user reconnects with a new API key. Revocation is a single dashboard action. Credentials never appear in prompts, logs, or LLM context.
Can I limit what the agent does in RocketReach?
Yes. Filter by tool name in listScopedTools to expose only what you want, for example search and single lookups without rocketreach_bulk_lookup_people, which starts lookups for up to 100 people at once. RocketReach has no delete tools. Scalekit also enforces scope checks before every API call.
What happens when a user revokes RocketReach access?
The connection is invalidated on the next tool call. Subsequent requests for that user fail closed with a clear error. Other users in the tenant remain unaffected. The event is logged for audit.
Which RocketReach tools should the agent use on a Universal Credits account?
The universal variants, such as rocketreach_universal_search_people and rocketreach_universal_lookup_person, work in Universal Credits mode, and rocketreach_get_universal_account shows the balance. Standard accounts use rocketreach_search_people, rocketreach_lookup_person, and the other standard tools.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""rocketreach"": {
""url"": ""https://mcp.scalekit.com/rocketreach"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.rocketreach]
url = ""https://mcp.scalekit.com/rocketreach""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""rocketreach"": {
""url"": ""https://mcp.scalekit.com/rocketreach"",
""type"": ""http""
}
}
}