Breathe HR MCP by usefulapi
Read Breathe HR employees, absences, sickness and leave; create and review leave requests.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (5)
- LOWen breathehr_list_working_patterns
- LOWen breathehr_list_holiday_allowances
- LOWen breathehr_list_other_leave_reasons
- LOWen breathehr_list_training_courses
- LOWen breathehr_approve_leave_request
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"breathe-hr": {
"url": "https://breathe-hr.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://breathe-hr.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (25)
🟢breathehr_get_account
The Breathe HR account (company) this API key belongs to: id, name, domain and enabled modules. GET /account.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_departments(page, per_page)
List the company's departments (id, name). Use the ids to filter absences, leave, sickness and pay. GET /departments.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_divisions
List the company's divisions (id, name). All of them are returned in one reply. GET /divisions.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_locations
List the company's work locations (id, name). All of them are returned in one reply. GET /locations.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_working_patterns
List the working patterns (hours per weekday, total weekly hours, default flag). All of them are returned in one reply. GET /working_patterns.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_holiday_allowances
List the holiday allowance schemes (id, default flag, year_1 to year_10 = the allowance for each year of service, created_at, updated_at). All of them are returned in one reply. GET /holiday_allowances.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_other_leave_reasons
List the reasons for non-holiday leave (e.g. compassionate, jury service). Use the ids to filter absences. All of them are returned in one reply. GET /other_leave_reasons.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_employees(filter, page, per_page)
List employees with job title, department, division, location, line manager, holiday approver, working pattern, join/leaving dates and status. Bank details and National Insurance numbers are never returned. GET /employees.
Esquema de entrada
{
"type": "object",
"properties": {
"filter": {
"description": "Only employees with this role: hr (HR managers), line_manager, either, or neither.",
"type": "string",
"enum": [
"hr",
"line_manager",
"either",
"neither"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_get_employee(employee_id)
One employee's record by id (personal and job details, contacts, manager, working pattern). Bank details and NI number are never returned. GET /employees/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Breathe employee id."
}
},
"required": [
"employee_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_get_holiday_years(employee_id, for_date)
An employee's holiday years: start/end, allowance, days or hours taken, booked and remaining. Pass for_date to get only the year that contains that date. GET /employees/{id}/employee_holiday_years.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Breathe employee id."
},
"for_date": {
"description": "Only the holiday year that includes this date (yyyy-mm-dd), e.g. today.",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
}
},
"required": [
"employee_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_absences(employee_id, department_id, type, other_leave_reason_id, start_date, ...)
List approved absences (holiday and other leave) with employee, dates, half days, days deducted and cancelled flag. Filter by employee, department, type, other-leave reason and dates. GET /absences.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's absences.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"department_id": {
"description": "Only absences of employees in this department.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"type": {
"description": "Holiday or OtherLeave.",
"type": "string",
"enum": [
"Holiday",
"OtherLeave"
]
},
"other_leave_reason_id": {
"description": "Only other leave with this reason (ids from breathehr_list_other_leave_reasons).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"start_date": {
"description": "Only absences on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"end_date": {
"description": "Only absences up to this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"exclude_cancelled": {
"description": "Leave out cancelled absences.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_leave_requests(employee_id, department_id, start_date, end_date, exclude_cancelled, ...)
List leave requests (pending, approved, rejected and cancelling requests) with employee, dates, half days, type, status and notes. Filter by employee, department and start-date range. GET /leave_requests.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's requests.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"department_id": {
"description": "Only requests of employees in this department.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"start_date": {
"description": "Only requests starting on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"end_date": {
"description": "Only requests starting on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"exclude_cancelled": {
"description": "Leave out cancelled requests.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_get_leave_request(leave_request_id)
One leave request by id, with its status. GET /leave_requests/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"leave_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Breathe leave request id."
}
},
"required": [
"leave_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_sicknesses(employee_id, department_id, start_date, end_date, page, ...)
List sickness absence records (health data): employee, sickness type, dates, half days, days deducted, status (open, returned, closed…) and reason. Filter by employee, department and start-date range. GET /sicknesses.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's sickness.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"department_id": {
"description": "Only sickness of employees in this department.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"start_date": {
"description": "Only sickness starting on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"end_date": {
"description": "Only sickness starting on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_salaries(employee_id, department_id, page, per_page)
List salary records (amount, basis, payment schedule, start date) for the whole company, one employee or one department. GET /salaries, /employees/{id}/salaries or /departments/{id}/salaries.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's records.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"department_id": {
"description": "Only records of employees in this department.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_bonuses(employee_id, department_id, page, per_page)
List bonus records (amount, date, description) for the whole company, one employee or one department. GET /bonuses, /employees/{id}/bonuses or /departments/{id}/bonuses.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's records.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"department_id": {
"description": "Only records of employees in this department.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_benefits(employee_id, department_id, page, per_page)
List employee benefits (type, value, start/end) for the whole company, one employee or one department. GET /benefits, /employees/{id}/benefits or /departments/{id}/benefits.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's records.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"department_id": {
"description": "Only records of employees in this department.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_employee_jobs(employee_id, page, per_page)
List job history records (job title, start/end dates, department, location) for all employees or one employee. GET /employee_jobs.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's jobs.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_training_courses(employee_id, page, per_page)
List employee training records (course name, type, status, dates, cost) for all employees or one employee. GET /employee_training_courses.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's training.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_expense_claims(employee_id, state, page, per_page)
List expense claims (employee, total, state, approver) filtered by employee and state. GET /employee_expense_claims.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's claims.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"state": {
"description": "Only claims in this state.",
"type": "string",
"enum": [
"submitted",
"approved",
"completed",
"rejected"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_expenses(employee_id, include_claimed, page, per_page)
List individual expense items (date, description, type, amount, VAT, project). By default only unclaimed items; set include_claimed to see all. GET /employee_expenses.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's expenses.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"include_claimed": {
"description": "Also return expenses already part of a claim.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢breathehr_list_change_requests(employee_id, page, per_page)
List employee self-service change requests (field, requested value, approval state) for all employees or one employee. Requested values of bank and NI fields are redacted. GET /change_requests or /employees/{id}/change_requests.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only this employee's change requests.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴breathehr_create_leave_request(employee_id, start_date, end_date, type, half_start, ...)
WRITE: request leave for an employee (holiday by default, or other leave). It is created as a request, then follows the account's approval rules; the employee's approver is notified. Each call creates a new request. POST /employees/{id}/leave_requests.
Esquema de entrada
{
"type": "object",
"properties": {
"employee_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Breathe employee id."
},
"start_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "First day of leave (yyyy-mm-dd)."
},
"end_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Last day of leave (yyyy-mm-dd), same as start_date for one day."
},
"type": {
"description": "Holiday (default) or OtherLeave.",
"type": "string",
"enum": [
"Holiday",
"OtherLeave"
]
},
"half_start": {
"description": "The first day is a half day (default false).",
"type": "boolean"
},
"half_start_am_pm": {
"description": "Which half of the first day: am or pm (with half_start).",
"type": "string",
"enum": [
"am",
"pm"
]
},
"half_end": {
"description": "The last day is a half day (default false).",
"type": "boolean"
},
"half_end_am_pm": {
"description": "Which half of the last day: am or pm (with half_end).",
"type": "string",
"enum": [
"am",
"pm"
]
},
"notes": {
"description": "Notes for the approver.",
"type": "string",
"maxLength": 2000
}
},
"required": [
"employee_id",
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴breathehr_approve_leave_request(leave_request_id)
WRITE: approve a pending leave request; it becomes an absence and is deducted from the allowance. Recorded as done by the "API Employee". POST /leave_requests/{id}/approve.
Esquema de entrada
{
"type": "object",
"properties": {
"leave_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Breathe leave request id (from breathehr_list_leave_requests)."
}
},
"required": [
"leave_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴breathehr_reject_leave_request(leave_request_id, rejection_reason)
WRITE: reject a pending leave request with a reason the employee will see. Recorded as done by the "API Employee". POST /leave_requests/{id}/reject.
Esquema de entrada
{
"type": "object",
"properties": {
"leave_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Breathe leave request id (from breathehr_list_leave_requests)."
},
"rejection_reason": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "Why the request is rejected (shown to the employee)."
}
},
"required": [
"leave_request_id",
"rejection_reason"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia