MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

Shiftbase MCP by usefulapi

Claim this listing

io.usefulapi/shiftbase

usefulapi.ioVerified

Read Shiftbase rosters, timesheets, absences and availability; schedule shifts and review absences.

Developer ToolsIs Shiftbase MCP by usefulapi down?Alternatives

14 of 22 checks passed

  • Handshake
  • Tools listed
  • Updated recently

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Connect to server
Median latency
156 ms
Uptime, 30 days
Not measured
Last checked

Measurement details

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 156 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name shiftbase-mcp.

  • Pass
    Lists tools

    tools/list returned 22 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 156 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 156 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    98 of 98 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-10T23:33:48.773355Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Tools

  • shiftbase_create_roster

    WRITE: put one employee on the schedule for one date (a single, non-recurring shift) in a team, with a shift type, start/end time and break. The employee is notified only when notify is true. POST /rosters.

    Measured

  • shiftbase_get_absence

    One absence by id, with the per-day hours and who reviewed it. GET /absentees/{absenteeId}.

    Measured

  • shiftbase_get_account

    The Shiftbase account this API key belongs to: company, country, time zone, working-day start/end, plan facts. GET /accounts.

    Measured

  • shiftbase_get_availability

    Employee availability (available / unavailable, all day or from a time) for a date range of at most 62 days, from Shiftbase's availability report. Needs the Basic plan and the "View reports" permission. POST /reports/availability (export json; reads only).

    Measured

  • shiftbase_get_expected_absence_hours

    How many hours an absence would cost for an employee, per day and in total (from the schedule or the contract, per the absence policy), for a period of at most 366 days. Changes nothing. POST /absentees/expected.

    Measured

  • shiftbase_get_roster

    One scheduled shift by its occurrence_id, with the employee, shift type, team and who created/changed it. GET /rosters/{occurrenceId}.

    Measured

  • shiftbase_get_timesheet

    One timesheet by id, with its clocked breaks. GET /timesheets/{timesheetId}.

    Measured

  • shiftbase_get_user

    One employee by user id or email address, with teams and departments. GET /users/{identifier}.

    Measured

  • shiftbase_list_absence_types

    List absence types (e.g. Holiday, Sick, Unpaid leave): name, unit (hours or days), whether it costs leave hours, colour. Their ids are the absence_type_id for absences. GET /absentee_options.

    Measured

  • shiftbase_list_absences

    List absences (leave, sick leave, other time off) overlapping a date range of at most 366 days: employee, absence type, start/end date, hours or days, status Approved/Declined/Pending and who reviewed it. Needs the Basic plan. GET /absentees.

    Measured

  • shiftbase_list_clocked_in

    Who is clocked in right now: employee, since when, their scheduled shift, team, department and location. GET /timesheets/clock.

    Measured

  • shiftbase_list_departments

    List departments (sites/branches that own teams, shifts and schedules) with address and timesheet/clocking settings. GET /departments.

    Measured

  • shiftbase_list_locations

    List active locations (addresses that group departments). GET /locations.

    Measured

  • shiftbase_list_open_shifts

    List open (unassigned) shifts that employees can pick up, for a date range of at most 62 days (default: today). Needs the Basic plan or higher. GET /open_shifts.

    Measured

  • shiftbase_list_rosters

    List the schedule (rosters = shifts assigned to employees) for a date range of at most 62 days: date, start/end time, break, employee, team, shift type, department, published state, hours and cost. Each item's occurrence_id identifies it for shiftbase_get_roster and shiftbase_update_roster. GET /rosters.

    Measured

  • shiftbase_list_shift_types

    List shift types (the templates a scheduled shift uses: name, short name, default start/end time and break), optionally for one department. Their ids are the shift_id for shiftbase_create_roster. GET /shifts.

    Measured

  • shiftbase_list_teams

    List teams (the rows of the schedule within a department), optionally for one department. GET /teams.

    Measured

  • shiftbase_list_timesheets

    List timesheets (worked hours: clock in/out, breaks, total, status Approved/Declined/Pending, wage and surcharges) for a date range of at most 62 days. GET /timesheets.

    Measured

  • shiftbase_list_users

    List employees (users) with their teams and departments, contact details, employee number, start/end dates and plus-min hours balance. Use it to map user ids in schedules, timesheets and absences to names. Identity, bank and birth data are never returned. GET /users.

    Measured

  • shiftbase_request_absence

    WRITE: add an absence (leave/time-off request) for an employee. By default it is a Pending request for a manager to review; status Approved books it directly (needs the approve-absence permission). The hours per day come from Shiftbase's own expected-hours calculation (the same as shiftbase_get_expected_absence_hours). Needs the Basic plan. POST /absentees.

    Measured

  • shiftbase_review_absence

    WRITE: approve or decline an absence request. Reads the absence first and sends it back unchanged except for the status (needs the approve-absence permission). PUT /absentees/{absenteeId}.

    Measured

  • shiftbase_update_roster

    WRITE: change a scheduled shift: move it to another date, time, employee, team or shift type, or change its break or note. Reads the shift first and sends it back with your changes. For a recurring shift, scope says what changes: "occurrence" (this date only), "sequence" (this date and all later ones) or "original" (the whole series; also the right scope for a non-recurring shift). PUT /rosters/{occurrenceId}/{scope}.

    Measured

Probe history

  • ok156 ms22 tools

Status and uptime

Add badge to your README

The image links back to this page. It shows checks passed, or uptime, and the colour follows the latest status. Responses are cached for 5 to 15 minutes.

MCP Heartbeat badge

Markdown

[![MCP Heartbeat](https://mcpheartbeat.com/badge/io.usefulapi/shiftbase.svg)](https://mcpheartbeat.com/s/io.usefulapi/shiftbase)

HTML

<a href="https://mcpheartbeat.com/s/io.usefulapi/shiftbase"><img alt="MCP Heartbeat" src="https://mcpheartbeat.com/badge/io.usefulapi/shiftbase.svg"></a>

Uptime markdown

[![MCP Heartbeat uptime](https://mcpheartbeat.com/badge/io.usefulapi/shiftbase.svg?kind=uptime)](https://mcpheartbeat.com/s/io.usefulapi/shiftbase)

Served from https://mcpheartbeat.com.

Related servers

All alternatives

Same function and industry, ranked by checks passed then median latency.

Connect to this server

Claude Code

claude mcp add --transport http shiftbase-mcp-by-usefulapi https://shiftbase.usefulapi.io/mcp

Cursor .cursor/mcp.json

{
  "mcpServers": {
    "shiftbase-mcp-by-usefulapi": {
      "url": "https://shiftbase.usefulapi.io/mcp"
    }
  }
}

VS Code .vscode/mcp.json

{
  "servers": {
    "shiftbase-mcp-by-usefulapi": {
      "type": "http",
      "url": "https://shiftbase.usefulapi.io/mcp"
    }
  }
}