Available Now MCP 2025-11-25 Upgrade path to 2026-07-28

Senzii MCP Server

Connect Claude, ChatGPT, or any MCP-compatible client to Senzii's staff scheduling engine. 19 tools for managing staff, shifts, assignments, certifications, and staffing requests. OAuth 2.1 for remote, API keys for local.

Quick start → Tool reference
Endpoint
senzii.com/mcp
Protocol
MCP (Streamable HTTP + stdio)
Auth
OAuth 2.1 + PKCE / API key
SDK
rmcp v1.8 (Rust)
Tools
19
Tests
51 (mock data)

Quick start

Claude (claude.ai)

Connect directly in claude.ai — no local installation needed. Claude discovers the OAuth flow automatically.

  1. Go to Settings → Connectors → Add custom connector
  2. Enter the connector URL: https://senzii.com/mcp
  3. Claude discovers OAuth endpoints and prompts you to log in through Senzii
  4. Senzii's 19 tools appear in Claude's tool list

Claude connector docs ↗

ChatGPT (OpenAI)

Connect through Developer Mode (Plus, Pro, Business, Enterprise, and Education plans).

  1. Enable Developer Mode: Settings → Apps → Advanced settings → toggle Developer mode
  2. Create a connector: Settings → Apps → Create app
  3. Fill in:
    • Connector name: Senzii
    • Description: Manage staff scheduling, shifts, and staffing requests
    • Connector URL: https://senzii.com/mcp
  4. Click Create — ChatGPT connects and prompts you to authenticate
  5. Use it: new chat → + button → More → select Senzii

ChatGPT connector docs ↗

💻 Local (stdio) — any MCP client

Run the senzii-mcp binary locally. Generate an API key in Settings → API Keys in the Senzii dashboard.

mcp_servers:
  senzii:
    command: /opt/senzii/senzii-mcp
    env:
      SENZII_API_KEY: "your-api-key-here"

The server reads DATABASE_URL from /opt/senzii/.env automatically — no database credentials in the client config. The API key resolves your org automatically. Legacy ORG_ID env var still supported but deprecated.

OAuth 2.1 endpoints

The remote server uses OAuth 2.1 with PKCE. Clients discover endpoints automatically via RFC 9728 protected resource metadata.

Endpoint URL
MCP endpoint https://senzii.com/mcp
Resource metadata https://senzii.com/.well-known/oauth-protected-resource
Authorization server https://senzii.com/.well-known/oauth-authorization-server
Dynamic client registration https://senzii.com/oauth/register

The WWW-Authenticate header on 401 responses points clients to the protected resource metadata URL, so MCP clients that support RFC 9728 discovery can connect without manual configuration.

Tool reference

All 19 tools are available in both remote and local mode. Tools are scoped to the authenticated organization — the AI never sees or controls the org ID. Write operations are audit-logged.

Staff

ToolDescriptionAdminStaffClient
list_staffList all staff members in the org
get_staffGet one staff member by ID, including certifications and availability✓ (self)
create_staffCreate a new staff member with optional certifications
delete_staffArchive a staff member (soft delete). Blocks if confirmed assignments exist
set_staff_availabilityReplace a staff member's weekly availability schedule✓ (self)
add_staff_certificationAdd a certification to an existing staff member
send_staff_magic_linkGenerate a one-time login link for a staff member

Clients

ToolDescriptionAdminStaffClient
list_clientsList all clients
create_clientCreate a new client company
send_client_magic_linkGenerate a one-time login link for a client

Shifts & Assignments

ToolDescriptionAdminStaffClient
list_shiftsList all shifts, optionally filtered by work site
delete_shiftDelete a shift (blocks if confirmed assignments exist)
list_assignmentsList assignments, optionally filtered by shift
create_assignmentAssign a staff member to a shift (checks for conflicts)
unassign_assignmentRemove a staff member from a shift

Staffing Requests

