Company Enrichment MCP Server
RemoteAbout Company Enrichment MCP Server
Company Enrichment MCP Server turns company domains into live, normalized records for sales and research teams. It combines public company details, MX-graded business contacts, technology and social data, and hiring signals from eight ATS platforms without requiring API keys.
Key features
- 01Live company profile enrichment
- 02MX-graded public business contacts
- 03Technology stack and social links
- 04Hiring signals across eight ATS platforms
- 05Email-domain deliverability checks
- 06Keyless public-source data
Use cases
- 01Researching a company before outreach
- 02Comparing hiring activity across companies
- 03Checking a business email domain
- 04Building company records from domain lists
MCP support
Exposes four tools to MCP clients for company enrichment, hiring signals, email-domain checks, and schema or capability discovery. Runs over stdio.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp/enrichclaude mcp add --transport http rezearcher-company-enrichment https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp/enrich{"mcpServers":{"rezearcher-company-enrichment":{"type":"http","url":"https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp/enrich"}}}Open in Cursor{"servers":{"rezearcher-company-enrichment":{"type":"http","url":"https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp/enrich"}}}Open in VS Code{"mcpServers":{"rezearcher-company-enrichment":{"type":"http","url":"https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp/enrich"}}}{"mcpServers":{"rezearcher-company-enrichment":{"serverUrl":"https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp/enrich"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEGrey Ridge Company Enrichment MCP
A Model Context Protocol server that turns a company domain into a live, normalized enrichment record — for any MCP client (Claude Desktop, Cursor, Cline, Continue, or your own agent).
Give it stripe.com and get back, in one call, firmographics + verified business contacts + a
tech-stack fingerprint + social links and a live hiring signal — the buying-intent layer that
static enrichment databases can't carry:
company_name · industry · hq_country · tech_stack · contacts (MX-graded) · social_links · hiring{ats_vendor, open_reqs, departments, locations, remote_share, intensity, newest_posting}
- Live from source, never a resold database. Every field is read this call from the company's own public website, public DNS/MX, and public applicant-tracking JSON. No stale cache, no third-party data broker, no paid key to hold.
- Zero keys, zero account, free COGS. All upstreams are keyless and public.
- The hiring signal is the moat. The
hiring{}block is derived live from 8 ATS platforms (Greenhouse · Lever · Ashby · SmartRecruiters · Workday · Recruitee · Workable · BambooHR) — a real buying-intent signal (who is hiring, how hard, in which departments) that resold-DB enrichers do not ship because they sell static firmographics. - One parse dependency.
cheeriofor robust HTML extraction — no MCP SDK, no 90-package transitive tree dragged into your agent's trust boundary. - Honest, never fabricated. Thin crawls are flagged (
enrichment_status), absent fields staynull, placeholder/noreply addresses are dropped.
Install
Requires Node.js ≥ 18.
Claude Desktop
Add to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"company-enrichment": {
"command": "npx",
"args": ["-y", "github:rezearcher/company-enrichment-mcp"]
}
}
}
Cursor / Cline / Continue
Point the client at the same command (npx -y github:rezearcher/company-enrichment-mcp) as a stdio
server. In Cursor: Settings → MCP → Add new server → type command.
From source
git clone https://github.com/rezearcher/company-enrichment-mcp
cd company-enrichment-mcp
npm install
node server.mjs # speaks MCP over stdio
npm test # real client handshake + live-data roundtrip
Tools
| Tool | What it does |
|---|---|
enrich_company | Full live record(s) for one or more domains: firmographics, MX-graded contacts, tech-stack fingerprint, social links, and the live hiring block. Args: domains (string[]), includeHiring/includeContacts/includeTech (default true), maxPages (default 4, max 12), maxCompanies. Deduped by canonical domain. |
company_hiring_signal | Cheap buying-intent probe — just the live hiring block for one company, skipping the site crawl. Resolves the ATS across 8 platforms and returns open reqs, departments/locations hiring, remote share, intensity, newest posting. Args: company (slug or domain). |
check_email_domain | Grade a domain's mail deliverability from public DNS (keyless, free). Returns {resolves, has_mx, mx_hosts, grade} (B/D/F). Accepts a domain or an email address. |
list_capabilities | The record schema, the 8 ATS platforms, the live/keyless data policy, and the public-business-data-only legal scope. No network call. |
Example
Ask your assistant: "Enrich stripe.com and ramp.com, and tell me which is hiring harder." The model calls:
{ "name": "enrich_company",
"arguments": { "domains": ["stripe.com", "ramp.com"] } }
and gets back a records[] array — each a unified company record whose hiring.hiring_intensity
(none/low/med/high) and hiring.open_reqs_count answer the question directly.
Or, for a fast buying-intent check without the full crawl: "Is bunq hiring right now?" →
{ "name": "company_hiring_signal", "arguments": { "company": "bunq.com" } }
The record
{
"input_domain": "stripe.com",
"canonical_domain": "stripe.com",
"company_name": "Stripe",
"description": "...",
"industry": "...",
"hq_country": "US",
"social_links": ["https://twitter.com/stripe", ...],
"tech_stack": [ { "name": "Next.js", "category": "..." }, ... ],
"contacts": { "emails": [ { "email": "...", "mx": true, "deliverability_grade": "B" } ], "phones": [...] },
"hiring": {
"ats_vendor": "greenhouse", "open_reqs_count": 725, "hiring_intensity": "high",
"departments_hiring": [...], "locations_hiring": [...], "remote_share": 0.18,
"newest_posting_at": "2026-10-29T..."
},
"source_freshness": "live",
"enrichment_status": "ok"
}
Why live-from-source (and not a resold database)
Resold-database enrichers (the common Apify/marketplace pattern) return whatever was in a broker's
last crawl — often months stale — and need a paid data key behind them. This server reads each
company now, from sources the buyer would otherwise have to integrate and maintain themselves: a
heterogeneous website layout, a DNS/MX posture, and eight different ATS JSON shapes that drift and
that companies migrate between. That upkeep is the point — a scheduled canary
(.github/workflows/smoke.yml) exercises the live path on every push and daily and fails loudly the
moment an upstream reshapes. And because the hiring block is computed live, it reflects today's open
reqs, not a snapshot — the signal a prospector actually wants.
Legal scope
PUBLIC business data only — published firmographics, published business contact points (role inboxes, switchboard, public social profiles), and public ATS postings. No login, no personal/consumer PII, no scraped individual profiles, no third-party database. Respect each source's terms and rate limits.
License
MIT © Grey Ridge Signals Group LLC.
Related tools (same maintained engine)
- company-enrichment-cli — the same
enrichment core as a plain command-line tool (
npx github:rezearcher/company-enrichment-cli stripe.com). - jobs-mcp-server — the raw 8-ATS job feed as an MCP server, when you want the postings themselves rather than a company-level signal.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.