Leave Management MCP Server
An AI-powered Leave Management System built using the Model Context Protocol (MCP).
This project demonstrates how a Large Language Model (LLM) can discover and invoke MCP tools to perform business operations such as checking leave balances, applying for leave, and retrieving leave history through natural language.
Features
- Built using the FastMCP framework
- Streamlit-based AI client
- Gemini API for intelligent tool selection
- SQLite database for persistent data storage
- Dynamic MCP tool discovery using
list_tools() - Natural language interface
Project Structure
.
├── app.py # Streamlit AI Client
├── main.py # MCP Server
├── llm.py # Gemini Integration
├── database.py # SQLite Helper Functions
├── init_db.py # Database Initialization
├── pyproject.toml
├── uv.lock
├── .python-version
├── .env.example
├── README.md
└── .gitignore
Available MCP Tools
get_leave_balanceapply_leaveget_leave_history
Tech Stack
- Python
- Model Context Protocol (MCP)
- FastMCP
- Streamlit
- Gemini API
- SQLite
- uv
Installation
1. Clone the repository
git clone https://github.com/ratankumarthakur/leave-management-mcp
cd leave-management-mcp
2. Install dependencies
uv sync
3. Configure the environment
Create a .env file in the project root.
GEMINI_API_KEY=YOUR_API_KEY
4. Initialize the database
python init_db.py
5. Run the application
streamlit run app.py
Example Queries
Try asking:
- Show leave balance for E001
- Apply leave for E002 on 2026-08-10
- Show leave history for E001
- Apply leave for E001 on 15 September 2026
Architecture
User
│
▼
Streamlit Client
│
▼
Gemini LLM
│
▼
MCP Client
│
▼
MCP Server
│
▼
SQLite Database
How It Works
- The user enters a natural language query.
- The Gemini model selects the appropriate MCP tool.
- The Streamlit client invokes the selected MCP tool.
- The MCP server executes the requested operation.
- Data is read from or written to the SQLite database.
- The result is returned to the client and displayed to the user.
Learning Objective
This project was built to understand the fundamentals of the Model Context Protocol (MCP), including:
- Building an MCP server
- Creating an MCP client
- Dynamic tool discovery
- LLM-driven tool invocation
- Database-backed tool execution
- Developing an AI-powered application using Streamlit