Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
MCP server for When2Work API integration When2Work MCP Server $1 $1 $1 $1 A Model Context Protocol (MCP) server that provides seamless integration with the $1 scheduling API. This server exposes When2Work data as MCP tools, allowing AI assistants like Claude to query employee schedules, shifts, time off, and reports. --- ๐ Support Our Mission **This tool was built for Dumont Volunteer Ambulance Corps**, a member-owned non-profit volunteer ambulance service Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
dvac-w2w-mcp is best for mcp, when2work, scheduling workflows where MCP compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB MCP, runtime-metrics, public facts pack
MCP server for When2Work API integration When2Work MCP Server $1 $1 $1 $1 A Model Context Protocol (MCP) server that provides seamless integration with the $1 scheduling API. This server exposes When2Work data as MCP tools, allowing AI assistants like Claude to query employee schedules, shifts, time off, and reports. --- ๐ Support Our Mission **This tool was built for Dumont Volunteer Ambulance Corps**, a member-owned non-profit volunteer ambulance service
Public facts
4
Change events
1
Artifacts
0
Freshness
Feb 25, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 25, 2026
Vendor
Therealalexv
Artifacts
0
Benchmarks
0
Last release
1.0.0
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/TheRealAlexV/w2w-mcp.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Therealalexv
Protocol compatibility
MCP
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
bash
cd /home/dvac_workspace/DVAC/dvac-w2w-mcp
bash
npm install
bash
npm run build
bash
export W2W_API_KEY=your_api_key_here
bash
echo 'export W2W_API_KEY=your_api_key_here' >> ~/.bashrc source ~/.bashrc
bash
npm start
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
MCP server for When2Work API integration When2Work MCP Server $1 $1 $1 $1 A Model Context Protocol (MCP) server that provides seamless integration with the $1 scheduling API. This server exposes When2Work data as MCP tools, allowing AI assistants like Claude to query employee schedules, shifts, time off, and reports. --- ๐ Support Our Mission **This tool was built for Dumont Volunteer Ambulance Corps**, a member-owned non-profit volunteer ambulance service
A Model Context Protocol (MCP) server that provides seamless integration with the When2Work scheduling API. This server exposes When2Work data as MCP tools, allowing AI assistants like Claude to query employee schedules, shifts, time off, and reports.
This tool was built for Dumont Volunteer Ambulance Corps, a member-owned non-profit volunteer ambulance service. If you find this tool useful, please consider supporting our life-saving work:
Your donation helps us continue providing emergency medical services to those in need!
| Feature | Description | |---------|-------------| | ๐ฅ Employee Management | List all employees with contact information | | ๐ฏ Position Management | List all positions/job roles | | ๐ท๏ธ Category Management | List all shift categories | | ๐ Shift Queries | Get assigned shifts with date range support and automatic pagination | | ๐๏ธ Time Off Tracking | Get approved time off requests | | ๐ Daily Reports | Get daily schedule totals and position breakdowns | | ๐ Automatic Pagination | Handles When2Work's 31-day limit by chunking requests automatically | | ๐ Type Safety | Full TypeScript support with proper type definitions |
All 7 tools have been tested and verified working:
| Tool | Status | Description |
|------|:------:|-------------|
| w2w_get_employees | โ
Tested | Retrieve all employees with contact info |
| w2w_get_positions | โ
Tested | Retrieve all positions/job roles |
| w2w_get_categories | โ
Tested | Retrieve all shift categories |
| w2w_get_shifts | โ
Tested | Get assigned shifts with date range support |
| w2w_get_timeoff | โ
Tested | Get approved time off requests |
| w2w_get_daily_totals | โ
Tested | Get daily schedule totals |
| w2w_get_daily_position_totals | โ
Tested | Get daily totals by position |
cd /home/dvac_workspace/DVAC/dvac-w2w-mcp
npm install
npm run build
export W2W_API_KEY=your_api_key_here
To make this permanent, add it to your shell profile (~/.bashrc, ~/.zshrc, etc.):
echo 'export W2W_API_KEY=your_api_key_here' >> ~/.bashrc
source ~/.bashrc
npm start
Or directly:
node dist/index.js
For development with auto-rebuild:
npm run dev
Add this server to your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"when2work": {
"command": "node",
"args": ["/home/dvac_workspace/DVAC/dvac-w2w-mcp/dist/index.js"],
"env": {
"W2W_API_KEY": "your_api_key_here"
}
}
}
}
w2w_get_employeesGet all employees from When2Work.
Parameters: None
Example:
{
"name": "w2w_get_employees",
"arguments": {}
}
w2w_get_positionsGet all positions from When2Work.
Parameters: None
Example:
{
"name": "w2w_get_positions",
"arguments": {}
}
w2w_get_categoriesGet all shift categories from When2Work.
Parameters: None
Example:
{
"name": "w2w_get_categories",
"arguments": {}
}
w2w_get_shiftsGet assigned shifts for a date range. Automatically handles pagination for ranges over 31 days.
Parameters:
start_date (string, required): Start date in mm/dd/yyyy format (e.g., "01/15/2024")end_date (string, required): End date in mm/dd/yyyy format (e.g., "01/31/2024")position_id (string, optional): Filter by position IDExample:
{
"name": "w2w_get_shifts",
"arguments": {
"start_date": "01/01/2024",
"end_date": "01/31/2024",
"position_id": "12345"
}
}
w2w_get_timeoffGet approved time off for a date range. Automatically handles pagination for ranges over 31 days.
Parameters:
start_date (string, required): Start date in mm/dd/yyyy formatend_date (string, required): End date in mm/dd/yyyy formatExample:
{
"name": "w2w_get_timeoff",
"arguments": {
"start_date": "01/01/2024",
"end_date": "01/31/2024"
}
}
w2w_get_daily_totalsGet daily schedule totals (shifts and hours) for a date range. Automatically handles pagination for ranges over 31 days.
Parameters:
start_date (string, required): Start date in mm/dd/yyyy formatend_date (string, required): End date in mm/dd/yyyy formatExample:
{
"name": "w2w_get_daily_totals",
"arguments": {
"start_date": "01/01/2024",
"end_date": "01/31/2024"
}
}
w2w_get_daily_position_totalsGet daily schedule totals broken down by position for a date range. Automatically handles pagination for ranges over 31 days.
Parameters:
start_date (string, required): Start date in mm/dd/yyyy formatend_date (string, required): End date in mm/dd/yyyy formatExample:
{
"name": "w2w_get_daily_position_totals",
"arguments": {
"start_date": "01/01/2024",
"end_date": "01/31/2024"
}
}
Base URL: https://www8.whentowork.com/cgi-bin/w2wJ.dll
Note: This is the correct production endpoint for the When2Work API, not https://api.when2work.com.
The When2Work API uses query parameter authentication:
key query parameterExample request URL:
https://www8.whentowork.com/cgi-bin/w2wJ.dll/api/employees?key=YOUR_API_KEY&detail=Y
The When2Work API returns data in specific keys depending on the endpoint:
| Endpoint | Response Key |
|----------|--------------|
| Employees | EmployeeList |
| Positions | PositionList |
| Categories | CategoryList |
| Shifts | AssignedShiftList |
| Time Off | ApprovedTimeOff |
| Daily Totals | DailyTotals |
| Daily Position Totals | DailyPositionTotals |
The MCP server normalizes these responses into consistent arrays for easier consumption.
The server automatically handles When2Work's 31-day limit by:
This allows you to query any date range without worrying about the limit.
dvac-w2w-mcp/
โโโ package.json
โโโ tsconfig.json
โโโ README.md
โโโ src/
โ โโโ index.ts # MCP server entry point
โ โโโ w2w-client.ts # When2Work API client
โ โโโ tools/ # MCP tool implementations
โ โ โโโ employees.ts
โ โ โโโ positions.ts
โ โ โโโ categories.ts
โ โ โโโ shifts.ts
โ โ โโโ timeoff.ts
โ โ โโโ reports.ts
โ โโโ types/
โ โโโ w2w.ts # TypeScript interfaces
src/tools/src/index.tsnpm run typecheck
npm run lint
Make sure you've set the W2W_API_KEY environment variable:
export W2W_API_KEY=your_api_key_here
Your API key may be invalid or expired. Verify your API key in your When2Work account settings:
Make sure dates are in mm/dd/yyyy format (e.g., "01/15/2024"), not ISO 8601 format.
You're being rate limited. The server automatically handles most rate limiting through pagination, but very large queries may still hit limits. Try reducing your date range.
If tools return empty arrays, check:
If you see connection errors:
https://www8.whentowork.com is accessibleTo verify the server is working correctly:
Start the server:
npm start
Test with Claude Desktop or any MCP client:
w2w_get_employees first (no parameters needed)All tools have been verified to work with real When2Work API calls.
This project is licensed under the MIT License - see below for details:
MIT License
Copyright (c) 2024 Dumont Volunteer Ambulance Corps
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
For issues related to this MCP server, please check:
https://www8.whentowork.com/cgi-bin/w2wJ.dllBuilt with โค๏ธ by Dumont Volunteer Ambulance Corps
If this tool has been helpful to your organization, please consider making a donation to support our volunteer emergency services.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-17T02:40:54.310Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "when2work",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "scheduling",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "api",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile capability:mcp|supported|profile capability:when2work|supported|profile capability:scheduling|supported|profile capability:api|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Therealalexv",
"href": "https://github.com/TheRealAlexV/w2w-mcp",
"sourceUrl": "https://github.com/TheRealAlexV/w2w-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:05:18.608Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-25T03:05:18.608Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-therealalexv-w2w-mcp/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub ยท GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to dvac-w2w-mcp and adjacent AI workflows.