关于 Enrich Layer v3
Enrich Layer v3 MCP 服务将 Enrich Layer API 提供给 AI Agent,适用于需要查询个人与公司资料及处理工作邮箱的场景。支持本地运行或通过托管 HTTP 连接器接入,并返回调用费用和请求标识。
主要功能
- 01查询个人资料
- 02查询公司资料与 Logo
- 03按名称搜索公司
- 04查找工作邮箱
- 05验证邮箱可送达性
- 06支持托管 HTTP 连接器
适用场景
- 01核查联系人职业资料
- 02查找目标公司的信息
- 03为潜在客户查找工作邮箱
- 04发送前验证邮箱
MCP 相关
向 MCP 客户端提供六种 Enrich Layer v3 API 工具,可通过本地 stdio 服务或托管 Streamable HTTP 连接器使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 今天
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| string | 否 | 电子邮件地址。 | |
| github | string | 否 | GitHub 用户名或个人资料 URL。 |
| profile | string | 否 | LinkedIn 用户名或个人资料 URL。 |
| string | 否 | Twitter/X 用户名或个人资料 URL。 | |
| string | 否 | Facebook 用户名或个人资料 URL。 | |
| workEmail | enum | 否 | 包含工作邮箱,返回于 `contactInformation.emails.work` 部分。默认值:排除。exclude | include |
| activities | enum | 否 | 包含此人个人主页上最近发布的最多 100 条帖子,按时间从新到旧排列,未注明日期的帖子排在最后;返回于 `activities` 部分。默认值:排除。exclude | include |
| socialLink | enum | 否 | 包含社交资料 URL,并在 `slug` 部分返回对应用户名;URL 返回于 `contactInformation.socialLinks` 部分。默认值:排除。exclude | include |
| phoneNumber | enum | 否 | 包含电话号码,返回于 `contactInformation.phoneNumbers` 部分。默认值:排除。exclude | include |
| careerInsight | enum | 否 | 包含预估薪资、资历级别和推断出的技能,返回于 `careerInsight` 部分。默认值:排除。exclude | include |
| maxAgeSeconds | integer | 否 | 缓存数据可接受的最长期限,以秒为单位。默认值:2592000。 |
| personalEmail | enum | 否 | 包含个人邮箱,返回于 `contactInformation.emails.personal` 部分。默认值:排除。exclude | include |
| developerProfile | enum | 否 | 包含 GitHub 开发者资料数据,返回于 `developerProfile` 部分。默认值:排除。exclude | include |
详细介绍
Enrich Layer v3 MCP 服务
这是一个用于访问 api.enrichlayer.com 上 Enrich Layer v3 API 的 MCP 服务。它为 AI Agent 提供六种工具:个人和公司档案、公司搜索、公司 Logo、工作邮箱搜索和邮箱验证。
这是一个独立于 v2 版本的服务,v2 版本(@enrichlayer/mcp-server)仍按原样正常运行。
要求
- Node.js 20.3 或更高版本。
- Enrich Layer API 密钥。
API 密钥、账户和积分
- 获取密钥: 登录 enrichlayer.com/dashboard,打开 API Key 标签页并复制密钥。
- 积分归属: 服务使用
ENRICHLAYER_API_KEY中设置的密钥所属账户运行。每次成功调用都会向该账户扣费;结果会在creditCost中显示扣除的积分。以错误结束的调用不会扣费。 - 为 Agent 单独创建账户: 用户在网站上创建 Enrich Layer 账户并充值,然后复制其 API 密钥并将密钥填入 Agent 的 MCP 配置。账户及其积分归该用户所有。
- 速率限制: 限制按账户计算。新账户在首次付款前的限制非常低。
安装
大多数客户端会将密钥保存在配置文件中,因此请妥善保管该文件。VS Code 会提示你输入密钥并替你保存。
Cursor
该按钮会打开 Cursor 的安装链接(cursor://anysphere.cursor-deeplink/mcp/install?...)。链接中不包含密钥:添加服务后,请在 Cursor 的 MCP 设置中将 <your API key> 替换为你的密钥。
如需手动添加,请将以下代码块放入 ~/.cursor/mcp.json(所有项目)或 .cursor/mcp.json(单个项目):
{
"mcpServers": {
"enrichlayer-v3": {
"command": "npx",
"args": ["-y", "@enrichlayer/mcp-server-v3"],
"env": { "ENRICHLAYER_API_KEY": "<your API key>" }
}
}
}
VS Code
该链接会打开 VS Code 的安装链接(vscode:mcp/install?...)。服务首次启动时,VS Code 会提示你输入 API 密钥。
如需手动添加,请将以下内容放入工作区中的 .vscode/mcp.json,或放入用户配置文件的 MCP 配置中:
{
"inputs": [
{ "type": "promptString", "id": "enrichlayer-api-key", "description": "Enrich Layer API key", "password": true }
],
"servers": {
"enrichlayer-v3": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@enrichlayer/mcp-server-v3"],
"env": { "ENRICHLAYER_API_KEY": "${input:enrichlayer-api-key}" }
}
}
}
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows),并添加与 Cursor 相同的 mcpServers 代码块。退出并重新打开 Claude Desktop。macOS 上的服务日志位于 ~/Library/Logs/Claude/mcp-server-enrichlayer-v3.log。
Claude Code
claude mcp add --env ENRICHLAYER_API_KEY=<your API key> --transport stdio enrichlayer-v3 -- npx -y @enrichlayer/mcp-server-v3
Codex
codex mcp add enrichlayer-v3 --env ENRICHLAYER_API_KEY=<your API key> -- npx -y @enrichlayer/mcp-server-v3
Codex 默认会在 60 秒后停止工具调用。请在 ~/.codex/config.toml 中调高此限制:
[mcp_servers.enrichlayer-v3]
command = "npx"
args = ["-y", "@enrichlayer/mcp-server-v3"]
env = { ENRICHLAYER_API_KEY = "<your API key>" }
tool_timeout_sec = 310
Windsurf
请将与 Cursor 相同的 mcpServers 代码块添加到 Windsurf MCP 文档中指定的 MCP 配置文件:macOS 和 Linux 上为 ~/.config/devin/mcp_config.json,Windows 上为 %AppData%/devin/mcp_config.json。Cascade 可通过“Open MCP config file”操作打开此文件。你也可以在其中使用 ${env:ENRICHLAYER_API_KEY} 代替密钥本身,并将密钥保存在环境变量中。
Antigravity
打开 Agent 面板中的 … 菜单 → MCP Servers → Manage MCP Servers → View raw config,或编辑 ~/.gemini/config/mcp_config.json(单个工作区使用 .agents/mcp_config.json)。添加与 Cursor 相同的 mcpServers 块,并设置更长的工具调用时限——Antigravity 的默认时限为 180 秒:
{
"mcpServers": {
"enrichlayer-v3": {
"command": "npx",
"args": ["-y", "@enrichlayer/mcp-server-v3"],
"env": { "ENRICHLAYER_API_KEY": "<your API key>" },
"timeoutSeconds": 310
}
}
}
工具
| 工具 | v3 端点 | 功能 |
|---|---|---|
get_person_profile | GET /v3/person | 根据且仅根据一个标识符查询单个人员:profile(LinkedIn 网址或用户名)、email、twitter、facebook 或 github。可选部分:socialLink、phoneNumber、personalEmail、workEmail、careerInsight、developerProfile、activities。 |
get_company_profile | GET /v3/company | 根据 LinkedIn 公司主页或展示页的 url 查询一家公司。可选部分:fundingData、exitData、acquisitions、extra、activities。 |
search_companies | GET /v3/company/search | 搜索名称(q)匹配的公司,最多 10 家。 |
search_company_logos | GET /v3/company/logo | 搜索名称或域名(q)匹配的公司,并返回 Logo 网址。 |
find_work_emails | GET /v3/email/prospect | 根据 full_name,或 first_name 和/或 last_name,以及公司 domain,查找可能的工作邮箱。 |
validate_email | GET /v3/email/validate | 检查单个电子邮件地址是否可投递。 |
输入架构根据已发布的 v3 OpenAPI 规范生成,因此参数名称和允许值均为 v3 接受的内容。
只请求你需要的部分。人员完整档案可能很长:Claude Code 会在工具输出超过 10,000 个 token 时发出警告,并默认在 25,000 个 token 处截断(如需更多内容,可提高 MAX_MCP_OUTPUT_TOKENS)。
电子邮件地址
get_person_profile搭配personalEmail或workEmail时,仅返回已验证可投递的地址。要通过档案网址查找某人的工作邮箱,请传入profile和workEmail: "include";如果contactInformation.emails.work为空,使用此人的姓名和公司域名调用find_work_emails仍可能找到候选地址。find_work_emails会返回候选地址,每个地址都带有validity中的验证结果;只有valid才表示已确认可投递。validate_email会在emailStatus中返回验证结果。
调用返回的内容
data— 完整的 v3 响应,未经更改。creditCost— 此次调用扣除的积分,来自X-EnrichLayer-Credit-Cost标头。requestId— 此次调用的X-Request-Id;联系支持时请提供此值。
结果会以 MCP 结构化内容和文本块中的相同 JSON 格式返回。
错误会作为工具错误返回,并附带易读的消息、creditCost、requestId 和后续操作说明:参数无效(400)、密钥无效或缺失(401)、积分不足或无访问权限(403)、未找到(404)、没有足够新的副本(409,并附最新缓存副本的时间)、速率限制(429)以及服务错误(5xx)。服务会在报告 429 和 5xx 错误前重试两次。
数据新鲜度和长时间调用
get_person_profile 和 get_company_profile 接受 maxAgeSeconds:你可接受的缓存副本最长期限。默认值为 30 天,通常几秒内即可返回结果。较小的值会触发实时查询,这会更慢且花费更多:最多可能需要 5 分钟,服务会等待最多 305 秒。
MCP 客户端会限制工具调用的最长运行时间。在客户端允许的情况下,将时限设为至少 310 秒:
- Claude Code: 所有服务可使用
MCP_TOOL_TIMEOUT;单个服务可在.mcp.json中设置毫秒为单位的timeout。 - Codex: 使用
tool_timeout_sec,默认值为 60 秒。 - Antigravity: 使用
timeoutSeconds,默认值为 180 秒。 - Claude Desktop、Cursor、VS Code 和 Windsurf 未提供相关设置的说明,客户端可能会中断长时间调用。
如果调用在结果返回前被中断,仍可能产生费用。要获取期间已保存的副本,请在不传入 maxAgeSeconds 的情况下再次调用;不要立即重复实时查询。
环境变量
| 变量 | 必填 | 默认值 |
|---|---|---|
ENRICHLAYER_API_KEY | 是 | — |
ENRICHLAYER_API_BASE_URL | 否 | https://api.enrichlayer.com |
托管连接器
相同的工具也通过 HTTP 在 https://mcp.enrichlayer.com/v3/mcp 提供。将该地址添加为客户端中的远程 MCP 服务;客户端会打开 Enrich Layer 登录页面,你可以在其中粘贴 API 密钥。之后调用会消耗该账户的额度,与本地服务一样。
该地址背后的服务是此软件包的 enrichlayer-mcp-v3-http 命令。它提供无会话的 Streamable HTTP,因此任何实例都能处理任何请求:
| 路径 | 作用 |
|---|---|
POST /v3/mcp | MCP 请求;需要来自登录服务的 Bearer 访问令牌 |
GET /.well-known/oauth-protected-resource/v3/mcp | 告知客户端登录位置 |
GET /v3/health | {"status":"ok","version":"<version>"} |
| 变量 | 必填 | 默认值 |
|---|---|---|
MCP_BASE_URL | 是 | —(公共源;访问令牌必须由其签发,并且面向该地址) |
AUTH_JWT_SECRET | 是 | —(登录服务用于签署访问令牌的密钥) |
PORT | 否 | 3000 |
ENRICHLAYER_API_BASE_URL | 否 | https://api.enrichlayer.com |
SENTRY_DSN、SENTRY_ENVIRONMENT | 否 | 不会报告错误 |
每次工具调用都会向 stdout 写入一行 JSON,其中包含工具、API 状态、creditCost、requestId、耗时和客户端名称;密钥、令牌和参数绝不会被记录。
v<version> 标签也会构建镜像 ghcr.io/enrichlayer/mcp:<version>。要在本地构建并运行:
docker build -t enrichlayer-mcp-v3 .
docker run --rm -p 3000:3000 -e MCP_BASE_URL=http://localhost:3000 -e AUTH_JWT_SECRET=<secret> enrichlayer-mcp-v3
curl http://localhost:3000/v3/health
开发
npm ci
npm test # build, then unit and conformance tests
npm run update-spec # refresh spec/v3-openapi.json from the published spec
npm run gen:params # regenerate src/generated/v3-params.ts from the spec copy
CI 会检查类型,并在 Node 20、22 和 24 上运行测试;如果已发布的 v3 规范与 spec/v3-openapi.json 不一致,则会失败。
server.json 用于描述官方 MCP 注册表中的服务。其名称、版本和软件包必须与 package.json 一致;测试会对此进行检查。
要发布,请在 package.json 和 server.json 中设置版本,然后推送 v<version> 标签。该标签会运行相同的检查,并将该版本暂存到 npm;软件包所有者随后从 npmjs.com 上的 Staged Packages 发布该软件包。然后从 Actions 选项卡手动运行 Registry 工作流,将 server.json 发布到 MCP 注册表。注册表中的每个版本只能提交一次,因此对同一版本再次运行该工作流会失败。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。