ToolDescriptionAdminStaffClient
list_staffing_requestsList staffing requests, filterable by status✓ (own)
create_staffing_requestSubmit a new staffing request for a client✓ (own)
convert_staffing_requestConvert an accepted request into a scheduled shift
cancel_staffing_requestCancel a request (also deletes any linked shift)✓ (own)

Work Sites

ToolDescriptionAdminStaffClient
list_work_sitesList all work sites
create_work_siteCreate a new work site

Certifications

ToolDescriptionAdminStaffClient
list_certificationsList all org-level certifications
create_certificationAdd a certification type to the org (idempotent)
update_certificationRename a certification type
delete_certificationRemove a certification (also removes from all staff)

Dashboard & Advanced

ToolDescriptionAdminStaffClient
get_org_metricsDashboard metrics — open shifts, pending requests, unassigned staff
run_sqlExecute read-only SELECT queries (admin only). INSERT, UPDATE, DELETE, DROP, ALTER, CREATE rejected

Security model

Org-scoped by design

The org ID is resolved server-side from the API key or JWT and injected into every database query. The AI never sees or controls it. Cross-org data access is impossible.

Role-based tool visibility

Admin, staff, and client roles see different tools. Staff can only access their own profile and assignments. Clients can only manage their own requests.

Audit-logged writes

Every create, update, delete, assign, and unassign operation logs the org, authenticated user ID, entity type, entity ID, and the resulting state.

OAuth 2.1 + PKCE

Remote mode uses OAuth 2.1 with PKCE. JWT access tokens are signed with HMAC-SHA256 and carry org_id, role, entity_id, and expiration. No tokens shared across orgs.

API keys (local mode)

Local stdio mode uses API keys generated in the dashboard. Keys are shown once at creation, stored hashed in the database, and can be revoked anytime.

Read-only SQL

The run_sql tool only accepts SELECT. All mutation keywords (INSERT, UPDATE, DELETE, DROP, ALTER, CREATE) are rejected before execution. Admin-only access.

MCP spec compatibility

Senzii's MCP server currently implements the 2025-11-25 spec via rmcp v1.8. The 2026-07-28 spec was published on July 28, 2026 with a stateless protocol core, header-based routing, and cacheable list results.

Do the 2026-07-28 changes affect Senzii?

The stateless core is a natural fit — Senzii's tools are already stateless database queries. Each call resolves the org from the auth token and runs independently. No session state is carried between calls.

The changes that would require an upgrade:

  • No handshake/sessions — rmcp handles this at the transport layer; tool definitions don't change
  • Header-based routingMcp-Method and Mcp-Name headers on HTTP requests (transport layer)
  • DCR deprecated — Senzii uses dynamic client registration at /oauth/register; will migrate to CIMD when rmcp supports it
  • Cacheable list resultsttlMs and cacheScope on tools/list responses (optimization, not breaking)

The 12-month deprecation window means the current server works until at least July 2027. The upgrade path is: wait for rmcp to ship stable 2026-07-28 support, then update the transport layer. Tool definitions, auth, and business logic stay the same.

Example conversation

Once connected, your AI assistant can manage scheduling through natural conversation. Here's what a typical exchange looks like in Claude:

You

What does my schedule look like this week? Any gaps?

Claude → calls get_org_metrics, list_shifts, list_assignments

You have 12 shifts this week across 3 work sites. 3 shifts are unassigned — all on Thursday at the Broad St site. You have 5 available caregivers with the right certifications who haven't been scheduled that day. Want me to assign them?

You

Yes, assign the closest ones.

Claude → calls list_staff, create_assignment ×3

Done. I assigned Maria (0.8 mi away), James (1.2 mi), and Patricia (1.5 mi) to the three Thursday shifts at Broad St. All three are pending your confirmation on the dashboard. Want me to confirm them?

Connect your assistant

Point your MCP client at https://senzii.com/mcp and authenticate. That's it.

Sign in to Senzii →