Mcp Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Server (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An MCP (Model Context Protocol) server that provides 25 tools for enriching company, person, contact, school, and job data via the Enrich Layer API.
Use it with any MCP-compatible client: Claude Desktop, Claude Code, Cursor, VS Code, and more.
npx -y @enrichlayer/mcp-serverSet your API key as an environment variable:
export ENRICH_LAYER_API_KEY=your_api_key_hereGet your API key at enrichlayer.com/dashboard.
Add to your claude_desktop_config.json:
{
"mcpServers": {
"enrich-layer": {
"command": "npx",
"args": ["-y", "@enrichlayer/mcp-server"],
"env": {
"ENRICH_LAYER_API_KEY": "your_api_key_here"
}
}
}
}Download the .mcpb file from Releases and open it in Claude Desktop. You'll be prompted to enter your API key during setup.
claude mcp add enrich-layer -- npx -y @enrichlayer/mcp-serverThen set the env var ENRICH_LAYER_API_KEY in your shell.
Add to your Cursor MCP settings:
{
"mcpServers": {
"enrich-layer": {
"command": "npx",
"args": ["-y", "@enrichlayer/mcp-server"],
"env": {
"ENRICH_LAYER_API_KEY": "your_api_key_here"
}
}
}
}Add to your VS Code MCP settings (.vscode/mcp.json):
{
"servers": {
"enrich-layer": {
"command": "npx",
"args": ["-y", "@enrichlayer/mcp-server"],
"env": {
"ENRICH_LAYER_API_KEY": "your_api_key_here"
}
}
}
}For remote deployments, the server also supports Streamable HTTP transport:
npm run start:httpThis starts an Express server on port 3000 (configurable via PORT env var) with a /mcp endpoint for JSON-RPC and a /health endpoint for health checks.
"Look up the company profile for Stripe"
This calls enrich_company_lookup with company_name: "Stripe" to find the company's professional network URL and profile data.
"Find the work email for the CTO of Notion"
This chains two tools: first enrich_role_lookup with company_name: "Notion", role: "cto" to find the person, then enrich_work_email with their profile URL to get the email address.
"How many credits do I have left?"
This calls enrich_credit_balance to show your remaining API credits. Costs 0 credits.
| Tool | Description | Credits |
|---|---|---|
enrich_company_profile | Get structured company data from URL | 1 |
enrich_company_lookup | Look up company by name or domain | 2 |
enrich_company_id_lookup | Look up company by numeric ID | 0 |
enrich_company_picture | Get company profile picture URL | 0 |
enrich_employee_list | List employees of a company | 3/employee |
enrich_employee_count | Get employee count | 1 |
enrich_employee_search | Search employees by keyword | 10 |
| Tool | Description | Credits |
|---|---|---|
enrich_person_profile | Get structured person data from URL | 1 |
enrich_person_lookup | Look up person by name + company | 2 |
enrich_person_picture | Get person profile picture URL | 0 |
enrich_role_lookup | Find person by role at company | 3 |
| Tool | Description | Credits |
|---|---|---|
enrich_reverse_email | Find profile by email | 3 |
enrich_reverse_phone | Find profile by phone number | 3 |
enrich_work_email | Get work email from profile | 3 |
enrich_personal_contact | Get personal phone numbers | 1/contact |
enrich_personal_email | Get personal email addresses | 1/email |
enrich_disposable_email | Check if email is disposable | 0 |
| Tool | Description | Credits |
|---|---|---|
enrich_school_profile | Get structured school data | 1 |
enrich_student_list | List students of a school | 3/student |
| Tool | Description | Credits |
|---|---|---|
enrich_job_profile | Get structured job posting data | 2 |
enrich_job_search | Search job postings | 2 |
enrich_job_count | Count matching job postings | 2 |
| Tool | Description | Credits |
|---|---|---|
enrich_company_search | Search companies by criteria | 3/URL |
enrich_person_search | Search people by criteria | 3/URL |
| Tool | Description | Credits |
|---|---|---|
enrich_credit_balance | Check your credit balance | 0 |
Enrich Layer collects only the data you explicitly pass as tool parameters (URLs, names, emails). No conversation data, chat history, or personal data is collected or stored. All requests go directly to the Enrich Layer API over HTTPS.
For the full privacy policy, see enrichlayer.com/privacy.
# Install dependencies
npm install
# Build
npm run build
# Run stdio server (for MCP clients)
npm start
# Run HTTP server (for remote deployments)
npm run start:http
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.jsTool schemas follow the published Enrich Layer OpenAPI spec — the single source of truth for the API surface: <https://enrichlayer.com/docs/api/v2/openapi.yaml>
A copy of the spec is vendored at spec/enrichlayer-api.yaml, and CI runs npm run check:spec on every pull request. A tool fails the check when:
Optional spec parameters a tool does not expose are reported as warnings — tools may deliberately expose a curated subset. The check matches parameter names and required-ness only; it does not validate enum values or types, because the spec does not encode those for query parameters.
When the API changes:
npm run update-spec # refresh spec/enrichlayer-api.yaml from the published URL
npm run build
npm run check:spec # see which tools drifted, fix their schemasThe conformance logic lives in scripts/conformance-core.mjs and is unit-tested (npm test, Node's built-in test runner).
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.