内容
# HR MCP Server
一个用于HR操作的模型上下文协议(Model Context Protocol,MCP)服务器,专为Claude Desktop设计。
https://github.com/user-attachments/assets/4cb89115-daf2-4647-81d2-aadd9e0dd29e
## 概述
该服务器实现了[模型上下文协议](https://github.com/anthropics/anthropic-cookbook/tree/main/context_protocol),为Claude提供结构化的员工数据和HR操作访问。
HR MCP Server使Claude能够:
- 查找详细的员工信息
- 按各种标准搜索员工
- 提交和管理全球请假请求
- 具备HR/HCM上下文意识的文本翻译
有关详细的架构概述,请参见[ARCHITECTURE.md](./ARCHITECTURE.md)。

## 工具
该服务器为Claude提供以下工具:
### 1. `get_employee_info`
通过ID检索特定员工的详细信息,包括个人信息、雇佣信息、技能、福利等。
```javascript
// 示例用法:
get_employee_info({ employee_id: "E001" })
// 包含敏感信息:
get_employee_info({ employee_id: "E001", include_sensitive: true })
```
### 2. `search_employees`
通过各种标准进行员工搜索,支持灵活的匹配选项。支持按姓名、部门、技能、地点等多个字段搜索。
```javascript
// 基本搜索:
search_employees({
query: { department: "Engineering" }
})
// 高级搜索:
search_employees({
query: {
location: "Seattle",
performance_rating: 5
},
options: {
sort_by: "hireDate",
output_format: "detailed"
}
})
// 包含敏感信息的搜索:
search_employees({
query: { salary_min: 100000 },
options: { include_sensitive: true }
})
```
### 3. `request_global_leave`
为前往多个国家的员工提交全球请假请求,包含审批链和合规提醒。
```javascript
// 基本请求:
request_global_leave({
employee_id: "E002",
start_date: "2025-05-01",
end_date: "2025-05-15",
reason: "家庭度假",
countries: ["USA", "UK"]
})
// 包含自定义联系信息:
request_global_leave({
employee_id: "E002",
start_date: "2025-05-01",
end_date: "2025-05-15",
reason: "家庭度假",
countries: ["USA", "UK"],
contact_info: {
email: "bob.vacation@example.com",
phone: "+1-555-123-4567"
}
})
```
### 4. 翻译提示:`translate_text`
将任何语言的文本翻译为指定的目标语言,具备自动源语言检测,并特别关注HR/HCM术语。
```javascript
// 基本翻译:
translate_text({
text: "Les employés doivent soumettre leurs feuilles de temps avant la fin de la période.",
target_language: "English"
})
```
翻译系统处理HR特定术语时具备上下文意识,保留“benefits”(福利)、“period”(期间)、“check”(检查)、“position”(职位)等术语在人才管理(Human Capital Management)上下文中的特殊含义。
## 安装
```bash
# 克隆仓库
git clone https://github.com/yourusername/hr-mcp-server.git
cd hr-mcp-server
# 安装依赖
npm install
# 构建项目
npm run build
```
## 使用
1. 启动服务器:
```bash
npm start
```
2. 通过选择“Local Tool (via stdio)”作为工具类型,并使用服务器启动脚本的路径,将Claude Desktop连接到服务器。
3. 通过Claude的界面访问员工数据和HR工具。
## 开发
- 源代码位于`/src`目录
- 员工数据存储在`/src/data/employees.ts`
- 服务器使用TypeScript,采用严格类型
在开发模式下运行:
```bash
npx ts-node-esm src/index.ts
```
## 技术栈
- TypeScript
- Node.js
- [@modelcontextprotocol/sdk](https://github.com/anthropics/model-context-protocol-sdk-js) - JavaScript/TypeScript的MCP SDK
- [Zod](https://github.com/colinhacks/zod) - TypeScript优先的模式验证
## 代码结构
服务器的组织结构注重于干净、可维护的代码:
- **集中日志记录** - 一致的JSON-RPC格式日志
- **基于工具的架构** - 每个工具有明确的责任
- **模式验证** - 使用Zod对所有输入进行强类型验证
- **错误处理** - 全面的验证和清晰的错误信息
- **文档** - 内联注释解释复杂逻辑
## 许可证
MIT
版权所有 (c) 2024
特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售该软件的副本,并允许向其提供软件的人这样做,条件如下:
上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。
该软件是“按原样”提供的,不提供任何种类的保证,无论是明示或暗示,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权持有人均不对因使用该软件或与该软件的使用或其他交易相关的任何索赔、损害或其他责任承担责任,无论是在合同诉讼、侵权或其他方面。