maimai-mcp

maimai-mcp

MCP server that integrates with 脉脉 (maimai.cn) recruitment API, enabling AI agents to manage contacts, recommend talents, view chat history, and send messages to candidates via natural language.

Category
访问服务器

README

maimai-mcp

License: MIT Node.js >= 18 Platform MCP PRs Welcome

English | 中文

Model Context Protocol Server wrapping maimai-cli,让 AI Agent(如 TRAE、Claude Desktop、Cursor)能通过统一协议调用脉脉的招聘功能 —— 获取联系人、推荐人才、对话历史、向候选人发消息等。

架构

flowchart LR
    A[MCP Client<br/>TRAE / Claude Desktop / Cursor] --stdio--> B[maimai-mcp<br/>Node.js MCP Server]
    B --HTTP--> C[maimai-cli<br/>lsongdev/maimai-js]
    C --HTTPS--> D[(脉脉 API<br/>maimai.cn)]
    B -.env.-> E[(MAIMAI_U<br/>MAIMAI_ACCESS_TOKEN)]

暴露工具

工具名 类型 说明
maimai_get_contacts 只读 获取脉脉联系人列表
maimai_recommend_talents 只读 根据职位 ID 获取推荐人才
maimai_get_dialog 只读 获取与指定联系人的对话历史
maimai_recruiter_send 写操作 招聘立即沟通,向候选人发消息
maimai_enterprise_send 写操作 企业极速联系候选人

工具详情

1. maimai_get_contacts

获取脉脉联系人(好友)列表。

参数

参数 类型 必填 默认 说明
paginate number 否 0 分页标识,0 表示首页

调用示例

{
  "name": "maimai_get_contacts",
  "arguments": { "paginate": 0 }
}

返回示例(截断)

{
  "contacts": [
    { "id": "12345", "name": "张三", "company": "字节跳动", "position": "算法工程师" }
  ],
  "has_more": true,
  "next_paginate": 1690000000000
}

2. maimai_recommend_talents

根据已发布职位 ID 获取脉脉推荐人才列表(招聘方功能,需招聘方账号权限)。

参数

参数 类型 必填 默认 说明
jid string 是 - 脉脉职位 ID(在脉脉招聘后台获取)
page number 否 1 页码

调用示例

{
  "name": "maimai_recommend_talents",
  "arguments": { "jid": "job_abc123", "page": 1 }
}

3. maimai_get_dialog

获取与指定联系人的对话消息历史。

参数

参数 类型 必填 默认 说明
mid string 是 - 对方用户 ID
count number 否 10 拉取消息条数

调用示例

{
  "name": "maimai_get_dialog",
  "arguments": { "mid": "12345", "count": 20 }
}

4. maimai_recruiter_send

招聘立即沟通:以招聘方身份向候选人发送消息。调用前会在 stderr 打印审计日志。需招聘方账号权限。

参数

参数 类型 必填 默认 说明
uid string 是 - 候选人脉脉用户 ID
content string 是 - 要发送的消息内容

调用示例

{
  "name": "maimai_recruiter_send",
  "arguments": { "uid": "12345", "content": "您好,看到您的经历很匹配我们的岗位,方便聊聊吗?" }
}

审计日志(stderr)

[maimai-mcp][审计] recruiter_send -> uid=12345, content=您好...

5. maimai_enterprise_send

企业极速联系候选人。调用前会在 stderr 打印审计日志。需企业招聘方账号权限。

参数

参数 类型 必填 默认 说明
to_uids string 是 - 目标用户 ID
content string 是 - 要发送的消息内容
jid string 否 "" 关联职位 ID

调用示例

{
  "name": "maimai_enterprise_send",
  "arguments": { "to_uids": "12345", "content": "极速联系测试", "jid": "job_abc123" }
}

安装

git clone https://github.com/JACKWang19559/maimai-mcp.git
cd maimai-mcp
npm install

