SquadBear
SquadBear: отпуска, учёт времени и кадровые данные команды через ассистента
Что умеет
- Смотреть профили сотрудников и организационную структуру
- Проверять баланс и прогноз отпускных дней
- Смотреть политики отпусков и праздничные календари
- Создавать, редактировать и отменять заявки на отпуск
- Подбирать доступные даты для отпуска
Какие данные видит
Ассистент видит данные сотрудника и команды в рамках прав его роли в рабочем пространстве SquadBear.
Нужен ли аккаунт
Не нужен: сервер работает без входа
SquadBear — HR-платформа для отпусков, учёта времени, здоровья команды и кадровых записей. MCP-сервер даёт ассистенту доступ к профилям сотрудников, организационной структуре, балансам отпусков, праздничным календарям и заявкам на отпуск, включая их создание и редактирование.
Как подключить
Как подключить SquadBear к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://squadbear.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить SquadBear к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://squadbear.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить SquadBear к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://squadbear.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (60)
Технические названия из tools/list. Нужны только разработчикам.
| whoami | Authenticated employee profile: role, manager, teams, effective country and holiday calendar. |
| get_plan | The workspace's subscription tier, entitlements (seats, event retention, webhooks), current seat usage, and Stripe subscription status. |
| create_checkout_link | Create a Stripe Checkout link to upgrade this workspace to the Team plan (admin). Calls Stripe to open a new Checkout session each time and returns a URL the user opens in a browser to enter payment. |
| create_billing_portal_link | Create a Stripe Billing Portal link to manage payment method, view invoices, or cancel (admin). Calls Stripe to open a new Billing Portal session each time and returns a URL the user opens in a browser. |
| list_employees | Paginated tenant directory (role, title, manager, country). Default limit 50 (max 200). Returns { data, nextCursor, total } — loop nextCursor for more. Prefer query to search by name/email/title; use get_employee when you already have id or email. |
| get_employee | Look up one employee by id or email (O(1) directory summary — not the full HR profile; use get_employee_profile for that). |
| list_teams | Teams with manager and member count. |
| get_team | One team with its manager and full member list (membership roles, titles, status). |
| get_org_chart | Manager-report tree of active employees. |
| resolve_identity | Map a GitHub login, Slack user id, Jira/Linear/Asana account or email to the employee — including whether they are on leave today and who their replacement is. The cross-MCP join for questions like 'who can review this PR while X is away'. Only OAuth-PROVEN identities resolve, so an unlinked handle returns found:false rather than a guess — if that happens, use list_identities to get the person's connect link. |
| list_identities | External identities for an employee (default: caller): which trackers are linked, and for the caller's own unlinked ones a `connectUrl` to open. Identities are created ONLY by the person signing in to that provider — you cannot set one for them. When a tracker is unlinked, give the user their connectUrl and ask them to click it. |
| get_my_balance | Authenticated employee's balances for a year. |
| list_balance_ledger | Append-only ledger of an employee's balance changes (default: caller), newest first: every REAL movement — accrual grants, carry-over, approved/cancelled requests (sourceType 'leave_request', sourceId = request id), and manual admin adjustments (actorName = who edited). Pending reservations are NOT here — they appear only once approved. Filter by leaveTypeId; page with the returned cursor. Same self/manager/admin visibility as the profile. |
| project_balance | Accrual-aware forecast of available days on a future date, with assumptions stated. |
| list_leave_policies | Active and inactive leave policies for the tenant. |
| list_leave_types | Leave types with ids, codes and colors — use to map names to leaveTypeId. |
| list_holidays | Public holidays applying to a specific employee (default: caller) after country-override resolution. calendarId null = no calendar covers their country. |
| list_holiday_calendars | All holiday calendars with dates; flags the org default. |
| list_my_requests | The caller's leave requests, optionally filtered by status and/or leave type (use list_leave_types to map a name to leaveTypeId). |
| get_request | Full request view: approval timeline (who, when, delegation), replacement state, per-day breakdown, the persisted policy evaluation trace explaining why it was allowed or what was checked, and any attachments (sick notes) the caller may access — requester, admin, or an assigned approver; other viewers get an empty attachments list. |
| validate_time_off | Run exactly the same checks as request_time_off without creating anything: working-day count, notice/backdate, overlaps, replacement availability, per-year balance impact. Use before requesting to show consequences. |
| suggest_time_off_slots | Ranked candidate vacation windows with the requested number of working days, avoiding holidays, own conflicts, and (ranked by) teammate absences. |
| request_time_off | Create a time-off request after policy, balance, overlap and replacement checks. Pass idempotencyKey to make retries safe. |
| edit_time_off_request | Change dates/type/replacement of a PENDING request. Re-validates everything and restarts the approval chain, discarding any approvals already collected. |
| cancel_time_off_request | Cancel a pending or approved request. For an approved, partially-taken request pass fromDate to cancel only the remaining days (days before fromDate stay taken). |
| assign_replacement | Assign or change the replacement employee for a request (checked for conflicts). |
| respond_replacement | Accept or decline covering for a colleague's absence (only the assigned replacement can respond). |
| list_my_pending_approvals | Requests currently waiting on the caller's decision. |
| approve_request | Approve the current step as the assigned approver (or admin). Multi-step chains advance one step per call; the response status shows whether more approvals are needed. |
| reject_request | Reject a pending request at the current step (vetoes the whole chain). |
| list_team_absences | Absences in a date range. Visibility follows the caller's role: non-managers see colleagues' approved absences only (plus their own requests in any status), managers their managed scope, admins the tenant; `reason` is only present on requests the caller owns, approves, or manages. |
| get_calendar | Per-day calendar (max 92 days): who is absent, public holidays per country, weekends, plus request-level entries with each request's true full range and duration (reason/approver included on requests the caller may see). Optional team filter. |
| get_team_availability | Per-person availability matrix for a range (max 31 days): each member's absent days, their non-working days (work schedule / their country's public holidays — off-schedule is not absent), and whether they are fully available. Combine with GitHub/Jira MCPs to find reviewers or staff work. |
| get_coverage_risks | Team-level absence coverage risks for a date window (max 31 days). Returns risks sorted high→medium with totalRisks/truncated when soft-capped. Defaults to the next 14 days. |
| absence_summary | Approved absence days per employee per leave type in a range. Managers see managed people only; admins see the whole tenant. |
| liability_report | Unused available days per employee per type for a year — outstanding PTO liability. Managers see managed people only; admins see the whole tenant. |
| bradford_factor | S²×D score per employee over a window (defaults to unplanned leave types) — flags frequent short absences. Managers see managed people only; admins see the whole tenant. |
| list_my_notifications | The caller's in-app notifications, newest first. |
| mark_notifications_read | Mark the caller's notifications as read (all unread, or specific ids). |
| get_notification_preferences | The caller's notification settings per channel: the email and Slack master switches and each category (with slackCapable/slackAvailable/slackLinked flags). In-app notifications are always on. |
| set_notification_preferences | Update which notification categories reach the caller by email and/or Slack DM. Pass allEmail/allSlack to pause/resume a whole channel, and/or per-category booleans via categories (email) and slackCategories (Slack). |
| set_language | Set or clear the caller's own UI/email language override ('en' or 'pl'). Pass null to clear the override and follow the workspace default. |
| list_events | Tenant event feed (request.created/approved/..., employee.*, replacement.*). Cursor-based: pass the last seen seq as `after`. Use to react to changes without webhooks. Scoped to what the caller may see: a member sees events about themselves and the people they manage, plus their teams; an admin sees the whole workspace. |
| list_audit_logs | Tenant audit trail, newest first (admin only). Filter by entity type, action substring, entity id, or date range; page with the returned cursor. Requires admin:read (admin:write also satisfies). |
| list_workflows | Approval workflow definitions: steps, approver types, conditions, SLAs, and which policies use them. |
| adjust_balance | Manual balance correction with a reason; always ledgered (manager: own reports; admin: anyone). |
| create_employee | Add an employee (admin). Initializes this year's balances, prorated by start date. Adding an active employee raises active headcount, which syncs this workspace's Stripe seat count. |
| update_employee | Apply an admin's decision to change an employee's title/role/manager/status. Setting status=inactive offboards: future leave is cancelled and their pending approvals are delegated. Setting status=active reactivates an offboarded person and re-checks the plan's seat limit (a full workspace is refused). A profile whose personal data was erased (GDPR) is permanently read-only and cannot be modified. Activating or deactivating an employee changes active headcount, which syncs this workspace's Stripe seat count. |
| invite_employee | Invite a future employee by email (admin). Sends the invitation email immediately with a link they accept to join the workspace; when email isn't configured the invitation is still recorded. Rejects emails with a pending invitation or an active member, so a retry never double-sends. |
| list_invitations | Pending workspace invitations with expiry (admin). Accepted/revoked/expired invitations are not listed. Requires admin:read (admin:write also satisfies). |
| revoke_invitation | Cancel a pending invitation so its link can no longer be redeemed (admin). To re-send instead, revoke and invite_employee again. |
| create_team | Create a team (admin). |
| update_team | Rename a team or change its manager (admin). |
| set_team_membership | Add (as member or lead) or remove an employee from a team (admin). |
| set_work_schedule | Set an employee's working weekdays (ISO 1=Mon..7=Sun), work model, hours and FTE from a date (admin). Working days drive leave-day counting (per-day across schedule changes) and coverage/availability. Expected timesheet hours come from dayHours (per-weekday map covering every working day; weeklyHours is derived from its sum) or an even weeklyHours split. fteRatio prorates accrual grants pro-rata by month, and the CURRENT year's already-issued grants recompute automatically on every schedule write (ledger-visible correction; response lists fteCorrections; negative corrections floor at the available balance; prior years need adjust_balance). IMPORTANT: leave is booked in DAYS, so set fteRatio to the fraction of standard working DAYS, not hours — Mon-Wed = 0.6; five short days = 1.0. model is an informational label. Guide: https://squadbear.com/docs/leave/work-schedules/?utm_source=app&utm_medium=guidelink&utm_content=workSchedules |
| get_employee_profile | Full profile: contact info, custom fields, emergency contacts, entitlements, request history, work schedule (model, days, weekly hours), teams, linked identities, and employment change history. Self, their manager, or admin. |
| list_field_defs | The workspace's custom employee-profile field definitions (key, label, type, options, section). Admins see all incl. inactive and admin-only; others see active public fields. |
| update_employee_fields | Set custom-field values on an employee's profile (admin). Partial merge: only the keys you pass change; null clears a value. Values are validated against the field definitions (see list_field_defs). Idempotent — re-sending the same values changes nothing. |
| export_my_data | Queue a machine-readable export of everything held about a person (GDPR Art. 15/20): profile, balances, ledger, requests, time entries, schedules, teams, identities, notifications, participation, audit trail and sessions. The export is large, so it runs as a BACKGROUND job — this returns a job handle; poll get_export_status until status is 'ready', then download it in the app. Defaults to the caller; admins may pass any employeeId. Re-requesting while one is in flight returns the same job. |
| get_export_status | List your GDPR data-export jobs (status: queued/processing/ready/failed, and when each became ready). Use after export_my_data to know when a download is available. |