Connect Omni HR to Claude: Streamline Expenses and Time-Off Data
from the team behind Truto
Omni HR in Claude, in about a minute.
The best way to connect Omni HR to Claude is Elaichi: connect Omni HR to Elaichi once, then add Elaichi to Claude as a connector. Two steps, about a minute, with a 14‑day free trial and no credit card required.
- No credit card required
- 500+ connectors
- Credentials vaulted, never read back
-
Start your free trial
14 days free, no credit card required.
-
Connect Omni HR
Once, in Elaichi. Claude never gets more access than you have.
-
Add Elaichi to Claude
In Claude, open Customize, then Connectors, press Add and paste the URL. Sign in and approve.
https://api.elaichi.ai/mcp
Building Omni HR into your own product? This guide is for you.
Connect Omni HR to Claude via Truto's managed MCP server to automate HR workflows. Learn how to configure tools, manage security, and execute tasks like expense auditing.
The developer guide
Learn how to connect Omni HR to Claude using a managed MCP server. This step-by-step guide covers setup, security, and real-world HR automation workflows.
If you need to connect Omni HR to Claude to automate time-off approvals, audit department expenses, or manage employee records, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's LLM function calls and Omni HR's REST APIs. You can either build and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL.
If your team uses ChatGPT, check out our guide on connecting Omni HR to ChatGPT or explore our broader architectural overview on connecting Omni HR to AI Agents.
Giving a Large Language Model (LLM) read and write access to a sprawling Human Resources Information System (HRIS) like Omni HR is an engineering challenge. You have to handle OAuth 2.0 or API key token lifecycles, map massive JSON schemas to MCP tool definitions, and deal with Omni HR's domain-specific data constraints. Every time the vendor updates an endpoint or deprecates a V1 resource, you have to update your server code, redeploy, and test the integration.
This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Omni HR, connect it natively to Claude Desktop, and execute complex HR workflows using natural language.
The Engineering Reality of the Omni HR API
A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, the reality of implementing it against specialized B2B APIs is painful. Omni HR is built to manage complex organizational hierarchies, performance cycles, and payroll inputs across multiple geographic regions. Its API reflects that complexity.
If you decide to build a custom Omni HR MCP server, here are the specific integration challenges you will face:
Fragmented V1 vs V1.1 API Payloads
Omni HR is actively transitioning parts of its API surface to newer versions. For instance, employee creation and performance review cycles have parallel endpoints (employees_v1_1 vs employees). An LLM has no context on which API version to use or which payload schema is currently enforced by your specific environment. You must build an abstraction layer that presents a unified, correctly versioned set of operations to Claude, hiding the underlying endpoint fragmentation.
Deeply Nested Dependency Trees for Writes
Writing data to Omni HR is rarely a flat CRUD operation. Creating a new employee record requires an unversioned or v1.1 payload containing base_data, email_info, employment, and job objects. These objects, in turn, require mapping valid external IDs for companies, departments, locations, and schedules. If an LLM attempts to hallucinate a location ID, the request will fail. Your MCP server must expose specific read tools to fetch these dependencies before the LLM can construct a valid write payload.
Binary File Handling in Workflows Certain critical HR workflows in Omni HR, such as downloading attendance timesheets or exporting time-off balance reports, return binary files (like XLSX or CSV) rather than structured JSON. LLMs interacting with standard REST wrappers often crash or hallucinate when confronted with raw binary streams. Your MCP server must translate or wrap these binary responses into a format the agent can interpret, or provide pre-signed download URLs that the agent can hand off to the end-user.
Generating a Secure Omni HR MCP Server
Truto eliminates the need to build a custom backend. It connects to your authenticated Omni HR account and dynamically derives MCP tools directly from the underlying API schemas.
You can generate the Omni HR MCP server in two ways: through the Truto UI or programmatically via the API.
Method 1: Via the Truto UI
For teams doing rapid prototyping or manual setup, the UI is the fastest path.
- Log into your Truto dashboard and navigate to your Integrated Accounts.
- Click on your connected Omni HR account.
- Navigate to the MCP Servers tab.
- Click Create MCP Server.
- Select your desired configuration (e.g., name the server, filter by specific methods like
read, or restrict to specific tags). - Click Generate, and copy the resulting MCP server URL (e.g.,
https://api.truto.one/mcp/abc123xyz...).
Method 2: Via the Truto API
For engineering teams building multi-tenant AI products, you can generate MCP servers programmatically for each of your customers. This provisions a unique, authenticated endpoint scoped exactly to that tenant's Omni HR connection.
Make a POST request to the /integrated-account/:id/mcp endpoint:
curl -X POST https://api.truto.one/integrated-account/<omni_hr_account_id>/mcp \
-H "Authorization: Bearer <YOUR_TRUTO_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "Omni HR Claude Integration",
"config": {
"methods": ["read", "write"],
"require_api_token_auth": false
}
}'The API returns a secure, auto-generated MCP server URL:
{
"id": "mcp_srv_9x8y7z",
"name": "Omni HR Claude Integration",
"config": {
"methods": ["read", "write"]
},
"expires_at": null,
"url": "https://api.truto.one/mcp/a1b2c3d4e5f6g7h8..."
}This single URL contains the cryptographic routing instructions Truto needs to handle tool discovery, schema mapping, and authentication against Omni HR.
Connecting the MCP Server to Claude
Once you have your Truto MCP URL, you need to register it with your Claude client. You can do this through the Claude application UI or by manually editing the configuration file.
Method A: Via the Claude UI
If you are using an Enterprise or Team account that supports UI-based connector configuration:
- Open Claude and navigate to Settings.
- Click on Integrations or Connectors (depending on your plan level).
- Select Add MCP Server or Add custom connector.
- Paste your Truto MCP server URL.
- Click Add or Save.
Claude will immediately ping the endpoint, execute the MCP handshake, and ingest the Omni HR tools.
Method B: Via the Manual Configuration File
For Claude Desktop developers, you can add the server by modifying the local claude_desktop_config.json file. Truto provides an SSE (Server-Sent Events) wrapper that makes remote HTTP endpoints compatible with Claude Desktop's local architecture.
Locate your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Update the configuration using the npx @modelcontextprotocol/server-sse command to bridge the remote Truto URL:
{
"mcpServers": {
"omni_hr_truto": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"https://api.truto.one/mcp/a1b2c3d4e5f6g7h8..."
]
}
}
}Restart Claude Desktop. The agent will initialize the connection and Omni HR tools will be ready to use.
Omni HR Hero Tools for Claude
Truto automatically maps the Omni HR API into granular, LLM-friendly MCP tools. Here are the highest-leverage operations your agent can perform.
1. List Employees
Tool Name: list_all_omni_hr_employees
Description: Lists employees across the organization, supporting advanced filtering by location, position, department, company, team, employment status, and hire-date ranges.
Contextual usage notes: This is the critical baseline tool for any HR workflow. Before an agent can approve time-off or adjust an expense balance, it must run this tool to resolve an employee's human-readable name into their Omni HR user_id or system_id. It natively handles pagination; instruct Claude to pass the next_cursor to fetch subsequent pages.
"Find the Omni HR user ID for John Doe in the Engineering department. Return his current employment status and direct manager."
2. View Employee Time-Off Requests
Tool Name: list_all_omni_hr_time_off_requests
Description: Retrieves a specific employee's time-off requests, including the multi-level approval progress for each request.
Contextual usage notes: This tool requires the user_id parameter. Unlike global endpoints, Omni HR scopes time-off reads directly to the individual employee. The tool normalizes the response so Claude can easily read whether a request is pending, approved, or rejected.
"List all pending time-off requests for Jane Smith this quarter. Tell me who the next approver is in the chain."
3. Create Expense Balance Adjustments
Tool Name: create_a_omni_hr_expense_balance_adjustment
Description: Creates a manual ledger adjustment that increases or decreases an employee's remaining balance under a specific expense policy.
Contextual usage notes: Agents handling expense auditing or stipends will use this to reconcile balances. It requires exact parameters including user_id, user_policy_id, the operation (increase/decrease), and the amount. The agent must first query the expense policy tree to ensure it targets the correct user_policy_id.
"Add a $500 manual adjustment to David's 'Remote Work Setup' expense policy balance to cover his new monitor purchase."
4. Submit Expenses
Tool Name: omni_hr_expenses_submit
Description: Creates a new expense record and immediately submits it for approval, entering it into the configured organizational approval flow.
Contextual usage notes: This is a complex write operation requiring a structured fields payload. Because expense form fields can be highly customized in Omni HR, the agent should first read the specific policy's configuration (get_single_omni_hr_employee_expense_form_config_by_id) to ensure it submits the correct JSON schema.
"Submit an expense for $120 for 'Client Dinner' under my Meals & Entertainment policy. Apply it to the Q3 Marketing budget."
5. Review Employee Work Schedules
Tool Name: list_all_omni_hr_employee_schedules
Description: Lists the current and historical work-schedule assignments for a specific employee.
Contextual usage notes: Essential for workflows dealing with payroll estimation or shift management. By calling this tool, the agent can understand an employee's expected working hours and days, which is necessary before calculating attendance summaries or project allocations.
"Check the current work schedule assignment for Alex Johnson. Is he configured for standard 40-hour weeks or a custom part-time schedule?"
6. Monitor Performance Review Cycles
Tool Name: list_all_omni_hr_review_cycles_v_1_1
Description: Lists the active and past performance review cycles for the organization using the v1.1 endpoint.
Contextual usage notes: Agents acting as HR assistants use this to audit review compliance. The agent can pull the cycle IDs and subsequently query list_all_omni_hr_review_cycle_reviewee_reviews to find out which managers are falling behind on submitting their team feedback.
"Pull the list of active performance review cycles. For the 'Q3 Engineering Review', how many phases are there?"
7. Audit Employee Expense Records
Tool Name: list_all_omni_hr_employee_expense_records
Description: Retrieves a paginated list of an employee's historical expense records within a specified date range.
Contextual usage notes: Requires start_date, end_date, date_range_type, and user_id. Note that Omni HR expects dates explicitly in DD/MM/YYYY format. The MCP server's JSON schema instructs the LLM on this formatting requirement, preventing API rejection errors.
"Audit all expense records for Sarah Connor between 01/01/2026 and 31/03/2026. Summarize the total amount approved versus pending."
To view the complete inventory of available Omni HR tools, supported schemas, and required parameters, visit the Omni HR integration page.
Workflows in Action
By chaining these granular tools together, Claude can execute complex, multi-step operations that would traditionally require an HR admin to navigate through several different screens in the Omni HR dashboard.
Scenario 1: Automated Offboarding Expense and Time-Off Audit
When an employee resigns, HR must quickly calculate their outstanding expense reimbursements and unused time-off balances to prepare their final paycheck.
User Prompt: "Sarah Jenkins is leaving the company next Friday. Please run a final audit on her profile. I need to know her current unapproved time-off requests, her remaining time-off balances, and any pending expense reimbursements we owe her."
sequenceDiagram
participant Claude as Claude
participant Truto as Truto MCP
participant Omni as Omni HR
Claude->>Truto: Call list_all_omni_hr_employees (query: "Sarah Jenkins")
Truto->>Omni: POST /employees/search
Omni-->>Truto: Return user_id (e.g., 889922)
Truto-->>Claude: Return user_id
Claude->>Truto: Call list_all_omni_hr_time_off_requests (user_id: 889922)
Truto->>Omni: GET /time-off/requests
Omni-->>Truto: Return pending requests
Truto-->>Claude: Return pending requests
Claude->>Truto: Call list_all_omni_hr_time_off_balance_overview (user_id: 889922)
Truto->>Omni: GET /time-off/balance
Omni-->>Truto: Return balance totals
Truto-->>Claude: Return balance totals
Claude->>Truto: Call list_all_omni_hr_employee_expense_records (status: pending)
Truto->>Omni: GET /expenses/records
Omni-->>Truto: Return pending expenses
Truto-->>Claude: Return pending expensesWhat happens: Claude first resolves Sarah's name to her internal Omni HR ID. It then queries the time-off API to find unapproved future leave, pulls her final accrued balance, and queries the expense module to sum up any out-of-pocket reimbursements. Claude returns a clean markdown summary ready to be handed off to Payroll.
Scenario 2: Department-Wide Schedule and Review Cycle Alignment
Before launching a new performance cycle, HR leaders often need to ensure that employee reporting lines and schedules are up to date.
User Prompt: "We are kicking off the 2026 Annual Review cycle. Please check the Marketing department. List all employees, verify they have an active manager assigned in their job profile, and confirm they are enrolled in a standard work schedule."
sequenceDiagram
participant Claude as Claude
participant Truto as Truto MCP
participant Omni as Omni HR
Claude->>Truto: Call list_all_omni_hr_departments
Truto->>Omni: GET /departments
Omni-->>Truto: Return Marketing dept_id
Truto-->>Claude: Return Marketing dept_id
Claude->>Truto: Call list_all_omni_hr_employees (dept_id filter)
Truto->>Omni: POST /employees/search
Omni-->>Truto: Return array of Marketing employees
Truto-->>Claude: Return array of Marketing employees
loop For each employee
Claude->>Truto: Call get_single_omni_hr_employee_snapshot_by_id
Truto->>Omni: GET /employee/snapshot
Omni-->>Truto: Return manager info
Truto-->>Claude: Return manager info
Claude->>Truto: Call list_all_omni_hr_employee_schedules
Truto->>Omni: GET /employee/schedules
Omni-->>Truto: Return schedule records
Truto-->>Claude: Return schedule records
endWhat happens: Claude dynamically fetches the internal ID for the "Marketing" department, retrieves all associated employee records, and then iterates through the list. It cross-references their profile snapshots to ensure a manager exists, and checks their schedule assignments. Claude then outputs a report flagging any employee missing a manager or schedule.
Security and Access Control
Connecting an LLM to your HRIS requires strict governance. Truto's managed MCP architecture ensures you have granular control over exactly what Claude can see and do inside Omni HR.
- Method Filtering: When generating the MCP server, you can pass
config.methods = ["read"]to ensure Claude only has access toGETandLISTendpoints. This prevents the LLM from accidentally modifying payroll data or deleting records. - Tag Filtering: You can restrict the server to specific resource tags. For example,
config.tags = ["time-off"]ensures the agent only sees tools related to leave management, completely hiding the expense and payroll modules. - Conditional Authentication: By setting
require_api_token_auth: true, the MCP server URL alone is not enough to execute a tool. The calling client must also pass a valid Truto API token, adding a second layer of enterprise authentication. - Automatic Expiration: You can set an
expires_atISO datetime when generating the server. Once the timestamp is reached, edge storage automatically drops the token and scheduled alarms clean up the database records, instantly revoking the LLM's access.
Handling API Rate Limits & Retries
Omni HR, like any enterprise API, enforces rate limits to protect its infrastructure. When building AI agents, it is critical to understand how these limits are handled.
Truto does not silently absorb, throttle, or automatically retry requests when Omni HR returns an HTTP 429 Rate Limit error. Instead, Truto immediately passes that 429 error back to the MCP caller.
Truto normalizes the upstream rate limit information into standardized IETF headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset). It is the responsibility of the calling agent framework (whether that is Claude, LangChain, or your custom application) to inspect these headers and implement the appropriate exponential backoff and retry logic.
Move Faster with Managed MCP Infrastructure
Building a custom Omni HR integration layer for your AI agents means dealing with unversioned payloads, complex entity mapping, and raw binary file responses.
Truto's documentation-driven MCP architecture handles the heavy lifting, instantly deriving strict, type-safe tools from Omni HR's API schemas. You control exactly what the agent can access through method and tag filtering, without writing a single line of integration code.
FAQ
- What is the easiest way to connect Omni HR to Claude?
- The best way to connect Omni HR to Claude is Elaichi: connect Omni HR to Elaichi once, then add Elaichi to Claude as a connector. Two steps, about a minute, with a 14-day free trial and no credit card required.
- Does Truto store my Omni HR data?
- No. Truto operates on a zero data retention, pass-through architecture. Data flows directly between Omni HR and the calling client.
- How does Truto handle Omni HR API rate limits?
- Truto passes HTTP 429 rate limit errors directly to the caller, normalizing the response with standard IETF headers (ratelimit-limit, ratelimit-reset). The caller is responsible for retries.
- Can I limit Claude to read-only access in Omni HR?
- Yes. When generating the MCP server in Truto, you can set the config methods array to ["read"] to expose only GET and LIST operations.
- How do I update the Omni HR MCP server in Claude?
- Truto dynamically generates tools on every request based on live API schemas. You do not need to update or redeploy the server when Omni HR adds new endpoints.