人力资源休假管理
🔧 要求
- python 3.11+
uv(项目/环境经理)mcpCLI(Command Line Interface)的中文翻译是“命令行界面”
安装:
pipx install uv || pip install uv
pipx install mcp || pip install mcp______________________________________________________________________
🚀 快速入门
# 1) Clone
git clone https://github.com/Akshat-kay/HR-leave-Management-MCP.git
cd HR-leave-Management-MCP
# 2) Sync environment & dependencies
uv sync
# 3) (Optional) Target active venv to avoid warnings
uv run --active python -V
# 4) Register the MCP server with your host registry
uv run --active mcp install main.py
# Alternative:
# python -m uv run mcp install main.py
# 5) Develop locally with hot reload
uv run --active mcp dev main.py使用Claude Desktop:在下方添加此服务器 设置 → 工具(MCP) 并且指出 mcp dev main.py (或者使用由……生成的配置文件 mcp install)。
______________________________________________________________________
🧪 发现并呼叫(命令行界面)
列出终端节点:
uv run --active mcp describe main.py调用一个工具:
uv run --active mcp call main.py get_leave_balance --json '{"employee_id":"E001"}'获取资源:
uv run --active mcp resource main.py latest_request运行一个提示:
uv run --active mcp prompt main.py leave_summary --json '{"quarter":"Q4-2025"}'______________________________________________________________________
🧠 数据模型
内存中的结构示例:
employee_leaves = {
"E001": {"balance": 18, "history": ["2024-12-25", "2025-01-01"]},
"E002": {"balance": 20, "history": []}
}
# balance → integer days remaining
# history → ISO-8601 approved leave dates迁移到 SQLite/Postgres 并使用 SQLModel/SQLAlchemy,或在需要时连接到人力资源信息系统(HRIS)。
______________________________________________________________________
🌎 假期意识(假期日期)
示例草图:
import datetime as dt
import json, urllib.request
def is_public_holiday(country="CA", date=None):
date = date or dt.date.today()
url = f"https://date.nager.at/api/v3/PublicHolidays/{date.year}/{country}"
with urllib.request.urlopen(url) as r:
holidays = json.load(r)
return any(h["date"] == date.isoformat() for h in holidays)缓存响应,并为演示准备一个离线备用地图。
______________________________________________________________________
📦 项目布局
HR-leave-Management-MCP/
├─ main.py # FastMCP server: tools/resources/prompts
├─ pyproject.toml # uv/PEP 621 metadata
├─ uv.lock # reproducible lockfile
└─ README.md # this file______________________________________________________________________
🛡️ 故障排除
- 装饰器必须是 被称为:
@mcp.tool(),@mcp.resource(),@mcp.prompt()。 - 使用
__file__(两个下划线)用于文件路径;避免___file__。 - 如果
VIRTUAL_ENV does not match,添加--active到;对于;为了;给;向;在(表示时间或地点)uv run ...。 - 更喜欢;偏好
os.path.join+os.path.dirname(__file__)适用于Windows安全路径。
______________________________________________________________________
🗺️ 路线图
- 基于角色的工具访问授权
- 数据库后端(SQLite/Postgres)
- 人力资源信息系统适配器(BambooHR、Bob、Workday)
- 指标与追踪(成功率、p95延迟、审计日志)
- 管理员提示(策略检查、预先审批规则)
______________________________________________________________________
🤝 贡献
- 保持终端点简洁且专注。
- 使用可序列化的JSON输入输出,并提供清晰的文档字符串。
- 为工具行为和错误路径添加测试。
______________________________________________________________________
📜 许可证
麻省理工学院(MIT)
::contentReference[oaicite:0]{index=0}