LeaveManager
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LeaveManager Apply for leave for employee E001 on 2025-04-17 and 2025-05-01"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Attendance Management MCP Server
π§ 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 AnalystAvailable Tools
3 toolsapply_leaveC
Apply leave for specific dates (e.g., ["2025-04-17", "2025-05-01"])
Inputs: employee_id (required), leave_dates (required). Returns: result
get_leave_balanceC
Check how many leave days are left for the employee
Inputs: employee_id (required). Returns: result
get_leave_historyC
Get leave history for the employee
Inputs: employee_id (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: apply_leave is for submitting new leave requests, get_leave_balance shows remaining leave days, and get_leave_history retrieves past leave records. There is no overlap in functionality, making tool selection straightforward for an agent.
All tools follow a consistent verb_noun naming pattern (apply_leave, get_leave_balance, get_leave_history) with clear, descriptive names. The pattern is uniform throughout, enhancing readability and predictability.
With only 3 tools, the server feels thin for a leave management domain, as it lacks operations like updating or canceling leave requests, viewing team leave calendars, or approving/rejecting leave. While the tools cover basic needs, the scope is borderline minimal.
The tool set has significant gaps for a leave management system. It includes apply, balance, and history but misses critical operations such as update_leave, delete_leave, list_pending_requests, or approve_leave. This incomplete coverage will likely cause agent failures in real-world workflows.
Maintenance
Related MCP Connectors
CharlieHR MCP server for ChatGPT, Claude and any AI agent: list team members, list time off requests, approve time off request, deny time off request, book time off, record sick day, adjust time off allowance and cancel time off booking in your own CharlieHR account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to CharlieHR yourself; Cotlet does not store your password and you need no CharlieHR API key. About the official CharlieHR API: CharlieHR has an API, but a narrow one, and no official MCP server (checked 20 Oct 2026). A Super Admin creates a Client ID and Client Secret under Company > Integrations > API Access; the API covers team members, leave, offices and teams. Setup and FAQ: https://cotlet.dev/integrations/charliehr-api-mcp-server
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
Related MCP Servers
- AlicenseDqualityDmaintenanceA Model Context Protocol server that enables Claude Desktop to access structured employee data and perform HR operations including employee lookups, searches, and global leave requests.31MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables querying attendance information and managing employee leave requests, overtime requests, and schedules.-
- AlicenseAqualityDmaintenanceManages employee leave with Claude Desktop via natural language. Enables checking balances, applying, approving, and reviewing leave requests through a Supabase-backed MCP server.10MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables Claude to interact with a Lucca instance to list employees, departments, and view absences in natural language.3MIT