npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@hyperdrift-io/deputy-workforce-mcp

v0.1.0

Published

Read-only workforce operations MCP for Deputy

Readme

Deputy Workforce Operations MCP

A read-only Model Context Protocol server that turns Deputy workforce records into five grounded, operational workflows for AI assistants.

What a Deputy manager can ask

  • “Where are the coverage gaps from 20 to 26 July, using a minimum of two people?”
  • “Which combined completed and rostered workloads cross our 40-hour planning threshold?”
  • “Show timesheet exceptions above a 15-minute tolerance.”
  • “Which rosters overlap recorded unavailability or approved leave?”
  • “Summarise staffing by location and day for this week.”

The tools answer those questions directly instead of exposing Deputy's endpoint catalogue.

Representative results

The examples below use fictional records and compact the structured response to the fields a manager can act on.

Coverage gaps

{
  "period": { "start": "2026-07-20", "end": "2026-07-26", "timezone": "Europe/London" },
  "findings": [{ "kind": "coverage_gap", "sources": [{ "resource": "Roster", "id": 1001 }], "rule": "active roster has fewer than 2 people" }],
  "limits": []
}

Overtime risk

{ "period": { "start": "2026-07-20", "end": "2026-07-26", "timezone": "Europe/London" }, "findings": [{ "worker_id": 7, "planned_hours": 43.5, "threshold_hours": 40, "sources": [{ "resource": "Timesheet", "id": 2007 }, { "resource": "Roster", "id": 1007 }], "rule": "completed plus remaining rostered hours exceeds threshold" }], "limits": [] }

Timesheet exceptions

{ "period": { "start": "2026-07-20", "end": "2026-07-26", "timezone": "Europe/London" }, "findings": [{ "kind": "start_time_variance", "roster_id": 1002, "minutes": 22, "tolerance_minutes": 15, "sources": [{ "resource": "Roster", "id": 1002 }, { "resource": "Timesheet", "id": 2002 }], "rule": "timesheet start differs from roster beyond tolerance" }], "limits": [] }

Availability conflicts

{ "period": { "start": "2026-07-20", "end": "2026-07-26", "timezone": "Europe/London" }, "findings": [{ "kind": "recorded_unavailability_conflict", "sources": [{ "resource": "Roster", "id": 1002 }, { "resource": "EmployeeAvailability", "id": 4001 }], "rule": "roster interval overlaps recorded unavailability" }], "limits": [] }

Staffing summary

{ "period": { "start": "2026-07-20", "end": "2026-07-26", "timezone": "Europe/London" }, "findings": [{ "location": "North", "day": "2026-07-21", "rostered_hours": 16, "completed_hours": 12, "assigned": 3, "unassigned": 1, "sources": [{ "resource": "Roster", "id": 1008 }, { "resource": "Timesheet", "id": 2008 }], "rule": "group roster and timesheet hours by location and local day" }], "limits": [] }

Every finding names its period, source record identifiers, and the rule or threshold that produced it. Empty data gives a confidence limit rather than a false all-clear.

Safety and data handling

  • Every tool is read-only, idempotent, and non-destructive.
  • The server never creates or changes shifts, timesheets, leave, payroll, or employee data.
  • Workload thresholds are operational planning signals, not payroll, employment, or legal advice.
  • Telemetry excludes tool arguments, employee and location IDs, dates, result content, and tokens.
  • Standard MCP analytics are disabled unless the deployment owner provides a PostHog project token; the privacy allowlist is documented in PRIVACY.md.
  • V1 is single-tenant by deployment: one Deputy installation and one MCP bearer token per instance.
  • Authentication, bounded HTTP transport, rate limiting, structured results, and stdio lifecycle use MCP Maker's shared @hyperdrift-io/mcp-service-kit; Deputy keeps its provider and workflow logic.

See SECURITY.md and PRIVACY.md for the complete contracts.

Local installation

Node.js 22 and pnpm are required. The quickest safe inspection uses the public package and fictional fixture data:

DEPUTY_MODE=fixture pnpm dlx @hyperdrift-io/deputy-workforce-mcp@latest

For a visible tool-list and tool-call proof, see the fixture demonstration. To work from source:

git clone https://github.com/hyperdrift-io/deputy-workforce-mcp.git
cd deputy-workforce-mcp
pnpm install
pnpm build
DEPUTY_MODE=fixture node dist/stdio.js

Fixture mode contains fictional Worker 01-style records and is safe for evaluation. To connect a Deputy installation, copy .env.example to .env.local, choose DEPUTY_MODE=live, and provide a customer-owned base URL and OAuth access token. Live resource shapes still require the first sandbox verification recorded in docs/DEPUTY_API.md.

Example client configuration:

{
  "mcpServers": {
    "deputy-workforce": {
      "command": "node",
      "args": ["/absolute/path/to/deputy-workforce-mcp/dist/stdio.js"],
      "env": { "DEPUTY_MODE": "fixture" }
    }
  }
}

Remote deployment

The same five tools can run over authenticated streamable HTTP. Remote mode requires an MCP bearer token of at least 32 bytes, authenticates before parsing requests, limits bodies to 1 MiB, and uses bounded in-memory rate protection.

DEPUTY_MODE=fixture \
MCP_BEARER_TOKEN="replace-with-at-least-32-random-bytes" \
PORT=3013 \
pnpm start
  • Health: GET /health
  • MCP: authenticated POST /mcp

See docs/DEPLOYMENT.md before operating a remote instance.

Tool reference

The server registers exactly five tools:

  • find_coverage_gaps
  • flag_overtime_risk
  • list_timesheet_exceptions
  • find_availability_conflicts
  • summarise_staffing

Inputs, rules, and output limits are documented in docs/TOOLS.md.

Status

Fixture mode, stdio, and authenticated streamable HTTP are operational. Live Deputy mode remains explicitly pending a customer-owned sandbox token and field-shape verification. The public API is still in prototype discovery and may evolve from real workflow feedback.

Built as MCP Maker delivery 001

Deputy Workforce Operations MCP is the flagship public implementation from MCP Maker: Hyperdrift turns established SaaS APIs into secure, production-ready AI integrations.

The open-source core remains useful on its own. MCP Maker offers managed deployment, security hardening, custom workflows, and operational support for organisations that want a production integration tailored to their environment.