数据丰富化MCP服务器

一个提供25种工具用于丰富公司、个人、联系人、学校和职位数据的MCP服务器,适用于开发者集成和数据分析场景。

  • by enrichlayer
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 enrichlayer/mcp-server

使用说明

Enrich Layer MCP Server

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.

Quick Start

npx -y @enrichlayer/mcp-server

Set your API key as an environment variable:

export ENRICH_LAYER_API_KEY=your_api_key_here

Get your API key at enrichlayer.com/dashboard.

Configuration

Claude Desktop

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"
      }
    }
  }
}

Claude Desktop (MCPB Extension)

Download the .mcpb file from Releases and open it in Claude Desktop. You'll be prompted to enter your API key during setup.

Claude Code

claude mcp add enrich-layer -- npx -y @enrichlayer/mcp-server

Then set the env var ENRICH_LAYER_API_KEY in your shell.

Cursor

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"
      }
    }
  }
}

VS Code

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"
      }
    }
  }
}

Remote HTTP Server

For remote deployments, the server also supports Streamable HTTP transport:

npm run start:http

This 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.

Optional Sentry self-reporting

The server captures startup, request, and graceful-shutdown failures when SENTRY_DSN is configured. Set SENTRY_ENVIRONMENT, SENTRY_RELEASE, and SENTRY_SERVICE alongside it to control the event tags. The defaults are the current NODE_ENV, the package version, and enrich-layer-mcp-server for HTTP or enrich-layer-mcp-server-stdio for stdio; the environment variables always take precedence over those defaults. Missing or invalid DSNs disable reporting without affecting server startup. Failure telemetry is scrubbed before it is sent: request query strings are removed, credential-like values are redacted, and default PII and tracing integrations are disabled. Error text may still be forwarded after scrubbing, so configure this only where that operational telemetry is permitted.

The application does not load an environment file. A deployment/runtime manager must export these variables or inject them through its secret store; never commit a DSN to source or pass it in a request. For the production mcp.verticalint.co deployment, Vault injection and rollout are tracked separately in INF-887.

Usage Examples

1. Look up a company

"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.

2. Find a work email by role

"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.

3. Check your credit balance

"How many credits do I have left?"

This calls enrich_credit_balance to show your remaining API credits. Costs 0 credits.

Available Tools (25)

Company (7 tools)

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

Person (4 tools)

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

Contact (6 tools)

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

School (2 tools)

Tool Description Credits
enrich_school_profile Get structured school data 1
enrich_student_list List students of a school 3/student

Job (3 tools)

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

Search (2 tools)

Tool Description Credits
enrich_company_search Search companies by criteria 3/URL
enrich_person_search Search people by criteria 3/URL

Meta (1 tool)

Tool Description Credits
enrich_credit_balance Check your credit balance 0

Privacy Policy

Enrich Layer collects only the data you explicitly pass as tool parameters (URLs, names, emails). No conversation data or chat history is collected by the MCP transport, and all API requests go directly to the Enrich Layer API over HTTPS. When optional Sentry self-reporting is configured, scrubbed operational failure telemetry may be sent to the configured Sentry project; it is separate from the API request path and can be disabled by omitting SENTRY_DSN.

For the full privacy policy, see enrichlayer.com/privacy.

Development

# 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.js

API surface conformance

Tool 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:

  • its endpoint is not in the spec;
  • it exposes a parameter the spec does not document for that endpoint;
  • a parameter's required/optional flag disagrees with the spec;
  • it omits a parameter the spec marks required.

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 schemas

The conformance logic lives in scripts/conformance-core.mjs and is unit-tested (npm test, Node's built-in test runner).

License

MIT