Employee Leave Management MCP Server
Connects to a Supabase PostgreSQL database to manage employee leave data, including employees, leave types, balances, and requests, enabling tools for checking balances, applying for leave, approvals, and history.
Click on "Install 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., "@Employee Leave Management MCP ServerHow many annual leave days do I have left?"
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.
Employee Leave Management ā MCP Server
š Check out GenAI and System Design videos
An MCP (Model Context Protocol) server built with FastMCP that connects to a Supabase PostgreSQL database and lets Claude Desktop manage employee leave ā checking balances, applying for leave, approvals, history, and more.
Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Claude Desktop (MCP Host) ā
ā ā
ā "How many leaves does EMP001 have left this year?" ā
ā ā
ā Claude āāāŗ get_leave_balance("EMP001", 2025) ā
ā āāā [{Annual: 13 remaining}, {Sick: 8}, ā¦] ā
ā ā
ā Claude: "Aditya has 13 Annual, 8 Sick, and 5 Casual ā
ā leave days remaining for 2025." ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā stdio (subprocess)
ā¼
āāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāā
ā server.py ā ā Supabase (Postgres) ā
ā FastMCP + tools āāāāāāāāāŗā employees ā
ā ā REST ā leave_types ā
ā ā API ā leave_balances ā
āāāāāāāāāāāāāāāāāāāāāāā ā leave_requests ā
āāāāāāāāāāāāāāāāāāāāāāāāRelated MCP server: leave-management
Exposed Tools
Tool | What it does |
| All leave categories (Annual, Sick, Casual, ā¦) with default allocation |
| Active employees, optional department filter |
| Look up one employee by code or email |
| Remaining / used / total days by employee & year |
| Submit a leave request (validates balance & date overlaps) |
| All requests for an employee, filterable by year/status |
| Full details of a single request by ID |
| Employee withdraws a pending request |
| Manager approves ā auto-deducts days from balance |
| Manager rejects with optional note |
Resources
leave://schemaā full schema overview attachable as context
Prompts
leave_assistantā structured conversation starter for the HR assistant
Quick Start
Step 1 ā Create a Supabase project
Go to https://supabase.com and create a free project.
After the project is ready, go to Project Settings ā API and copy:
Project URL ā
SUPABASE_URLProject API Keys ā
anonpublic key (orservice_rolekey for full access) āSUPABASE_KEY
Step 2 ā Set up the database
In the Supabase Dashboard, open the SQL Editor ā New Query.
Paste the full contents of
setup_database.sqland click Run.
This creates four tables (employees, leave_types, leave_balances, leave_requests) plus a convenience view (leave_balances_view) and seeds 8 employees with realistic 2025 balances.
Step 3 ā Configure environment variables
cd demo_projects/mcp
cp .env.example .env
# Edit .env with your Supabase URL and Key.env contents:
SUPABASE_URL=https://your-project-ref.supabase.co
SUPABASE_KEY=your-anon-or-service-role-keyStep 4 ā Install dependencies
uv syncStep 5 ā Test interactively (without Claude Desktop)
#uv run fastmcp dev server.py
uv run python server.py
# Opens MCP Inspector at http://localhost:6274Connect to Claude Desktop
Locate the config file
OS | Path |
macOS |
|
Windows |
|
Linux |
|
Add the server block
{
"mcpServers": {
"employee-leave": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/project_root",
"run",
"python",
"server.py"
]
}
}
}Important: Use the absolute path in
--directory. You can get it by runningpwdin the project folder.
Note: You may need to provide the full path to the
uvexecutable in thecommandfield. Runwhich uv(macOS/Linux) orwhere uv(Windows) to find it.
Restart Claude Desktop
Quit and reopen Claude Desktop. Click the + ("Add files, connectors, and more") icon in the chat input area, then hover over Connectors ā you should see employee-leave listed there.
Note: Claude for Desktop is not yet available on Linux. Linux users can use the MCP Inspector or build a custom MCP client instead.
Connect to VS Code (GitHub Copilot)
VS Code supports MCP servers natively through GitHub Copilot agent mode. The config format is different from Claude Desktop.
Locate / create the config file
Scope | File |
Workspace (team-shared) |
|
User profile (all workspaces) | Run |
Add the server block
Create or edit .vscode/mcp.json:
{
"servers": {
"employee-leave": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/project_root",
"run",
"python",
"server.py"
]
}
}
}Note: VS Code uses
"servers"(not"mcpServers") and requires the"type": "stdio"field. Use the absolute path in--directory.
Tip: You may need to provide the full path to
uvin"command". Runwhich uvto find it.
Start the server
Open the Command Palette (
Ctrl+Shift+P) and run MCP: List Servers.Select
employee-leaveand choose Start.When prompted, confirm you trust the server.
Open the Chat view (
Ctrl+Alt+I), switch to Agent mode, and theemployee-leavetools will be available.
Verify tools are loaded
In the Chat view, select Configure Tools (or the tools icon) to see all tools provided by the employee-leave server and toggle individual tools on/off.
Troubleshooting
If the server fails to start, run MCP: List Servers ā select the server ā Show Output to view logs.
Example Conversations with Claude
You: How many leaves does Aditya have left for 2025?
Claude: [calls get_employee_info("EMP001"), then get_leave_balance("EMP001", 2025)]
Aditya Sharma (EMP001) has:
⢠Annual leave : 13 days remaining (5 used of 18)
⢠Sick leave : 8 days remaining (2 used of 10)
⢠Casual leave : 5 days remaining (1 used of 6)You: Apply for annual leave for EMP002 from 10th July to 18th July 2025.
Claude: [calls apply_for_leave("EMP002", "Annual", "2025-07-10", "2025-07-18")]
Leave request submitted!
⢠Employee : Priya Nair (EMP002)
⢠Type : Annual
⢠Dates : 10 Jul ā 18 Jul 2025 (7 business days)
⢠Status : Pending
⢠Remaining after approval: 8 Annual daysYou: Approve request ID 3.
Claude: [calls approve_leave_request(3)]
Leave request #3 has been approved. 7 days deducted from Priya's Annual balance.Database Schema
employees -- employee_code, full_name, email, department, position
leave_types -- name, description, default_days
leave_balances -- one row per (employee, leave_type, year)
leave_balances_view -- denormalised view with remaining_days computed
leave_requests -- status: pending | approved | rejected | cancelledProject Files
demo_projects/mcp/
āāā server.py ā FastMCP server (all tools, resources, prompts)
āāā setup_database.sql ā Run once in Supabase SQL Editor
āāā pyproject.toml ā Dependencies (fastmcp, supabase, python-dotenv)
āāā .env.example ā Copy to .env and fill in credentials
āāā README.md ā This fileMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables users to manage employee leave through natural language. It provides tools to check leave balances, apply for leave, and view leave history via Claude integration.3
- Flicense-qualityCmaintenanceEnables employees to check leave balance, apply for leave, and view leave history through natural language using Claude Desktop.
- FlicenseBqualityCmaintenanceEnables managing employee leave requests (apply, view, list leaves) through Claude desktop using natural language.6
- Flicense-qualityDmaintenanceEnables managing employee leave requests, balances, and approvals through natural language with Claude Desktop, using SQLite for persistence and fuzzy name matching.
Related MCP Connectors
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
MCP server for AI job search ā find jobs, track applications, get alerts. Claude, ChatGPT, Cursor.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/adityapatel143/GenAi_Employee_Leave_Management-MCP_Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server