How much leave is left?
Exactly what the record says. A request reserves its days the moment it's raised, so pending and approved leave both count.
Open sourceApache 2.0Self-hosted
OpenHR is an open-source HR system of record with an MCP server. Leave can't be overdrawn, every asset has one holder, an exit can't close while kit is out, and every write is audited in the same database transaction.
Explore the demoSample company, no sign-up
The demo app is part of a deployment Attri runs for you. The MCP server and its SQLite database are the open-source repo.
Nobody reviews every request an agent raises. With OpenHR, the records answer these three questions themselves.
Exactly what the record says. A request reserves its days the moment it's raised, so pending and approved leave both count.
The server refuses the request and says why, down to the half day. Nothing is written.
The checklist reads the custody table. Asset clearance can't be signed off while Karan still holds kit.
How it works
Agent requests
OpenHR
Checks every write
Entitled − reserved ≥ 0
request_leave · PH-1203 · 2 days Casual Leave
Read back as
Claude reads them through the same 31 MCP tools it writes with. Read-only SQL covers anything else.
Your agent calls a tool such as request_leave with the person, the dates, whole or half days, and a reason.
The server checks the balance, overlapping requests, who holds the asset and which status moves are legal. If a rule fails, it returns the reason and writes nothing.
The change and its audit row commit in one database transaction. A decided request is never rewritten; a cancellation leaves the original visible.
Compared with an HR suite behind a connector
MCP connectors for hosted HR suites pass your agent's calls to the vendor's API, gated by API-key scopes and approvals. OpenHR puts the rules in the write path itself, in source you can read.
HR suite + MCP connector
Your agent calls the vendor's API
Use cases
Sample: OpenHR Demo Pvt Ltd
Leave raised from chat or email reserves its days when it lands, so an agent can't promise time that isn't there. Approval needs a named approver who isn't the person on leave.
Sample: OpenHR Demo Pvt Ltd
Agents issue and take back kit through the same record HR uses. A second open assignment is refused, and a return closes the row instead of deleting it.
Sample: OpenHR Demo Pvt Ltd
A recruiting agent can screen, schedule and advance candidates. It can't skip a round, and a hire needs an approved requisition with a position still open.
Sample: a Claude Code session
31 MCP tools for reading and writing an HR system of record. The rules live in the server, not in your prompt, and every refusal is a sentence your agent can act on.
Enterprise
Self-hosted
Run OpenHR on your own machine and connect your agents to it today.
Hosted by you
Managed by Attri
The record rules are open source. Attri runs OpenHR inside your infrastructure and builds what your people team needs around it.
In your environment, run by Attri
A request reserves its days when it's raised, so a tracked balance never drops below zero.
A unique index and a service check both refuse a second open assignment.
Asset clearance reads the custody table, not a checkbox, and can't close while kit is out.
Each change and its audit row commit together, so the log can't fall behind.
Open source
Ships with a seeded demo company. Sign-in, roles and approval rules come with an Attri deployment.
Read the README on GitHubOpen source by Attri
HR records your AI can update, and can't bend. Leave can't be overdrawn; every asset has one holder.
Books your agents can write to, and can't break. Every posting balances; corrections are reversals.
Traces every AI session, tool call and dollar to the person behind it.
CRM memory for AI agents where every fact links to the email or transcript behind it.
Run OpenHR on a demo company in minutes, or have Attri deploy it inside your environment with sign-in, roles and approval rules.