mcp-leave-management
Exposes employee leave-management operations (add employees, check balance, apply/cancel leave, view history) as MCP tools for AI clients like Claude Desktop to call directly.
README
MCP Leave Management Server
A simple Model Context Protocol (MCP) server that exposes employee leave-management operations (apply, cancel, check balance, view history) as tools an AI client (like Claude Desktop, Claude Code, or the MCP Inspector) can call directly.
Built as a learning project for understanding how MCP servers work — how tools are defined, registered, and invoked by an LLM client — before extending it into a real backend (e.g. with persistent storage).
Features
- Add new employees with a default leave balance
- Check an employee's remaining leave balance
- Apply for leave (with automatic balance deduction and history logging)
- View an employee's full leave history
- Cancel a previously applied leave (restores balance)
- List all employees in the system
Note: Data is stored in-memory for this version — it resets every time the server restarts. Persistence (SQLite/Postgres) is a planned next step.
Tech Stack
Project Structure
mcp-leave-management/
├── leave_server.py # MCP server with all tool definitions
├── pyproject.toml # Project metadata & dependencies (created by uv)
├── README.md
└── .gitignore
Setup
1. Clone the repository
git clone <your-repo-url>
cd mcp-leave-management
2. Install dependencies with uv
uv init --no-workspace
uv add "mcp[cli]"
3. Run the server with MCP Inspector (for manual testing)
uv run mcp dev leave_server.py
This opens the MCP Inspector in your browser, where you can connect to the server and call each tool manually with test inputs.
Available Tools
| Tool | Parameters | Description |
|---|---|---|
add_employee |
employee_name: str |
Adds a new employee with a default balance of 10 days |
get_leave_balance |
emp_name: str |
Returns the employee's remaining leave balance |
apply_leave |
emp_name: str, days: int, reason: str |
Deducts leave days and logs the request in history |
get_leave_history |
emp_name: str |
Returns the list of past leave applications |
cancel_leave |
emp_name: str, leave_id: str |
Cancels a leave entry and restores the balance |
list_employees |
— | Returns a list of all employee names |
Default seed data
| Employee | Starting Balance |
|---|---|
| Chandu | 10 |
| Sekhar | 15 |
Example Usage (via MCP Inspector)
- Call
list_employees→ confirms["Chandu", "Sekhar"] - Call
get_leave_balancewithemp_name="Chandu"→ returns10 - Call
apply_leavewithemp_name="Chandu",days=2,reason="Personal"→ returns a confirmation message and deducts the balance - Call
get_leave_balanceagain forChandu→ returns8 - Call
get_leave_historyforChandu→ shows the applied leave entry with itsid - Call
cancel_leavewith thatleave_id→ restores the balance back to10
Connecting to Claude Desktop / Claude Code
Once verified in the Inspector, this server can be registered as an MCP tool in
a client's configuration (e.g. claude_desktop_config.json), pointing to the
uv run command for leave_server.py.
Roadmap / Next Steps
- [ ] Replace in-memory dict with persistent storage (SQLite or Postgres)
- [ ] Input validation (e.g. reject negative/zero
daysinapply_leave) - [ ] Role-based access (manager approval flow for leave requests)
- [ ] Unit tests for each tool
- [ ] Docker support for deployment
License
MIT (or update as preferred)
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.