HRMS MCP Server
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., "@HRMS MCP Server add a new employee named John Doe"
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.
HR Management System (MCP Server)
⚠️ Work in progress. This project is still under active development and is not production-ready. The manager functions in
HRMS/are mock implementations that mimic the API calls of Keka HR software, using in-memory sample data instead of real Keka API integration.
An HR assistant exposed as an MCP (Model Context Protocol) server. It lets an MCP-compatible client (e.g. Claude Desktop) manage employees, tickets, leaves, and meetings, and send emails — backed by in-memory data that is seeded with sample employees on startup.
Features
The MCP server (server.py) exposes the following tools and prompt:
Tool | Description |
| Add a new employee to the HRMS. |
| Look up an employee's details by name. |
| Raise a ticket for equipment/items (laptop, ID card, etc.). |
| Update a ticket's status. |
| List tickets for an employee, optionally filtered by status. |
| Send an email via SMTP. |
Prompt | Description |
| Guided workflow to onboard a new hire end-to-end. |
Additional domain logic lives in the HRMS/ package (employee, leave, meeting,
and ticket managers plus Pydantic schemas.py). These managers currently mock
Keka's HR API; sample data is loaded by utils.seed_services on server start.
Related MCP server: OCP AI Custom HR MCP Server
Requirements
Python >= 3.12
uv (recommended) for dependency management
Setup
Clone the repository:
git clone <your-repo-url> cd HR_Management_SystemInstall dependencies:
uv syncConfigure environment variables. Copy the example file and fill in your SMTP credentials:
cp .env.example .envVariable
Description
MS_EMAILSender email address / SMTP login.
MS_EMAIL_PWDSMTP password or app password.
For Gmail, generate an App Password rather than using your account password.
Running
Start the MCP server (uses stdio transport):
uv run server.pyTo use it with an MCP client such as Claude Desktop, add an entry to the client's MCP server configuration pointing at this command, for example:
{
"mcpServers": {
"atliq-hr-assist": {
"command": "uv",
"args": ["run", "server.py"],
"cwd": "/absolute/path/to/HR_Management_System"
}
}
}You can also test the email sender directly:
uv run emails.pyProject structure
.
├── server.py # MCP server entry point (tools & prompts)
├── emails.py # SMTP email sender
├── utils.py # Seeds the managers with sample data
├── main.py # Hello-world placeholder
├── HRMS/ # Core domain package (mocks Keka HR API)
│ ├── employee_manager.py
│ ├── leave_manager.py
│ ├── meeting_manager.py
│ ├── ticket_manager.py
│ └── schemas.py # Pydantic models
├── .env.example # Template for required environment variables
└── pyproject.tomlRoadmap / TODO
Replace the mock
HRMS/managers with real Keka HR API integration.Persist data instead of using in-memory seeded sample data.
Expand MCP tool coverage for leave and meeting management.
Notes
Data is stored in memory and re-seeded on every start; it is not persisted.
Never commit your
.envfile — it contains secrets and is git-ignored.
Available Tools
6 toolsadd_employeeC
Add a new employee to the HRMS system.
:param emp_name: Employee name
:param manager_id : Manager ID (optional)
:return Confirmation messageInputs: emp_name (required), manager_id (required), email (required). Returns: result
create_ticketA
Create a ticket for buying required items for an employee.
:param emp_id: Employee ID
:param item: Item requested (laptop, ID Card, etc.)
:param reason: Reason for the request
:return : Confirmation message
Inputs: emp_id (required), item (required), reason (required). Returns: result
get_employee_detailsA
Get employee details by name.
:param name: Name of the employee
:return Employee ID and manager IDInputs: name (required). Returns: result
list_ticketsC
List tickets for an employee with optional status filter.
:param employee_id : employee_id
:param status : status
: return : List of ticketsInputs: employee_id (required), status (required). Returns: result
send_emailD
Inputs: to_emails (required), subject (required), body (required), html. Returns: result
update_ticket_statusB
Update the status of a ticket.
:param ticket_id: Ticket ID
:param status: New status of the ticket
:return: Confirmation message
Inputs: ticket_id (required), status (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 6 tools
Most tools have clear, distinct purposes (employee CRUD, ticket management). However, 'send_email' lacks a description, making its role ambiguous and potentially overlapping with ticket notifications.
All tools follow a consistent verb_noun pattern in snake_case (e.g., add_employee, create_ticket, list_tickets). No mixing of conventions.
6 tools is a reasonable count for an HRMS server covering employee and ticket management. Not too few or too many.
Missing employee update/delete and ticket detail retrieval. Employee lookup only by name, not ID. Notable gaps in CRUD coverage for both domains.
Related MCP Connectors
MCP server for SmartHR — employees, departments, dependents and employee invitations.
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
MCP server for Talenta — read employee, attendance, leave, payroll and recruitment data.
isolved and ApplicantPro jobs, tenant discovery, and change detection as an MCP server.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server for Cursor that automates HR tasks such as employee onboarding, intranet guidance, time-off and leave requests, and meeting room booking.-
- FlicenseNot gradedqualityDmaintenanceAn MCP server for interacting with an HR database, enabling querying employee data and HR operations via natural language.-
- FlicenseCqualityDmaintenanceMCP server for HR automation that enables employee onboarding workflows through Claude Desktop.12-
- FlicenseCqualityDmaintenanceAn MCP server that automates HR onboarding tasks including employee management, email, ticketing, meeting scheduling, and leave management, enabling AI agents to handle new-hire workflows from a single prompt.121-