Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
Jet HR MCP by usefulapi is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Read Jet HR employees, absences, clockings, payroll; create, approve, delete leave; create expenses.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http jet-hr-mcp-by-usefulapi https://jet-hr.usefulapi.io/mcp
# 2 — ask your agent for something these tools do
# jethr_list_employees, jethr_get_employee, jethr_list_employee_overviews and 30 more
Jet HR MCP by usefulapi costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http jet-hr-mcp-by-usefulapi https://jet-hr.usefulapi.io/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
33 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
List the company's employees with the full record: name, fiscal code, work and personal email, job title and level, contract kind and dates, annual gross salary (RAL), manager, headquarters and custom fields. Contains personal data; for a lighter list use jethr_list_employee_overviews. Paged: pass next_page as page. GET /public-api/v1/employees/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| as_of_date | string | no | Resolve the employee's data as of this date (yyyy-mm-dd) instead of today. |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
One employee's full record (contract, salary, manager, headquarters, custom fields). GET /public-api/v1/employees/{uuid}/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Employee uuid (from jethr_list_employees). |
| as_of_date | string | no | Resolve the employee's data as of this date (yyyy-mm-dd) instead of today. |
List employees with the lighter overview record: name, fiscal code, work email, job title, contract dates, probation end, manager, headquarters and custom fields (no salary or personal contact data). Needs only the employee_overview:read scope. Paged: pass next_page as page. GET /public-api/v1/employee-overviews/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
One employee's overview record (job title, contract dates, manager, headquarters, custom fields). GET /public-api/v1/employee-overviews/{uuid}/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Employee uuid (from jethr_list_employee_overviews). |
List employee terminations (resignations and dismissals recorded in Jet HR). Paged: pass next_page as page. GET /public-api/v1/terminations/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List hiring processes (drafts and onboarding in progress), optionally by status (for example INCOMPLETE or COMPLETED). Paged: pass next_page as page. GET /public-api/v1/hirings/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Only hirings in this status. |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
One hiring process with its status and data. GET /public-api/v1/hirings/{uuid}/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Hiring uuid (from jethr_list_hirings). |
List external contractors (collaborators) and their collaborations, optionally filtered by contractor, linked employee or a collaboration date window. Paged: pass next_page as page. GET /public-api/v1/contractors/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| contractor_uuid | string | no | Only this contractor. |
| employee_uuid | string | no | Only contractors linked to this employee. |
| collaboration_date_from | string | no | Only collaborations overlapping this date or later (yyyy-mm-dd). |
| collaboration_date_to | string | no | Only collaborations overlapping this date or earlier (yyyy-mm-dd). |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
One contractor with their collaborations. GET /public-api/v1/contractors/{uuid}/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Contractor uuid (from jethr_list_contractors). |
List leave, sickness, remote-work and other presence/absence requests with status (APPROVED, REJECTED, PENDING), kind, dates, hours, note and approver. Filters combine with AND. Use status filtering on the result for pending requests. Paged: pass next_page as page. GET /public-api/v1/presence-absence-requests/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| employee | string | no | Only this employee (uuid from jethr_list_employees). |
| codename | string | no | Request kind codename, e.g. HOLIDAY or SICKNESS (see jethr_list_absence_policies). |
| start_date_from | string | no | Only requests starting on or after this date (yyyy-mm-dd). |
| start_date_to | string | no | Only requests starting on or before this date (yyyy-mm-dd). |
| end_date_from | string | no | Only requests ending on or after this date (yyyy-mm-dd). |
| end_date_to | string | no | Only requests ending on or before this date (yyyy-mm-dd). |
| created_from | string | no | Only requests created at or after this timestamp. |
| created_to | string | no | Only requests created at or before this timestamp. |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List the company's absence policies with their active request kinds (codename, name, approval and attachment rules) and the employees assigned to each. The codename is what jethr_create_absence_request needs. Paged: pass next_page as page. GET /public-api/v1/company-absence-policies/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
One absence request kind setting: codename, whether it needs approval or a note, whether it can be requested in hours or days, duration limits. GET /public-api/v1/company-absence-request-kinds/{uuid}/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Request kind uuid (from jethr_list_absence_policies, absence_kinds_settings). |
List time-clock events (in, out, work and break start/end, overtime) with employee, timestamp, method (web, mobile, badge, QR code), workplace and location. Paged: pass next_page as page. GET /public-api/v1/clockings/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| employee | string | no | Only this employee (uuid from jethr_list_employees). |
| kind | string | no | Only this clocking kind. |
| method | string | no | Only this clocking method. |
| clocked_from | string | no | Only clockings at or after this timestamp. |
| clocked_to | string | no | Only clockings at or before this timestamp. |
| created_from | string | no | Only clockings created at or after this timestamp. |
| created_to | string | no | Only clockings created at or before this timestamp. |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List the company's monthly payrolls (year and month, status and totals). Sensitive financial data. Paged: pass next_page as page. GET /public-api/v1/payrolls/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| year | integer | no | Payslip year, e.g. 2026. |
| monthly_pay | integer | no | Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them). |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List employee payslips, optionally for one employee, year or month. Sensitive payroll data. Paged: pass next_page as page. GET /public-api/v1/payslips/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| employee | string | no | Only this employee (uuid from jethr_list_employees). |
| year | integer | no | Payslip year, e.g. 2026. |
| monthly_pay | integer | no | Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them). |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List payroll bonuses (employee, payroll month, amount, kind, note), optionally for one employee, year or month. Paged: pass next_page as page. GET /public-api/v1/bonuses/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| employee | string | no | Only this employee (uuid from jethr_list_employees). |
| year | integer | no | Payslip year, e.g. 2026. |
| monthly_pay | integer | no | Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them). |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List the bonus kinds (categories) the company can use in payroll. Paged: pass next_page as page. GET /public-api/v1/bonus-kinds/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List fringe benefits assigned in payroll (employee, payroll month, amount, kind), optionally for one employee, year or month. Paged: pass next_page as page. GET /public-api/v1/fringe-benefits/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| employee | string | no | Only this employee (uuid from jethr_list_employees). |
| year | integer | no | Payslip year, e.g. 2026. |
| monthly_pay | integer | no | Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them). |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List the fringe benefit kinds (categories) available in payroll. Paged: pass next_page as page. GET /public-api/v1/fringe-benefit-kinds/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List extra deductions applied to payslips (employee, payroll month, amount, kind), optionally for one employee, year or month. Paged: pass next_page as page. GET /public-api/v1/payslip-extra-deductions/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| employee | string | no | Only this employee (uuid from jethr_list_employees). |
| year | integer | no | Payslip year, e.g. 2026. |
| monthly_pay | integer | no | Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them). |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List the extra deduction kinds (categories) available on payslips. Paged: pass next_page as page. GET /public-api/v1/payslip-extra-deduction-kinds/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List documents stored in Jet HR (payslips, contracts and other files): metadata per document, optionally by employee, kind name, payroll period or last-update window. Paged: pass next_page as page. GET /public-api/v1/documents/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| employee | string | no | Only this employee (uuid from jethr_list_employees). |
| kind_name | string | no | Only documents of this kind name. |
| period | string | no | Only documents of the payroll of this month (YYYY-MM). |
| updated_after | string | no | Only documents updated at or after this timestamp. |
| updated_before | string | no | Only documents updated at or before this timestamp. |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List expense reimbursement requests (employee, amount, currency, kind, description, payment date, receipts, status). Paged: pass next_page as page. GET /public-api/v1/expenses/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List the company's expense policies (which expense kinds and limits apply to which employees). Paged: pass next_page as page. GET /public-api/v1/company-expense-policies/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List company devices (laptops, phones...) and the employee each is assigned to, optionally by employee or device uuid. Paged: pass next_page as page. GET /public-api/v1/devices/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| employee | string | no | Only this employee (uuid from jethr_list_employees). |
| uuid | string | no | Only this device uuid. |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
One company device with its assignment. GET /public-api/v1/devices/{uuid}/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Device uuid (from jethr_list_devices). |
List the company's headquarters (legal and operative sites), optionally by kind. Paged: pass next_page as page. GET /public-api/v1/company-headquarters/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | no | Only legal or only operative headquarters. |
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List the national collective labour agreements (CCNL) the company applies. Paged: pass next_page as page. GET /public-api/v1/company-ccnl/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
List the company's business-trip daily refund policies (needed as trip_name for trip absence requests). Paged: pass next_page as page. GET /public-api/v1/company-trip-daily-refund-policies/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number, 1-based (default 1). Use next_page from the previous reply. |
Create a leave, sickness, remote-work or other presence/absence request for an employee. WRITES to the company's HR records. codename is the request kind (from jethr_list_absence_policies); give start_date and end_date for day requests, or start_date + start_time + time_duration for hourly requests. send_notification=true makes Jet HR notify the people involved (approvers/employee) and needs confi
| Parameter | Type | Required | Notes |
|---|---|---|---|
| employee | string | yes | Employee uuid (from jethr_list_employees). |
| codename | string | yes | Request kind codename (from jethr_list_absence_policies), e.g. HOLIDAY. |
| start_date | string | no | First day (yyyy-mm-dd). |
| end_date | string | no | Last day (yyyy-mm-dd); omit for a single day. |
| start_time | string | no | Start time HH:MM, hourly requests only. |
| time_duration | string | no | Duration HH:MM, hourly requests only. |
| note | string | no | Note on the request. |
| send_notification | boolean | no | Notify the people involved (default false); needs confirm_notification=true. |
| confirm_notification | boolean | no | Must be true when send_notification is true: the user approved that Jet HR notifies the people involved. |
| sickness_justification_type | string | no | Sickness only: PUC protocol number or paper certificate. |
| puc | string | no | Sickness only: the PUC protocol number. |
| assisted_ssn | string | no | Fiscal code of the assisted person (kinds that need it, e.g. Law 104 leave). |
| donor_transfusion_center_ssn | string | no | Donor leave only: fiscal code of the transfusion center. |
| child_ssn | string | no | Child fiscal code (required for FEEDING, SICKNESS_CHILD_CHILD, SICKNESS_CHILD_INFANT). |
| child_birth_date | string | no | Child birth date (required for PARENTAL_PATERNAL_MANDATORY_LEAVE). |
| trip_name | string | no | Trip policy name (required for TRIP_* kinds; see jethr_list_trip_refund_policies). |
| trip_meals_reimbursed | boolean | no | TRIP_* kinds: meals are reimbursed. |
| trip_accommodation_reimbursed | boolean | no | TRIP_* kinds: accommodation is reimbursed. |
Change a presence/absence request: dates, hours, note, or its status (APPROVED, REJECTED, PENDING; give rejection_reason when rejecting). WRITES to the company's HR records; approving or rejecting is visible to the employee, and send_notification=true notifies the people involved (default false; needs confirm_notification=true). Only the fields you pass change. PATCH /public-api/v1/presence-absenc
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Request uuid (from jethr_list_absence_requests). |
| status | string | no | New status. |
| rejection_reason | string | no | Reason shown to the employee when status is REJECTED. |
| start_date | string/null | no | New first day (yyyy-mm-dd); null clears it. |
| end_date | string/null | no | New last day (yyyy-mm-dd); null clears it. |
| start_time | no | New start time HH:MM, hourly requests only; null clears it. | |
| time_duration | no | New duration HH:MM, hourly requests only; null clears it. | |
| note | string | no | New note. |
| puc | string | no | Sickness only: the PUC protocol number. |
| assisted_ssn | string | no | Fiscal code of the assisted person (kinds that need it, e.g. Law 104 leave). |
| donor_transfusion_center_ssn | string | no | Donor leave only: fiscal code of the transfusion center. |
| send_notification | boolean | no | Notify the people involved (default false); needs confirm_notification=true. |
| confirm_notification | boolean | no | Must be true when send_notification is true: the user approved that Jet HR notifies the people involved. |
Permanently delete a presence/absence request (it disappears from the employee's calendar and balance). Cannot be undone; needs confirm=true. DELETE /public-api/v1/presence-absence-requests/{uuid}/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Request uuid (from jethr_list_absence_requests). |
| confirm | boolean | yes | Must be true: the user approved permanently deleting this request. |
Create an expense reimbursement request for an employee (no receipt files; those are uploaded in Jet HR). WRITES to the company's records as a reimbursement request. amount is the EUR amount; amount_total is the amount in amount_total_currency (the same value for EUR). POST /public-api/v1/expenses/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| employee | string | yes | Employee uuid (from jethr_list_employees). |
| kind | string | yes | Expense kind: FOOD, TRAVELS, KM, TELECOM, HOTELS, DEVICES, SERVICES, OTHER, CUSTOM. |
| description | string | yes | What the expense was for. |
| amount | string | yes | Amount in EUR, e.g. 49.90. |
| amount_total | string | yes | Amount in amount_total_currency (equal to amount for EUR). |
| amount_total_currency | string | no | Currency of amount_total (default EUR). |
| payment_date | string | yes | Date the employee paid (yyyy-mm-dd). |
| subkind | string | no | Sub-kind of the expense, if the policy has one. |
| note | string | no | Note. |
| is_billed_to_company | boolean | no | The expense was billed to the company. |
| car_brand | string | no | Mileage (KM) only: vehicle make. |
| car_model_series | string | no | Mileage (KM) only: vehicle model and series. |
| car_cost_km | string | no | Mileage (KM) only: cost per km in EUR, e.g. 0.4521. |
| car_km | integer | no | Mileage (KM) only: kilometres driven. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Jet HR MCP by usefulapi or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| jethr_list_employees | no tags | |
| jethr_get_employee | no tags | |
| jethr_list_employee_overviews | no tags | |
| jethr_get_employee_overview | no tags | |
| jethr_list_terminations | no tags | |
| jethr_list_hirings | no tags | |
| jethr_get_hiring | no tags | |
| jethr_list_contractors | no tags | |
| jethr_get_contractor | no tags | |
| jethr_list_absence_requests | no tags | |
| jethr_list_absence_policies | no tags | |
| jethr_get_absence_request_kind | no tags | |
| jethr_list_clockings | no tags | |
| jethr_list_payrolls | no tags | |
| jethr_list_payslips | no tags | |
| jethr_list_bonuses | no tags | |
| jethr_list_bonus_kinds | no tags | |
| jethr_list_fringe_benefits | no tags | |
| jethr_list_fringe_benefit_kinds | no tags | |
| jethr_list_payslip_extra_deductions | no tags | |
| jethr_list_payslip_extra_deduction_kinds | no tags | |
| jethr_list_documents | no tags | |
| jethr_list_expenses | no tags | |
| jethr_list_expense_policies | no tags | |
| jethr_list_devices | no tags | |
| jethr_get_device | no tags | |
| jethr_list_company_headquarters | no tags | |
| jethr_list_company_ccnl | no tags | |
| jethr_list_trip_refund_policies | no tags | |
| jethr_create_absence_request | external-sinkstate-write | external-sink: keyword "send_notification"; state-write: declares readOnlyHint: false |
| jethr_update_absence_request | external-sinkstate-write | external-sink: keyword "send_notification"; state-write: declares destructiveHint: true |
| jethr_delete_absence_request | state-write | state-write: declares destructiveHint: true |
| jethr_create_expense | state-write | state-write: declares readOnlyHint: false |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.14.3.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Jet HR MCP by usefulapi can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.