招聘CRM MCP服务器

Recruit CRM MCP服务器是一个为AI助手设计的招聘工作流管理工具,支持搜索候选人、查看职位和管理招聘流程。

  • by ebragas
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ebragas/recruitcrm-mcp

使用说明

招聘CRM MCP

MCP(模型上下文协议)服务器 招聘CRM,使人工智能助手能够搜索候选人、查看职位和管理招聘工作流程。

快速开始

一键安装(推荐)

macOS/Linux --在终端中运行:

curl -LsSf https://raw.githubusercontent.com/ebragas/recruitcrm-mcp/main/install.sh | bash

视窗 --在PowerShell中运行:

powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/ebragas/recruitcrm-mcp/main/install.ps1 | iex"

安装程序将:

  • 安装 uv 如果你没有
  • 提示您的Recruit CRM API密钥
  • 备份现有的Claude Desktop配置
  • 添加招聘CRM MCP服务器条目
Want to review the script first?

macOS/Linux:

curl -LsSf https://raw.githubusercontent.com/ebragas/recruitcrm-mcp/main/install.sh -o install.sh
cat install.sh   # review the script
bash install.sh

窗户:

Invoke-WebRequest -Uri https://raw.githubusercontent.com/ebragas/recruitcrm-mcp/main/install.ps1 -OutFile install.ps1
Get-Content install.ps1   # review the script
powershell -ExecutionPolicy Bypass -File .\install.ps1

已有的 uv?您可以跳过引导程序,直接运行安装程序:

uvx --from recruit-crm-mcp recruit-crm-mcp-install

手动设置

如果您更喜欢手动配置,请添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "recruit-crm": {
      "command": "uvx",
      "args": ["--refresh-package", "recruit-crm-mcp", "recruit-crm-mcp"],
      "env": {
        "RECRUIT_CRM_API_KEY": "your-api-key-here"
      }
    }
  }
}

为什么 --refresh-package? 没有它, uvx 缓存已安装的venv并无限期重用它——即使在我们发布错误修复后,您也会继续使用先安装的版本。旗帜部队 uvx 在每次启动Claude Desktop时(约100毫秒热)重新获取包的PyPI索引条目,并在可用时提取较新版本。无需运行任何操作即可自动更新。

安装预发布(测试)版本

预发布版本(例如。 0.16.0rc1)发布到PyPI进行内部 测试。他们是 不 由默认安装程序或裸机拾取 uvx recruit-crm-mcp --你必须明确地固定它们。

要从命令行运行一次预发布,请执行以下操作:

uvx recruit-crm-mcp@0.16.0rc1

要使用Claude Desktop的预发行版,请编辑 claude_desktop_config.json 并更改 args 输入以包含版本号:

{
  "mcpServers": {
    "recruit-crm": {
      "command": "uvx",
      "args": ["recruit-crm-mcp@0.16.0rc1"],
      "env": {
        "RECRUIT_CRM_API_KEY": "your-api-key-here"
      }
    }
  }
}

完全退出并重新打开Claude Desktop(应用程序继续在dock中运行 关闭窗户后)。

回滚到稳定状态,set args 回到 ["--refresh-package", "recruit-crm-mcp", "recruit-crm-mcp"] (或固定一个特定的稳定点,如 ["recruit-crm-mcp@0.15.0"])并重新启动克劳德桌面。

为什么其他用户是安全的。 uvx的默认解析器策略为 --prerelease=if-necessary:除非没有稳定版本,否则跳过预发布 版本符合规范。因为 recruit-crm-mcp 有一个稳定 在PyPI上发布,unpinned uvx recruit-crm-mcp 默认情况下 安装程序的配置解析为最新的稳定版本,并且永远不会选择 预发布。只有一个明确的别针 @0.16.0rc1 选择加入。

发展

uv sync              # install dependencies
make test            # run tests
make lint            # run linter
make check           # run lint + tests

工具

工具 说明
ping 运行状况检查-验证服务器正在运行并且配置了API密钥

