MCP Leave Manager Server
Provides local database storage for employee records and leave requests using SQLite.
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., "@MCP Leave Manager ServerCheck leave balance for Anita Patel"
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.
MCP Leave Manager Server
This project demonstrates a Model Context Protocol (MCP) server for employee leave management using SQLite database storage, featuring seamless integration with Claude Desktop for natural language interactions and comprehensive leave tracking.
🚀 Features
Employee Management: Add, view, and search employees with fuzzy name matching
Leave Request System: Submit, approve, and track leave requests (annual, sick, personal, emergency)
Leave Balance Tracking: Monitor annual and sick leave balances with automatic deduction
MCP Integration: Seamless integration with Claude Desktop for natural language interactions
Database Persistence: SQLite database with sample Indian employee data
Type Safety: Full type hints and dataclasses for robust code
Fuzzy Search: Smart employee name matching for typo tolerance
Related MCP server: HR Leave Management MCP Server
📄 How It Works
Database Initialization: Creates SQLite tables and populates with sample data
MCP Resources: Exposes read-only data endpoints for Claude Desktop
MCP Tools: Provides action-based functions for data modification
Natural Language Interface: Claude Desktop translates user prompts to function calls
Data Validation: Ensures data integrity with employee and leave type validation
Automatic Balance Updates: Deducts leave days from employee balances upon approval
🛠️ Usage
Install dependencies:
pip install -r requirements.txt
# If you need to manually install missing packages:
pip install fastmcp mcp typing-extensionsRun the MCP server:
python server.py
# or
python -m mcp_leave_manager_server.serverConfigure Claude Desktop:
Add to your Claude Desktop MCP configuration:
{
"mcpServers": {
"leave-manager": {
"command": "python",
"args": ["/path/to/server.py"]
}
}
}Sample Prompts in Claude Desktop:
- "Show me all employees"
- "Get leave requests for Rajesh Kumar"
- "Submit a leave request for EMP001 from 2024-10-01 to 2024-10-05 for vacation"
- "Approve leave request REQ003"
- "Check leave balance for Anita Patel"
- "Show pending leave requests"
- "Add new employee named Rohit Sharma in Engineering"🛠️ Tech Stack
Python 3.13+ with FastMCP framework
SQLite for data persistence
Model Context Protocol (MCP) for AI integration
Type hints with dataclasses for robust code
difflib for fuzzy name matching
📊 MCP Resources & Tools
Resources (Read-only data):
employees://all- Employee directory with leave balancesemployee://{employee_id}- Individual employee informationleave-requests://all- All leave requests in the systemleave-requests://employee/{employee_id}- Employee-specific requestsleave-requests://status/{status}- Requests by status (pending, approved, denied)
Tools (Actions):
submit_leave_request()- Submit new leave requestapprove_leave_request()- Approve pending requestscheck_leave_balance()- Check employee leave balancesget_pending_approvals()- Get all pending requestsget_database_stats()- Get system statisticsadd_employee()- Add new employees with duplicate checking
📂 Project Structure
mcp_leave_manager_server/
├── server.py # Main MCP server implementation
├── main.py # Entry point
├── requirements.txt # Python dependencies
├── pyproject.toml # Project configuration
├── leave_manager.db # SQLite database (auto-created)
├── README.md # This file
└── __pycache__/ # Python cache files💾 Database Schema
Employees Table
CREATE TABLE employees (
employee_id TEXT PRIMARY KEY,
name TEXT NOT NULL,
department TEXT NOT NULL,
manager TEXT NOT NULL,
annual_leave_balance INTEGER NOT NULL,
sick_leave_balance INTEGER NOT NULL
);Leave Requests Table
CREATE TABLE leave_requests (
request_id TEXT PRIMARY KEY,
employee_id TEXT NOT NULL,
employee_name TEXT NOT NULL,
start_date TEXT NOT NULL,
end_date TEXT NOT NULL,
leave_type TEXT NOT NULL,
status TEXT NOT NULL,
reason TEXT NOT NULL,
days_requested INTEGER NOT NULL,
submitted_date TEXT NOT NULL,
approved_by TEXT,
FOREIGN KEY (employee_id) REFERENCES employees (employee_id)
);🚀 Progress
✅ Environment setup and dependencies configured
✅ SQLite database schema and sample data implemented
✅ MCP resources for data access created
✅ MCP tools for data modification implemented
✅ Employee and leave request management verified
✅ Fuzzy name matching and data validation added
✅ Claude Desktop integration tested
🎯 Use Cases
Perfect for:
HR Teams: Manage employee leave requests efficiently
Managers: Approve/deny requests and track team availability
Employees: Submit leave requests and check balances
AI Integration: Natural language interface for leave management
🔮 Future Enhancements
Email notifications for leave approvals
Calendar integration for leave scheduling
Department-wise leave analytics
Leave policy enforcement rules
REST API endpoints
Web dashboard interface
✍️ Author
Chamundeswari – Software Engineer exploring GenAI, MCP servers, and AI-powered business applications.
Built with ❤️ for seamless AI-powered leave management
This server cannot be deployed
Maintenance
Related MCP Connectors
Track and manage employee time off with quick balance lookups and streamlined applications. Find t…
Personal CRM for Claude. Contacts live as plain-text files in your own Google Drive.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
AI-powered corporate learning platform — manage courses, users, and insights via Claude.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables employees to check leave balance, apply for leave, and view leave history through natural language using Claude Desktop.-
- FlicenseBqualityDmaintenanceEnables managing employee leave requests (apply, view, list leaves) through Claude desktop using natural language.6-
- AlicenseAqualityCmaintenanceManages employee leave with Claude Desktop via natural language. Enables checking balances, applying, approving, and reviewing leave requests through a Supabase-backed MCP server.10MIT
- FlicenseBqualityCmaintenanceEnables HR teams to query and manage employee leave through natural language using Claude Desktop, with tools for checking balances, applying leave, and viewing history.3-