atliq-hrms-assist
# š¢ Atliq HRMS Assist ā MCP Server
An AI-powered **Human Resource Management System (HRMS)** built as a **Model Context Protocol (MCP) server**. It connects directly to Claude Desktop, allowing you to manage employees, leaves, meetings, tickets, and emails using natural language.
---
## š Table of Contents
- [Overview](#overview)
- [Features](#features)
- [Project Structure](#project-structure)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Configuration](#configuration)
- [Running the MCP Server](#running-the-mcp-server)
- [Connecting to Claude Desktop](#connecting-to-claude-desktop)
- [Available Tools](#available-tools)
- [Available Prompts](#available-prompts)
- [Usage Examples](#usage-examples)
---
## š Overview
Atliq HRMS Assist is an MCP server that exposes HR management capabilities as tools and prompts for AI assistants. Built with [FastMCP](https://github.com/jlowin/fastmcp) and [Pydantic](https://docs.pydantic.dev/), it enables Claude to perform real HR operations ā from onboarding employees to scheduling meetings ā all through natural language.
---
## ⨠Features
| Category | Capability |
|---|---|
| š¤ **Employee Management** | Add employees, search by name, get details |
| š“ **Leave Management** | Check balances, apply leaves, view history |
| š
**Meeting Scheduler** | Schedule, view, and cancel meetings |
| š« **Ticket System** | Create and update equipment/IT request tickets |
| š§ **Email Notifications** | Send welcome emails, meeting invites, leave confirmations |
| š¤ **AI Prompts** | Pre-built prompts for onboarding, leave, and meeting workflows |
---
## š Project Structure
```
atliq-hrms-assist/
āāā HRMS/
ā āāā __init__.py # Exports all managers and schemas
ā āāā employee_manager.py # Employee CRUD and search
ā āāā leave_manager.py # Leave balance and application
ā āāā meeting_manager.py # Meeting scheduling and cancellation
ā āāā ticket_manager.py # Equipment/IT ticket management
ā āāā schemas.py # Pydantic data models
āāā src/
ā āāā atliq_hrms_assist/
ā āāā __init__.py
āāā email_sender.py # SMTP email utility
āāā server.py # MCP server ā tools & prompts
āāā utils.py # Seed data for demo employees
āāā pyproject.toml # Project dependencies
āāā .env # Environment variables (not committed)
```
---
## ā
Prerequisites
- Python **3.12+**
- [uv](https://docs.astral.sh/uv/) package manager
- [Claude Desktop](https://claude.ai/download) (for MCP integration)
- A **Gmail account** with an [App Password](https://myaccount.google.com/apppasswords) (for email sending)
---
## āļø Installation
### 1. Clone the repository
```bash
git clone https://github.com/Ayush-og/atliq-hrms-assist.git
cd atliq-hrms-assist
```
### 2. Install dependencies using `uv`
```bash
uv sync
```
Or install manually:
```bash
uv add "mcp[cli]<2.0.0" pydantic python-dotenv
```
---
## š Configuration
Create a `.env` file in the project root:
```env
CB_EMAIL=your_gmail_address@gmail.com
CB_EMAIL_PWD=your_gmail_app_password
```
> **Note:** Use a [Gmail App Password](https://myaccount.google.com/apppasswords), not your regular Gmail password. Enable 2FA on your account first.
---
## š Running the MCP Server
Test that the server runs without errors:
```bash
uv run python server.py
```
---
## š Connecting to Claude Desktop
1. Open **Claude Desktop** ā Settings ā **Developer** ā **Edit Config**.
2. Add the following to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"atliq-hr-assist": {
"command": "C:\\Users\\<your-username>\\.local\\bin\\uv.exe",
"args": [
"--directory",
"C:\\path\\to\\atliq-hrms-assist",
"run",
"python",
"server.py"
]
}
}
}
```
3. **Save** and **restart Claude Desktop**.
4. The `atliq-hr-assist` connector will appear as š¢ **Connected**.
---
## š ļø Available Tools
### š¤ Employee Tools
| Tool | Description | Parameters |
|---|---|---|
| `add_employee` | Add a new employee | `emp_name`, `manager_id`, `email` |
| `get_employee_details` | Get employee details by name | `name` |
### š“ Leave Manager Tools
| Tool | Description | Parameters |
|---|---|---|
| `get_leave_balance` | Check remaining leave days | `employee_id` |
| `apply_leave` | Apply for leave on specific dates | `employee_id`, `leave_dates` |
| `get_leave_history` | View past leave records | `employee_id` |
### š
Meeting Scheduler Tools
| Tool | Description | Parameters |
|---|---|---|
| `schedule_meeting` | Schedule a meeting | `emp_id`, `meeting_dt`, `topic` |
| `get_meetings` | View all scheduled meetings | `employee_id` |
| `cancel_meeting` | Cancel an existing meeting | `emp_id`, `meeting_dt`, `topic` |
### š« Ticket Tools
| Tool | Description | Parameters |
|---|---|---|
| `create_ticket` | Raise an equipment/IT request | `emp_id`, `item`, `reason` |
| `update_ticket_status` | Update ticket status | `ticket_id`, `status` |
### š§ Email Tool
| Tool | Description | Parameters |
|---|---|---|
| `send_email` | Send email to one or more recipients | `subject`, `body`, `to_emails` |
---
## š¤ Available Prompts
These are pre-built multi-step workflows you can invoke from Claude Desktop via **"Add from atliq-hr-assist"**.
### 1. `onboard_new_employee`
Onboards a new employee end-to-end.
| Input | Description |
|---|---|
| `employee_name` | Full name of the new employee |
| `manager_name` | Full name of the reporting manager |
**Steps performed automatically:**
- Adds employee to HRMS
- Sends welcome email with login credentials
- Notifies the manager
- Raises equipment tickets (laptop, ID card, etc.)
---
### 2. `apply_leave_request`
Processes a leave application for an employee.
| Input | Description |
|---|---|
| `employee_name` | Full name of the employee |
| `leave_dates` | Dates for leave (e.g. `"2026-08-22, 2026-08-23"`) |
**Steps performed automatically:**
- Looks up employee ID
- Checks leave balance
- Applies leave if balance is sufficient
- Sends confirmation email
---
### 3. `schedule_meeting_request`
Schedules a meeting and sends invites.
| Input | Description |
|---|---|
| `employee_name` | Employee's full name |
| `manager_name` | Manager's full name |
| `meeting_date` | ISO datetime (e.g. `"2026-08-20T10:00:00"`) |
| `topic` | Meeting subject |
**Steps performed automatically:**
- Looks up both employee and manager IDs
- Schedules the meeting
- Sends invitation email to both parties
---
## š” Usage Examples
Ask Claude in natural language:
```
"Onboard Peter Pandey with Tony Sharma as his manager."
```
```
"Apply leave for Tony Sharma on August 22 and 23, 2026."
```
```
"Schedule a 1:1 meeting between Peter Pandey and Tony Sharma on August 20 at 10 AM."
```
```
"Check leave balance for employee E004."
```
```
"Create a ticket for Peter Pandey to get a new laptop."
```
---
## š§āš» Author
**Ayush** ā [@Ayush-og](https://github.com/Ayush-og)
---
## š License
This project is open source and available under the [MIT License](LICENSE).
TDQS
Scored across 11 tools
Each tool targets a distinct resource (employee, leave, meeting, ticket, email) with a clear action. There is no overlap in functionality, even though employee identifiers vary between tools.
All tool names follow a consistent verb_noun snake_case pattern (add_, get_, apply_, schedule_, cancel_, create_, update_, send_). This uniformity makes the API predictable.
At 11 tools, the server covers multiple HR subdomains without unnecessary bloat. The count is well within the ideal range for a focused assistant.
The server covers core workflows for employees, leave, meetings, tickets, and email. However, employee update/delete and leave cancellation are missing, creating notable lifecycle gaps. Ticket viewing is also absent, though the creation and status update flow works.