获取脉脉认证信息

  1. 浏览器登录 https://maimai.cn/
  2. F12 打开开发者工具 → Application → Cookies → https://maimai.cn
  3. 复制两个 cookie 值:
    • u → 作为 MAIMAI_U
    • access_token → 作为 MAIMAI_ACCESS_TOKEN

⚠️ access_token 是敏感凭据,不要提交到 git 或公开分享。 Token 通常 60 天过期,失效后重新登录获取。

MCP 配置

将以下配置添加到你的 MCP 客户端的 mcpServers 配置中(Claude Desktop 的 claude_desktop_config.json / TRAE MCP 配置 / Cursor 等):

{
  "mcpServers": {
    "maimai": {
      "command": "node",
      "args": [
        "/absolute/path/to/maimai-mcp/index.js"
      ],
      "env": {
        "MAIMAI_U": "你的脉脉用户ID",
        "MAIMAI_ACCESS_TOKEN": "你的脉脉access_token"
      }
    }
  }
}

环境变量

变量 必填 说明
MAIMAI_U 是 脉脉用户 ID(cookie 中的 u)
MAIMAI_ACCESS_TOKEN 是 脉脉 access token(cookie 中的 access_token)
MAIMAI_CLI_PATH 否 自定义 maimai-cli 目录路径

默认 MAIMAI_CLI_PATH 指向 .trae-cn/mcps/recruitment_tools/maimai-cli。如果使用独立部署,请将 maimai-cli 克隆到任意位置,并通过此变量指定。

安全审计

写操作(maimai_recruiter_send / maimai_enterprise_send)调用前会在 stderr 打印审计日志:

[maimai-mcp][审计] recruiter_send -> uid=12345, content=您好...
[maimai-mcp][审计] enterprise_send -> to_uids=12345, content=极速联系...

便于在 MCP 客户端的日志面板追踪 AI 的发消息行为。

开发指南

本地开发

git clone https://github.com/JACKWang19559/maimai-mcp.git
cd maimai-mcp
npm install
# 修改 index.js 后用 stdio 调试
node index.js

添加新工具

  1. 在 index.js 的 TOOLS 数组中添加新对象,包含 name、description、inputSchema、handler
  2. handler 中通过 getChatClient() 或 getEnterpriseClient() 获取客户端实例
  3. 重新启动 MCP server 即可生效

测试

MCP server 通过 stdio 通信,推荐使用 MCP Inspector 调试:

npx @modelcontextprotocol/inspector node index.js

FAQ

Q: access_token 过期怎么办? A: 重新登录脉脉网页版,从 cookie 重新获取 u 和 access_token,更新 MCP 配置中的环境变量后重启 MCP 客户端。

Q: 启动报错 maimai-cli 未找到? A: 默认路径是 TRAE 部署路径。独立部署时请先 git clone https://github.com/lsongdev/maimai-js.git maimai-cli,然后设置 MAIMAI_CLI_PATH 环境变量指向 maimai-cli 目录。

Q: 报错 MAIMAI_U 或 MAIMAI_ACCESS_TOKEN 缺失? A: 检查 MCP 配置的 env 字段是否正确填写,且两个变量都未空。

Q: 能否用于商业用途? A: 本项目基于 MIT 协议开源,可商用。但使用脉脉 API 时请遵守脉脉的用户协议和相关法律法规。写操作(发消息)有频控风险,请合理使用。

Q: 是否支持企业账号批量操作? A: 当前版本仅支持单条消息发送。批量操作请基于 maimai_enterprise_send 自行扩展,并注意脉脉的频控策略。

贡献指南

欢迎提交 Issue 和 PR!

  1. Fork 本仓库
  2. 创建特性分支:git checkout -b feature/your-feature
  3. 提交更改:git commit -m 'feat: add your feature'
  4. 推送分支:git push origin feature/your-feature
  5. 提交 Pull Request

请确保代码风格一致,新增工具需在 README 中补充说明。

相关项目

License

MIT © 2026 JACKWang19559

推荐服务器

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 模型以安全和受控的方式获取实时的网络信息。

官方
精选