候选人

工具 说明
search_candidates 按姓名、电子邮件、领英、电话、州、国家或创建/更新日期范围搜索候选人
get_candidate 通过slug/ID获取候选人的完整个人资料详细信息
create_candidate 创建新的候选人记录
update_candidate 更新现有候选人的标准字段
set_candidate_custom_fields 在不接触标准字段的情况下,为候选人设置自定义字段值

工作

工具 说明
list_jobs 按逆时间顺序列出工作申请
search_jobs 按状态、姓名、城市、国家、公司、所有者或创建/更新日期范围搜索职位
get_job 通过slug/ID获取作业的完整详细信息
create_job 创建新的职位申请(需要姓名、职位空缺、company_slug、contact_slug,描述、货币、申请表标志)
update_job 更新现有作业上的标准字段
set_job_custom_fields 在作业中设置自定义字段值,而不接触标准字段
get_assigned_candidates 列出分配给某个工作的候选人(可选按招聘阶段筛选)

联系人

工具 说明
search_contacts 按姓名、电子邮件、领英、电话、公司、所有者或日期范围搜索联系人
get_contact 通过slug获取联系人的完整详细信息
create_contact 创建新的联系人记录
update_contact 更新现有联系人的标准字段
set_contact_custom_fields 在联系人上设置自定义字段值,而不接触标准字段

公司

工具 说明
search_companies 按名称、所有者、限制标志或日期范围搜索公司(支持排序和精确匹配)
get_company 通过slug获取公司的完整详细信息
create_company 创建新的公司记录
update_company 更新现有公司的标准字段
set_company_custom_fields 在不接触标准字段的情况下在公司上设置自定义字段值

笔记/任务/会议

工具 说明
search_notes 按以下方式搜索笔记 added_from/to 和 updated_from/to
get_note 按ID获取备注
create_note 创建附加到候选人、工作、联系人或公司的注释
delete_note 按ID删除注释
search_tasks 按标题、所有者和创建/更新/开始日期范围搜索任务
get_task 按ID获取任务
create_task 创建附加到相关实体的任务,并可选择提醒
update_task 更新现有任务上的字段
search_meetings 按标题、所有者和创建/更新/开始日期范围搜索会议
get_meeting 按ID获取会议
log_meeting 记录(创建)一个包含与会者和时间的相关实体会议
update_meeting 更新现有会议上的字段

作业

工具 说明
assign_candidate 为候选人分配工作
unassign_candidate 删除候选人的工作分配
update_hiring_stage 在工作中移动候选人的招聘阶段

文件

工具 说明
upload_file 将公共URL文件附加到候选人、公司、联系人或职位

用户/查询

工具 说明
list_users 列出团队成员/用户
list_note_types 枚举笔记类型ID和标签
list_meeting_types 枚举会议类型ID和标签
list_task_types 枚举任务类型ID和标签
list_hiring_pipelines 列出帐户中配置的招聘渠道
list_hiring_pipeline_stages 招聘流程的各个阶段(pipeline_id=0=master)
list_contact_stages 列出销售渠道阶段(接触阶段)
list_industries 列出账户中可用的行业
list_company_custom_fields 公司的自定义字段定义
list_contact_custom_fields 联系人的自定义字段定义
list_job_custom_fields 作业的自定义字段定义
list_candidate_custom_fields 候选人的自定义字段定义

反馈

工具 说明
report_issue 构建一个预填充的GitHub Issues URL,用户可以单击该URL提交错误报告

资源

资源 描述
recruitcrm://candidate/{id}/resume 获取候选人的简历URL
recruitcrm://job/{id}/description 获取完整的职位描述

配置

在MCP客户端配置中设置环境变量(例如。 claude_desktop_config.jsons env 块):

