休假管理系统

一个基于Model Context Protocol (MCP)的休假管理系统,允许AI助手如Cursor或Claude充当HR助手,收集休假详情、验证政策、即时批准请求并发出人性化确认。

  • by ankaleshsarma
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ankaleshsarma/leavemanagementMCP

使用说明

休假管理MCP服务器

概述

该项目提供了一个名为的模型上下文协议(MCP)服务器 LeaveManagementSystem。它让Cursor或Claude等人工智能助理像人力资源副驾驶一样行事:收集休假详细信息、验证政策、立即批准请求,并发出人性化的确认。服务器是用Python实现的 fastmcp,因此它是轻量级的、有状态的、易于扩展的。

我们解决的问题

  • 手动休假工作流程很慢。 人力资源团队花时间收集员工信息、验证政策和撰写批准电子邮件。
  • 助理们经常忽略关键的背景。 典型的人工智能自动化会触发工具,而不确保它们具有所有细节,从而导致错误或来回澄清。
  • 批准需要可审计的跟踪。 经理们希望了解谁申请了休假,休假了多少天,以及为什么批准休假。

解决方案亮点

  • 结构化MCP工具: apply_leave, approve_leave, reject_leave,以及 leave-status 资源将所有核心HR操作作为确定性API公开。
  • 内置护栏: 工具验证确保助手收集 employee_id, days,以及混凝土 reason 在采取行动之前。
  • 自动审批工作流程: 当 apply_leave 当被调用时,系统会自动批准请求,更新余额,并模拟电子邮件通知。Claude(或任何感知MCP的助手)可以立即响应,而无需等待人工管理者。
  • 实时状态跟踪: 助理可以查询 leave-status://{emp_id} 与员工分享当前余额和决策历史。

为什么这是前沿

  • 助理第一设计: 我们没有公开另一个REST API,而是提供了一个专为LLM工具平台定制的本地MCP服务器。Claude、Cursor和未来的MCP客户端可以发现功能,执行参数契约,并用最少的粘合代码编排高级流。
  • AI代理的操作安全: 验证、策略限制和审计跟踪在服务器端强制执行,使让自主代理批准休假更安全。
  • 可组合人力资源自动化: 因为所有东西都在MCP服务器内运行,所以您可以将其与其他MCP服务(日历同步、工资单、分析)链接起来,而无需定制集成。
  • 已准备好进行实时协作: 内存模型在会话期间保持状态;迁移到数据库或SaaS后端就像交换存储层一样简单。

技术栈

核心技术

  • Python 3.11+:现代Python,带有类型提示,用于稳健开发
  • FastMCP:高性能MCP服务器框架,提供与MCP兼容客户端的无缝集成
  • 模型上下文协议(MCP):人工智能助手与外部工具和资源交互的标准化协议
  • 紫外线:用于可复制环境的快速Python包安装程序和依赖关系管理器

数据层

  • 当前实施情况:用于快速原型制作和开发的内存数据结构(字典和列表)
  • 生产就绪:设计时考虑了数据库抽象——可以无缝连接到:
    • SQLite:适用于中小型部署的轻量级、基于文件的数据库
    • PostgreSQL:用于生产环境的企业级关系数据库
    • MySQL/MariaDB:替代关系数据库选项
    • MongoDB:用于灵活文档存储的NoSQL选项
    • SaaS HRIS API:与现有人力资源管理系统(Workday、BambooHR等)直接集成

集成点

  • MCP客户端:原生支持Claude Desktop、Cursor IDE和任何兼容MCP的客户端
  • 邮件通知:模拟电子邮件系统(已准备好与SendGrid、AWS SES、SMTP服务器集成)
  • 将来的扩展:日历API、Slack/Teams webhooks、工资单系统

开发工具

  • pyproject.toml:具有依赖关系管理的现代Python项目配置
  • uv.lock:可复制构建的锁定依赖版本

建筑一瞥

Claude / Cursor ──► MCP Transport ──► LeaveManagementSystem (fastmcp)
                                   ├─ apply_leave()  → Validates → Approves → Sends notification
                                   ├─ approve_leave() → Manual override
                                   ├─ reject_leave()  → Manual override
                                   └─ leave-status resource → Generates human-readable summaries
                                   
Data Layer (Configurable):
├─ In-Memory (Development) ──► Python dictionaries/lists
└─ Database (Production) ───► SQLite / PostgreSQL / MySQL / MongoDB / HRIS APIs

快速开始

  1. 安装依赖项 (使用 uv 对于确定性环境):
    uv pip install -r pyproject.toml
    
  2. 手动运行MCP服务器(可选):
    uv run --with mcp[cli] mcp run main.py
    
  3. 在MCP客户端中注册服务器 (光标或克劳德)。使用以下命令:
    C:\Users\Asus\.local\bin\uv.EXE run --with mcp[cli] mcp run C:\Users\Asus\Desktop\leavemanagementMCP\main.py
    
  4. 重新启动客户端 加载新服务器。

使用服务器

  • 请假申请: 收集 emp_id, days,以及 reason。该工具会自动批准并返回格式化的确认以及模拟的电子邮件通知。
  • 推翻决定: 如有需要,请致电 approve_leave 或 reject_leave 手动调整状态。
  • 检查状态: 查询 leave-status://emp001 (替换为任何员工)查看余额和决策历史。

扩展系统

数据库集成

该系统的架构支持直接数据库连接。您可以用数据库查询替换内存中的数据结构:

  • SQLite:非常适合小型团队,无需配置的单文件数据库
  • PostgreSQL/MySQL:企业已准备好ACID合规性、事务和复杂查询
  • MongoDB:基于文档的存储,用于灵活的模式演变
  • HRIS API:通过REST/GraphQL API直接连接到现有的人力资源系统(Workday、BambooHR、ADP)

数据库集成模式示例:

# Replace in-memory dictionaries with database queries
employees = db.query("SELECT emp_id, name, leaves_taken FROM employees")
leave_requests = db.query("SELECT * FROM leave_requests WHERE emp_id = ?", [emp_id])

其他增强功能

  • 身份验证和授权:添加基于角色的访问控制(RBAC)以限制谁可以批准/拒绝休假
  • 真正的电子邮件/短信集成:连接到交易电子邮件提供商(SendGrid、AWS SES)或短信网关(Twilio)
  • 分析和报告:公开MCP资源,用于年初至今的总结、团队休假日历和政策合规报告
  • Webhook支持:批准/拒绝休假时触发外部系统
  • 多租户支持:按组织/公司隔离SaaS部署的数据