Breathe HR MCP by usefulapi
Read Breathe HR employees, absences, sickness and leave; create and review leave requests.
사용해야 할까요
품질 및 안전성
발견 사항 (5)
- LOWbreathehr_list_working_patterns에서
- LOWbreathehr_list_holiday_allowances에서
- LOWbreathehr_list_other_leave_reasons에서
- LOWbreathehr_list_training_courses에서
- LOWbreathehr_approve_leave_request에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"breathe-hr": {
"url": "https://breathe-hr.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://breathe-hr.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (25)
🟢breathehr_get_account
The Breathe HR account (company) this API key belongs to: id, name, domain and enabled modules. GET /account.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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"
}커뮤니티
증거