Breathe HR MCP by usefulapi

Read Breathe HR employees, absences, sickness and leave; create and review leave requests.

我该使用它吗

质量与安全性

A
描述质量
97%
模式完整度
78%
命名质量
76%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(5)

  • LOWTool 'breathehr_list_working_patterns' name length outside 3-30 range在 breathehr_list_working_patterns 中
  • LOWTool 'breathehr_list_holiday_allowances' name length outside 3-30 range在 breathehr_list_holiday_allowances 中
  • LOWTool 'breathehr_list_other_leave_reasons' name length outside 3-30 range在 breathehr_list_other_leave_reasons 中
  • LOWTool 'breathehr_list_training_courses' name length outside 3-30 range在 breathehr_list_training_courses 中
  • LOWTool 'breathehr_approve_leave_request' name length outside 3-30 range在 breathehr_approve_leave_request 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~5,123token 数(工具定义)
~1.4 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 4.00%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `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"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本25 个工具