31 MCP tools

31 tools for Claude.Reads, safe writes and reports.

Claude Desktop and Claude Code start the server over stdio. The Docker image serves streamable HTTP at /mcp on port 8792. Every tool works on the same SQLite file.

Built for agents, not forms.

  1. 01

    Typed calls

    Each tool has a schema, so a leave request arrives as a type, two dates and a number of days, not a paragraph.

  2. 02

    Readable refusals

    A broken rule comes back as JSON with the reason, so the agent can fix the call and try again.

  3. 03

    Local by default

    One SQLite file and one Python process on your machine.

The tools

Everything an HR record needs.Nothing that rewrites history.

Directory and leave · 12

People, reporting lines and leave.

Five tools cover the directory and org chart. Seven cover leave: balances, requests, the calendar, decisions, cancellations and entitlements.

  • list_employees, get_employee, get_org_chart, create_employee, update_employment_status
  • get_leave_balance, list_leave_requests, get_leave_calendar
  • request_leave, decide_leave_request, cancel_leave_request, grant_leave_entitlement

Assets, hiring and exits · 12

Custody, the funnel and offboarding.

Four tools issue and take back kit. Four read requisitions and candidates and move them along the funnel. Four start exits and sign off clearance.

  • list_assets, get_employee_assets, assign_asset, return_asset
  • list_requisitions, list_candidates, get_candidate, advance_candidate
  • list_exits, get_exit_checklist, initiate_exit, complete_exit_step

Reports, records and SQL · 7

Reports, the record, and an escape hatch.

Three reports cover headcount, attrition and leave liability. Three tools read documents, holidays and the audit log. run_query answers anything else with a SELECT, on a read-only connection.

  • get_headcount_report, get_attrition_report, get_leave_liability_report
  • list_employee_documents, list_holidays, get_audit_log
  • run_query accepts SELECT only

What the 31 tools cover.

  • Directory · 5

    People, reporting lines to any depth, onboarding and status changes.

  • Leave · 7

    Balances, requests, the team calendar, decisions, cancellations and entitlements.

  • Assets · 4

    The register, what a person holds, issue and return.

  • Hiring · 4

    Requisitions, candidates with their interview rounds, and stage moves.

  • Exits · 4

    Start an exit, read the checklist and sign off each step.

  • Reports and records · 6

    Headcount, attrition, leave liability, documents, holidays and the audit log.

Running in three steps.

  1. Clone and install

    Python 3.11 or later.

    git clone https://github.com/Attri-Inc/openhr.git && cd openhr && python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt
  2. Use the seeded company

    data/openhr.db ships with a demo company. Run python scripts/seed.py to reset it.

    python scripts/seed.py
  3. Connect Claude

    Run this from the openhr folder.

    claude mcp add openhr -s user -- $PWD/.venv/bin/python $PWD/run_mcp.py

Every tool, by group.

Names as registered in the MCP server.

GroupToolsCount
Directorylist_employees, get_employee, get_org_chart, create_employee, update_employment_status5
Leaveget_leave_balance, list_leave_requests, get_leave_calendar, request_leave, decide_leave_request, cancel_leave_request, grant_leave_entitlement7
Assetslist_assets, get_employee_assets, assign_asset, return_asset4
Recruitmentlist_requisitions, list_candidates, get_candidate, advance_candidate4
Exitslist_exits, get_exit_checklist, initiate_exit, complete_exit_step4
Reportsget_headcount_report, get_attrition_report, get_leave_liability_report3
Recordslist_employee_documents, list_holidays, get_audit_log3
Escape hatchrun_query1

Tool names and counts read from src/mcp_server.py in Attri-Inc/openhr on October 5, 2026.

Questions.

Which MCP transports does it support?

stdio, which Claude Desktop and Claude Code use, plus streamable HTTP at /mcp and SSE. The Docker image serves streamable HTTP on 127.0.0.1:8792.

Is there a REST API?

Not yet. A REST version of every MCP tool is planned for v0.2.

Does it work with agents other than Claude?

Any MCP client that can start a stdio server or connect over HTTP can use it.

Does it have authentication?

Not yet. Every caller is trusted, so the HTTP transports bind to localhost by default. A public tunnel exposes every record, including compensation. API keys with roles are planned for v0.2, and Attri adds sign-in and roles in managed deployments.

Does it store documents?

It catalogues them: name, group and size per person. The files themselves live elsewhere.

Let your agents handle the HR admin.Keep the rules on the server.

Run OpenHR on a demo company in minutes, or have Attri deploy it inside your environment with sign-in, roles and approval rules.