MCP休假管理器服务器
该项目展示了一个使用SQLite数据库存储的员工休假管理模型上下文协议(MCP)服务器,该服务器与Claude Desktop无缝集成,用于自然语言交互和全面的休假跟踪。
🚀 特性
- 员工管理:使用模糊名称匹配添加、查看和搜索员工
- 请假系统:提交、批准和跟踪休假申请(年假、病假、个人休假、紧急休假)
- 休假余额跟踪:监控年假和病假余额,并自动扣除
- MCP集成:与Claude Desktop无缝集成,实现自然语言交互
- 数据库持久性:带有印度员工样本数据的SQLite数据库
- 类型安全:用于健壮代码的完整类型提示和数据类
- 模糊搜索:智能员工姓名匹配,可容忍拼写错误
📄 运作原理
- 数据库初始化:创建SQLite表并填充示例数据
- MCP资源:公开Claude Desktop的只读数据端点
- MCP工具:为数据修改提供基于操作的功能
- 自然语言接口:Claude Desktop将用户提示转换为函数调用
- 数据验证:确保员工和休假类型验证的数据完整性
- 自动余额更新:批准后从员工余额中扣除休假天数
🛠️ 用法
安装依赖项:
pip install -r requirements.txt
# If you need to manually install missing packages:
pip install fastmcp mcp typing-extensions运行MCP服务器:
python server.py
# or
python -m mcp_leave_manager_server.server配置Claude桌面:
添加到您的Claude Desktop MCP配置中:
{
"mcpServers": {
"leave-manager": {
"command": "python",
"args": ["/path/to/server.py"]
}
}
}Claude Desktop中的示例提示:
- "Show me all employees"
- "Get leave requests for Rajesh Kumar"
- "Submit a leave request for EMP001 from 2024-10-01 to 2024-10-05 for vacation"
- "Approve leave request REQ003"
- "Check leave balance for Anita Patel"
- "Show pending leave requests"
- "Add new employee named Rohit Sharma in Engineering"🛠️ 技术栈
- Python 3.13+ 使用FastMCP框架
- SQLite 用于数据持久性
- 模型上下文协议(MCP) 用于AI集成
- 键入提示 使用数据类实现健壮的代码
- difflib 用于模糊名称匹配
📊 MCP资源和工具
资源(只读数据):
employees://all-带假期余额的员工目录employee://{employee_id}-员工个人信息leave-requests://all-系统中的所有请假请求leave-requests://employee/{employee_id}-员工特定要求leave-requests://status/{status}-按状态(待定、批准、拒绝)列出的请求
工具(操作):
submit_leave_request()-提交新的休假申请approve_leave_request()-批准待处理的请求check_leave_balance()-检查员工假期余额get_pending_approvals()-获取所有待处理的请求get_database_stats()-获取系统统计信息add_employee()-通过重复检查添加新员工
📂 项目结构
mcp_leave_manager_server/
├── server.py # Main MCP server implementation
├── main.py # Entry point
├── requirements.txt # Python dependencies
├── pyproject.toml # Project configuration
├── leave_manager.db # SQLite database (auto-created)
├── README.md # This file
└── __pycache__/ # Python cache files💾 数据库模式
员工表
CREATE TABLE employees (
employee_id TEXT PRIMARY KEY,
name TEXT NOT NULL,
department TEXT NOT NULL,
manager TEXT NOT NULL,
annual_leave_balance INTEGER NOT NULL,
sick_leave_balance INTEGER NOT NULL
);请假申请表
CREATE TABLE leave_requests (
request_id TEXT PRIMARY KEY,
employee_id TEXT NOT NULL,
employee_name TEXT NOT NULL,
start_date TEXT NOT NULL,
end_date TEXT NOT NULL,
leave_type TEXT NOT NULL,
status TEXT NOT NULL,
reason TEXT NOT NULL,
days_requested INTEGER NOT NULL,
submitted_date TEXT NOT NULL,
approved_by TEXT,
FOREIGN KEY (employee_id) REFERENCES employees (employee_id)
);🚀 进展
- ✅ 已配置环境设置和依赖关系
- ✅ 实现SQLite数据库模式和示例数据
- ✅ 已创建用于数据访问的MCP资源
- ✅ 实施了用于数据修改的MCP工具
- ✅ 员工和休假申请管理已验证
- ✅ 添加了模糊名称匹配和数据验证
- ✅ Claude桌面集成测试
🎯 用例
非常适合:
- 人力资源团队:高效管理员工休假申请
- 经理:批准/拒绝请求并跟踪团队可用性
- 员工:提交休假申请并检查余额
- 人工智能集成:用于休假管理的自然语言界面
🔮 未来的增强功能
- \[\]请假批准的电子邮件通知
- \[\]用于休假安排的日历集成
- \[\]部门离职分析
- \[\]休假政策执行规则
- \[\]REST API端点
- \[\]Web仪表板界面
✍️ 作者
查蒙德瓦里 –软件工程师探索GenAI、MCP服务器和AI驱动的业务应用程序。
______________________________________________________________________
*内置于❤️ 实现无缝的人工智能休假管理*
