LeaveManager – MCP Server with Claude Integration
LeaveManager is a custom Model Context Protocol (MCP) server built using FastMCP.
It allows Claude to interact with a backend Leave Management System using natural language.
This project demonstrates how Claude can automatically select and execute backend tools based on user queries.
🚀 Features
- Check employee leave balance
- Apply leave for specific dates
- View leave history
- In-memory state management
- Claude Desktop integration via MCP
- Automatic tool selection from natural language
🧠 Tech Stack
- Python 3.10+
- FastMCP
- MCP CLI
- Claude Desktop (for tool invocation)
- uv (Python package manager)
📂 Project Structure
my-first-mcp-server/ │ ├── main.py ├── pyproject.toml ├── README.md ├── .gitignore ├── uv.lock └── .venv/
🛠️ MCP Tools
1️⃣ get_leave_balance
Checks remaining leave days for an employee.
Input:
employee_id(string)
2️⃣ apply_leave
Applies leave for given dates and updates balance.
Input:
employee_id(string)leave_dates(list of YYYY-MM-DD)
3️⃣ get_leave_history
Returns all leave dates taken by an employee.
Input:
employee_id(string)
💡 Example Claude Queries
- “Check leave balance for employee E001”
- “Apply leave for employee E001 on 2025-04-17 and 2025-05-01”
- “Show leave history for employee E001”
Claude automatically selects and executes the correct MCP tool.
⚠️ Important Note on Data Storage
- This project uses in-memory storage
- Data resets when the MCP server restarts
- This is intentional for simplicity
- Can be extended with SQLite for persistence
▶️ Running Locally (Without Claude)
uv run main.py
🎯 Learning Outcomes
Built a real MCP server
Exposed backend tools to Claude
Understood stateful MCP behavior
Integrated Python backend with LLM tool calling
📌 Future Improvements
SQLite persistence
Date validation & duplicate checks
Employee creation & reset tools
FastAPI + MCP hybrid architecture
🧑💻 Author
Uma Maheswara Rao
Aspiring AI Engineer / Data Analyst
