CompanyEnrich MCP server for AI agents

Live

BEARER TOKEN

COMPANY DATA

CRM & Sales

CompanyEnrich gives your agent company data: enrich companies by domain or name, find lookalike companies, search companies and people with filters, find work emails, and read workforce insights.

  • Per-user credentials: each call uses the actual user's access token, 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.
CompanyEnrich
agent · Acme Q3
Run
Find 10 companies similar to northwind.com.
S
companyenrich_find_similar_companies
141ms
Account research agent
Here are 10 lookalikes for northwind.com. 7 are B2B software companies with 50 to 200 employees in North America.
Sources: CompanyEnrich, 10 companies
companyenrich
10 companies
18:29
Message Claude...

Tools your account research agent reaches for on CompanyEnrich, scoped per user.

CALL ANY TOOL
31 tools for company data in CompanyEnrich: enrich companies by domain or name, find and count lookalikes, search companies and people, find work emails, and read workforce insights.
companyenrich_autocomplete_companies
Autocomplete companies
Suggest companies whose domain matches partial text. Free. Returns up to 10 companies, each with domain, name and logoUrl. Use this to turn a partial or misspelt company name into a domain before enriching it. Use companyenrich_search_companies for filtered search.
Parameters
Name
Type
Required
Description
query
string
Required
Partial company domain or name to complete. Example: strip
companyenrich_autocomplete_keywords
Autocomplete keywords
companyenrich_autocomplete_positions
Autocomplete positions
companyenrich_autocomplete_technologies
Autocomplete technologies
companyenrich_batch_enrich_companies
Batch enrich companies
companyenrich_count_companies
Count companies
companyenrich_count_similar_companies
Count similar companies
companyenrich_enrich_company_by_domain
Enrich company by domain
companyenrich_enrich_company_by_properties
Enrich company by properties
companyenrich_find_person_email
Find person email
companyenrich_find_similar_companies
Find similar companies
companyenrich_get_account
Get account
companyenrich_get_company
Get company
companyenrich_get_company_workforce
Get company workforce
companyenrich_get_country
Get country
companyenrich_get_person
Get person
companyenrich_get_person_education
Get person education
companyenrich_list_company_lists
List company lists
companyenrich_list_industries
List industries
companyenrich_list_regions
List regions
companyenrich_lookup_person_by_email
Lookup person by email
companyenrich_preview_companies
Preview companies
companyenrich_preview_similar_companies
Preview similar companies
companyenrich_scroll_companies
Scroll companies
companyenrich_scroll_people
Scroll people
companyenrich_search_cities
Search cities
companyenrich_search_companies
Search companies
companyenrich_search_countries
Search countries
companyenrich_search_people
Search people
companyenrich_search_states
Search states

For more tools, view docs.

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);

// CompanyEnrich tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["companyenrich"], toolNames: [
    "companyenrich_enrich_company_by_domain",
    "companyenrich_find_similar_companies",
    "companyenrich_search_people"] },
  pageSize: 100,
});

const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Find 10 lookalikes for northwind.com and their heads of engineering" }] });
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: ["companyenrich"] }, pageSize: 100,
});

const res = await openai.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "Find 10 lookalikes for northwind.com and their heads of engineering" }],
  tools,
});

// Execute the tool call with the user's vaulted CompanyEnrich access token
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: ["companyenrich"] }, pageSize: 100,
});

const msg = await anthropic.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Find 10 lookalikes for northwind.com and their heads of engineering" }],
  tools,
});

// Tool call runs with the user's vaulted CompanyEnrich access token
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: ["companyenrich"] }, pageSize: 100,
});

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

await agent.run("Find 10 lookalikes for northwind.com and their heads of engineering");
Try these prompts
Copy any prompt into your agent. Each maps directly to a CompanyEnrich tool. Click to copy, paste into your agent, done.
Enrichment
Copy the prompt
Copied
Enrich northwind.com.
Copy the prompt
Copied
Enrich these 50 domains in one batch.
Copy the prompt
Copied
Show workforce insights for Northwind.
Search and lookalikes
Copy the prompt
Copied
How many fintech companies in Germany have 50 to 200 employees?
Copy the prompt
Copied
Preview the top 25 lookalikes for these 3 customer domains.
Copy the prompt
Copied
Search for logistics software companies in France.
People
Copy the prompt
Copied
Find heads of engineering at Northwind.
Copy the prompt
Copied
Find the work email for this person.
Copy the prompt
Copied
Who is behind jane@northwind.com?
SEE HOW AUTH WORKS
Each user connects their own CompanyEnrich access token once, and Scalekit sends it with every call. Tokens stay vaulted, every call is scope checked, and every action is logged.
1
Authorize
Your user connects
CompanyEnrich
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
CompanyEnrich
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
CompanyEnrich
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
CompanyEnrich
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 sales and data 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
Competitive intelligence briefing agent
Scans Gong calls for competitor mentions, matches each one to its Notion battlecard, and DMs every affected rep a single Slack digest per cycle. Every call runs as the PMM who owns the briefing, never a shared bot.
Test other agents
See the same per-user auth pattern across other sales and data connectors.
SALES
Outbound prospecting agent
Search Apollo for ICP matches, rank them, draft personalised Gmail outreach, and log every send to Google Sheets.
GTM
Competitive intelligence briefing agent
Scan Gong calls for competitor mentions, match each one to its Notion battlecard, and DM every affected rep a single Slack digest.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared CompanyEnrich access token looks fine in a demo. In production every enrichment 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 token
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
CompanyEnrich 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 CompanyEnrich as the user or through a shared token?
As the user. Each user connects their own CompanyEnrich access token once, and Scalekit sends it with every call. Credits come from that user's CompanyEnrich account, and audit logs attribute every request to that user, not a shared service account.
Where is the CompanyEnrich access token stored?
In Scalekit's managed AES-256 token vault, namespaced per tenant. To rotate it, the user reconnects with a new access token. Revocation is a single dashboard action. Credentials never appear in prompts, logs, or LLM context.
Can I limit what the agent does in CompanyEnrich?
Yes. Filter by tool name in listScopedTools to expose only what you want, for example the free autocomplete tools only. Every CompanyEnrich tool is read-only, so the agent cannot change anything in the account, but several tools spend credits. Scalekit also enforces scope checks before every API call.
What happens when a user revokes CompanyEnrich 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 CompanyEnrich tools cost credits?
The docs list the cost on each tool. Autocomplete and location lookups are free, and the preview tools are free on a Scale plan. companyenrich_enrich_company_by_domain and companyenrich_get_company cost 1 credit, companyenrich_get_person costs 2, companyenrich_search_people costs 2 per person returned, and companyenrich_lookup_person_by_email costs 5. companyenrich_get_account returns the remaining balance.
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"": {
""companyenrich"": {
""url"": ""https://mcp.scalekit.com/companyenrich"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.companyenrich]
url = ""https://mcp.scalekit.com/companyenrich""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""companyenrich"": {
""url"": ""https://mcp.scalekit.com/companyenrich"",
""type"": ""http""
}
}
}