HR MCP
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., "@HR MCPShow headcount by department"
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 MCP — HR Analytics MCP Server
A small, extensible MCP server that exposes an
HR analytics database (hr_db) to Claude / any MCP client. Ask questions in plain
English; the client reads the schema, writes SQL, and runs it.
This is the base layer — two foundational tools that make every HR question answerable today, plus a structure built for adding more tools tomorrow.
What's in the database
hr_db (MySQL 8.4, AWS RDS) — loaded from excel_files/ by load_data.py:
Table | Grain | Rows |
| one per employee (the hub) | 100 |
| employee × month | 540 |
| employee × month | 540 |
| employee × review period | 100 |
| one exit event per employee | 12 |
All five link to employees.employee_id; employees.reporting_manager_id
self-references for the org chart. Every join/filter/group column is indexed.
Related MCP server: Lexiguard HR
Tools
Tool | Purpose |
| Returns the full schema, join keys, and data pitfalls. Call once. |
| Runs a read-only |
Together these answer anything — headcount, attrition by department, salary trends, attendance vs. performance, org hierarchy, etc.
Setup
pip install -r requirements.txt # or reuse an existing venv that has `mcp`
cp .env.example .env # then fill in DB creds (see below).env:
DB_HOST=<rds-endpoint>
DB_USER=<user>
DB_PASSWORD=<password>
DB_NAME=hr_db
DB_PORT=3306Load / reload the data
python load_data.pyIdempotent — creates hr_db if needed, drops & recreates the 5 tables, and
reloads them from excel_files/.
Run the server
python server.py # stdio — for Claude Desktop
python -m mcp dev server.py # dev inspector — browser testingClaude Desktop config
{
"mcpServers": {
"hr": {
"command": "C:/path/to/python.exe",
"args": ["C:/Users/sathv/Desktop/HR_MCP/server.py"]
}
}
}Project layout
HR_MCP/
├── excel_files/ source spreadsheets (system of record for load_data.py)
├── load_data.py Excel -> hr_db loader (idempotent)
├── config.py loads .env, builds the shared SQLAlchemy engine
├── adapters/
│ └── query.py schema text + run_query() (SELECT-only, serialisation, logging)
├── tools/
│ └── query.py get_db_schema + run_db_query (registered on the server)
├── server.py FastMCP server; registers tool groups
└── requirements.txtAdding a new tool (the "tomorrow" path)
The server is built so new capabilities slot in without touching existing code:
Business logic → add a function in
adapters/(or a new adapter module) that callsadapters.query.run_query(...)orconfig.enginedirectly.Expose it → create
tools/<name>.py:from mcp.server.fastmcp import FastMCP import adapters.mymodule as _adapter def register(mcp: FastMCP) -> None: @mcp.tool() def my_tool(arg: str) -> dict: """One-line description the model reads to decide when to call this.""" return _adapter.do_something(arg)Wire it → in
server.py,from tools import <name>and call<name>.register(mcp).
Ideas for the next layer: get_hr_dashboard (headcount / attrition / payroll
KPIs), generate_excel_report, attrition_risk scoring, a dim_date +
month_date upgrade for faster time-series, and enforced foreign keys.
Making queries faster
Every common filter/join/group column is already indexed (see
load_data.py).Results are capped at 500 rows to keep payloads small.
Add composite indexes for specific hot query shapes as they emerge, e.g.
INDEX (department, month)patterns via a covering table/view.
This server cannot be deployed
Maintenance
Related MCP Connectors
Ask data questions in natural language. Get SQL, insights, and charts from your databases.
Ask business questions in plain English. Get instant answers from your database, no SQL needed.
Ask questions in plain language, get answers from your business database. No SQL required.
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables Claude, Cursor, and other MCP clients to query PeopleForce HRIS data (employees, time-off, recruitment) via 27 read-only tools.284MIT
- FlicenseNot gradedqualityDmaintenanceEnables Cursor AI to query a local MySQL HR database in natural language using read-only SQL tools.-
- FlicenseNot gradedqualityCmaintenanceEnables Claude Desktop to securely query a SQLite HR database, providing tools to check leave balances and list pending approvals through natural language.-
- AlicenseNot gradedqualityBmaintenanceEnables Claude to interact with a SQLite employee database, providing tools for managing employee records, computing statistics, and querying departments through natural language.MIT