变量 必填 默认 描述
RECRUIT_CRM_API_KEY 是 - 招募CRM API令牌。
RECRUIT_CRM_MCP_SENTRY_DSN no unset 您自己的哨兵项目DSN。如果设置,工具调用异常和每工具使用遥测将自动报告给该项目。看 错误报告 在......下面
SENTRY_DSN no unset 回退DSN(如果已全局导出)。 RECRUIT_CRM_MCP_SENTRY_DSN 优先。
RECRUIT_CRM_MCP_ENV 没有 production 哨兵环境标签。
RECRUIT_CRM_MCP_SENTRY_TRACES_RATE 没有 1.0 哨兵追踪采样率(0.0–1.0)。默认为全采样,因此MCP仪表板会立即填充。降低它(例如。 0.2)如果你的哨兵配额很紧。集 0.0 在保持错误捕获的同时禁用跟踪。

错误报告

两个互补的、完全可选的渠道来解决问题:

1. report_issue MCP工具(始终可用)

当出现问题并且您想发送结构化的错误报告时,请Claude“报告此问题”或“提交错误”。MCP会公开一个 report_issue 构建预填充的GitHub Issues URL的工具——Claude返回链接,您单击它,GitHub打开预填充摘要、最后一个错误和您的环境详细信息的新问题表单。像其他问题一样从浏览器提交。适用于任何GitHub帐户;MCP中没有令牌,不需要合作者访问,回购是公开的。

2.哨兵自动捕获(携带自己的DSN)

如果你想要被动可观察性——使用堆栈跟踪、span上下文和HTTP面包屑自动捕获每个工具调用异常,再加上一个填充的MCP仪表板,显示你的用户实际调用了哪些工具——set RECRUIT_CRM_MCP_SENTRY_DSN 转到您控制的Sentry项目DSN。在没有设置DSN(默认设置)的情况下,MCP对Sentry进行零网络呼叫。

这是 严格携带自己的DSN。我们不发布或嵌入项目DSN。如果你想要这个,注册一个免费的Sentry帐户,创建一个Python项目,复制它的DSN,并将其放入你的MCP客户端配置中:

{
  "mcpServers": {
    "recruit-crm": {
      "command": "uvx",
      "args": ["--refresh-package", "recruit-crm-mcp", "recruit-crm-mcp"],
      "env": {
        "RECRUIT_CRM_API_KEY": "...",
        "RECRUIT_CRM_MCP_SENTRY_DSN": "https://<key>@<org>.ingest.sentry.io/<project>"
      }
    }
  }
}

你得到了什么 你的 哨兵项目:

  • 错误。 工具名称、异常类型、堆栈跟踪、HTTPX面包屑(URL和状态代码)、MCP请求/会话ID和包版本。
  • 使用遥测技术。 每个工具调用都被捕获为一个跨度(traces_sample_rate 默认为 1.0),标记有工具名称、参数、结果、持续时间和传输。这些填充哨兵 MCP仪表板 --每个工具请求计数、错误率、p95延迟、客户端分布。这就是你如何找出你的用户实际使用的工具。

通过工具(候选人姓名、电子邮件、公司信息)流动的招聘CRM数据将出现在span和事件有效载荷中——这就是重点,因为如果没有触发错误的数据,错误和使用分析都是无用的。因为DSN是你的,所以数据只会进入你的哨兵项目。

如果交易量是一个问题(免费哨兵计划每月上限为5K个事件),请设置 RECRUIT_CRM_MCP_SENTRY_TRACES_RATE=0.2 20%取样,或 0.0 在保留错误捕获的同时完全禁用跟踪。

隐私

  • 默认情况下没有遥测。 在没有配置哨兵DSN的情况下,MCP对除以下人员之外的任何人进行零网络呼叫 api.recruitcrm.io.
  • 没有捆绑DSN。 我们不嵌入我们自己的哨兵DSN——哨兵捕获只有在您自己提供的情况下才有效。
  • report_issue 是明确同意。 它只构建一个可点击的URL;在浏览器中提交预先填写的表单之前,不会发送任何内容。
  • 公共回购问题。 通过以下方式提交的报告 report_issue 在GitHub上公开可见。不要粘贴你不想公开的秘密或个人身份信息。