home / mcp / leave management mcp server

Leave Management MCP Server

Provides leave management actions via MCP: apply, approve, reject leaves, and track status.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "ankaleshsarma-leavemanagementmcp": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "main.py"
      ]
    }
  }
}

Leave Management MCP Server provides a compact, stateful MCP toolset that lets AI assistants act as an HR co-pilot. It supports collecting leave details, validating policies, auto-approving requests, and emitting clear confirmations with an auditable trail. The server runs in Python using FastMCP and is designed for real-time collaboration and easy extension.

How to use

You interact with the Leave Management MCP Server through MCP clients like Claude Desktop or Cursor IDE. Core actions are exposed as deterministic APIs: apply_leave, approve_leave, reject_leave, and a leave-status resource for human-friendly summaries. You provide employee_id, days, and a concrete reason when applying for leave; the system auto-approves by default and updates balances, then notifies via a simulated email. If you need to override decisions, you can explicitly call approve_leave or reject_leave. To surface current balances and history to employees, query leave-status://{emp_id}.

How to install

Prerequisites: ensure you have Python 3.11+ installed and an MCP client ready to connect. You will also use uv to manage and run MCP servers from this guide.

uv pip install -r pyproject.toml

Start the MCP server locally. Run the MCP command to start the server in your environment.

uv run --with mcp[cli] mcp run main.py

Register the server with your MCP client so it can discover and use the tools.

C:\Users\Asus\.local\bin\uv.EXE run --with mcp[cli] mcp run C:\Users\Asus\Desktop\leavemanagementMCP\main.py

Restart your MCP client to load the new server and begin issuing commands.

Available tools

apply_leave

Collects employee_id, days, and a concrete reason, validates inputs, automatically approves the leave, updates balances, and emits a formatted confirmation plus a simulated email notification.

approve_leave

Allows manual override by approving a previously submitted leave request, updating status and balances accordingly.

reject_leave

Allows manual override by rejecting a previously submitted leave request, updating status accordingly.

leave-status

Resource for generating human-friendly summaries of current balances and decision history for employees.