Moka MCP Server

Moka MCP Server

Enables AI assistants to query Moka recruitment system data including candidates, jobs, pipelines, and talent pools through read-only MCP tools.

Category
访问服务器

README

Moka MCP Server

基于 Moka 开放 API 的 MCP Server。让 Claude、Cursor 等 AI 助手能够直接查询 Moka 招聘系统中的候选人、职位、招聘流程、组织架构、Offer 字段与人才库等信息。

第一阶段:只读。 仅提供查询类能力,不涉及任何写入 / 删除等高危操作。

功能(Tool 一览)

下表的端点与版本均已对生产环境实测校准。Moka API 实际分布在三套基础路径上: v1(多数)、v2(招聘流程/阶段)、candidate/v1(候选人申请记录)。

模块 Tool 真实端点 方法/版本
候选人 search_candidates /data/ehrApplications GET v1
候选人 get_candidate_detail /data/ehrApplications?applicationId= GET v1
候选人 get_candidate_applications /getApplicationStates(body: candidateId) POST candidate/v1
候选人 get_candidate_stage 复用候选人详情的 stageName GET v1
职位 list_jobs /jobs/{orgId}(mode 必填:social/campus) GET v1
职位 get_job_detail /jobs/{orgId}/{jobId} GET v1
职位 get_job_custom_fields 取自职位详情的 customFields GET v1
流程 list_pipelines /pipelines/getPipelinesList GET v2
流程 list_stages /stage/getStagesList GET v2
组织 list_departments /departments GET v1
Offer get_offer_custom_fields /offers/custom_fields(返回 social/campus) GET v1
人才库 list_talent_pools /talentPool/list GET v1
人才库 list_talent_pool_candidates /talentPool/candidates(需 archivedAt 范围 + talentPoolIds) GET v1

环境说明:当前 API Key 仅在生产环境有效(CSM 未开通 staging),故 MOKA_ENV 请用 production。所有 Tool 均为只读,首阶段不涉及任何写操作。

安装

要求 Python 3.10+。

# 推荐用 uv
uv pip install -e .

# 或者用标准 venv + pip
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

配置

复制 .env.example 为 .env 并填入真实值:

cp .env.example .env
变量 必填 说明
MOKA_API_KEY ✅ Moka API Key(Basic Auth),由 CSM 发放
MOKA_ORG_ID 职位接口需要 组织标识,由 CSM 提供
MOKA_ENV production(默认)/ staging
MOKA_BASE_URL 显式覆盖 Base URL,一般留空
MOKA_MASK_SENSITIVE 是否脱敏手机号/身份证,默认 true
MOKA_TIMEOUT HTTP 超时(秒),默认 30
MOKA_MAX_ITEMS 自动翻页累计上限,默认 200

运行

# 直接以 stdio 方式启动(供 MCP 客户端拉起)
moka-mcp-server

# 或
python -m moka_mcp.server

接入 Claude Desktop

编辑 claude_desktop_config.json(macOS 路径: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "moka": {
      "command": "/绝对路径/到/.venv/bin/moka-mcp-server",
      "env": {
        "MOKA_API_KEY": "your_api_key_here",
        "MOKA_ORG_ID": "your_org_id",
        "MOKA_ENV": "production",
        "MOKA_MASK_SENSITIVE": "true"
      }
    }
  }
}

接入 Cursor

在 .cursor/mcp.json 中加入相同结构的配置即可。

自托管 HTTP 端点(Hermes / mcporter 接入)

除本地 stdio 外,本服务支持以 streamable-http 方式部署成一个 HTTP 端点,供 Hermes Agent 等通过 url + X-API-Key 请求头接入(与团队现有自研 MCP server 一致)。

1)以 http 方式启动

在 .env 中设置:

MOKA_TRANSPORT=http
MOKA_HTTP_HOST=0.0.0.0
MOKA_HTTP_PORT=8000
MOKA_HTTP_PATH=/mcp
MOKA_MCP_API_KEY=请设置一个足够随机的访问密钥   # agent 接入凭证

然后启动:

moka-mcp-server
# 端点即为 http://<部署机IP>:8000/mcp

鉴权:开启 MOKA_MCP_API_KEY 后,所有请求必须携带请求头 X-API-Key: <该值>, 否则返回 401。留空表示不校验(仅限完全可信的内网)。生产环境务必设置, 并在外层用 HTTPS(反向代理)保护。

2)mcporter / Hermes 配置

在 mcporter 配置(如 ~/.mcporter/mcporter.json 或项目 config/mcporter.json)中添加, 结构与团队其他 server 完全一致:

{
  "mcpServers": {
    "moka-mcp": {
      "url": "https://<你的域名>/mcp",
      "headers": {
        "X-API-Key": "与 MOKA_MCP_API_KEY 相同的值"
      }
    }
  }
}

验证连通与工具列表:

mcporter list moka-mcp --schema
mcporter call moka-mcp.list_pipelines

注意区分两套凭证:MOKA_API_KEY 是「本服务 → Moka」的认证;MOKA_MCP_API_KEY 是「agent → 本服务」的认证(对应请求头 X-API-Key),两者互不相同。

设计要点

  • 认证:Basic Auth(Authorization: Basic base64(api_key + ":")),无需处理 token 刷新。
  • 错误处理:统一映射 401/403/404/429/500 为友好提示;特别地,按 stage 查询且该阶段无候选人时 Moka 返回 500,本服务会将其作为「空结果」处理。
  • 分页:基于 next 游标自动翻页,受 MOKA_MAX_ITEMS 上限保护。
  • 脱敏:默认对手机号、身份证号掩码(138****1234 / 4103**********2910)。
  • 重试:429 与网络错误做有限次指数退避重试。

项目结构

src/moka_mcp/
├── server.py          # FastMCP 入口,注册全部 Tool
├── config.py          # 配置(pydantic-settings)
├── client.py          # Moka HTTP 客户端(Basic Auth / 错误 / 重试)
├── errors.py          # 统一异常与状态码映射
├── tools/             # 各模块 Tool
│   ├── candidates.py
│   ├── jobs.py
│   ├── pipelines.py
│   ├── departments.py
│   ├── offers.py
│   └── talent_pools.py
└── utils/
    ├── pagination.py  # next 游标自动翻页
    └── sanitize.py    # 敏感字段脱敏

待办(第二阶段)

写入类能力(推进阶段、归档、创建职位、人才库导入、组织/人事同步等)暂未实现,详见需求文档第 3.3 节。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选