About Workday
Workday is an MCP server for accessing Workday HCM data through OAuth 2.0. It supports queries across workers, organizational structures, time off, jobs, locations, and recruiting requisitions.
Key features
- 01Search and retrieve worker profiles
- 02List direct reports
- 03Browse organizations and locations
- 04Retrieve time-off entries
- 05List job requisitions
- 06View worker job assignments
Use cases
- 01Find workers by name, email, or title
- 02Review a worker’s profile and direct reports
- 03Check time-off entries or job assignments
- 04Browse open recruiting requisitions
MCP support
Exposes nine tools to MCP hosts for querying Workday workers and related HR data. OAuth 2.0 credentials and Workday tenant details configure access.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @mindstone/mcp-server-workdayWORKDAY_HOSTWorkday API host (e.g. wd5-impl-services1.workday.com)WORKDAY_TENANTWorkday tenant IDWORKDAY_CLIENT_IDWorkday OAuth 2.0 client IDWORKDAY_CLIENT_SECRETSecretWorkday OAuth 2.0 client secretWORKDAY_REFRESH_TOKENSecretWorkday OAuth 2.0 refresh token (optional; enables the refresh_token grant)WORKDAY_RECRUITING_API_VERSIONOptional override for the recruiting REST family version (e.g. v41.2) when the tenant exposes a different Workday platform releaseLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
9Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| host | string | Yes | Workday API domain (e.g., "wd5-impl-services1.workday.com") |
| tenant | string | Yes | Workday tenant name (e.g., "acme_corp") |
| client_id | string | Yes | OAuth Client ID from Workday API Client registration |
| client_secret | string | Yes | OAuth Client Secret |
| refresh_token | string | No | Optional refresh token. If omitted, client_credentials grant is used. |
Details
From the project README@mindstone/mcp-server-workday
Workday HCM MCP server for Model Context Protocol hosts. Query workers, profiles, direct reports, organizations, locations, jobs, time off, and job requisitions in Workday through a standardised MCP interface using OAuth 2.0 authentication.
Status
- Version: 0.3.2 · npm
- Auth: OAuth (
WORKDAY_REFRESH_TOKEN) - Tools: 9 (workers, organizations, time off, recruiting, locations, jobs)
- Surface: cloud-api
- Machine-readable:
STATUS.json
Requirements
- Node.js 20+
- npm
One-click install
After clicking the button, your host will prompt you to fill: WORKDAY_HOST, WORKDAY_TENANT, WORKDAY_CLIENT_ID, WORKDAY_CLIENT_SECRET, WORKDAY_REFRESH_TOKEN.
Manual config for Claude Desktop / Claude Code / Goose / Continue.dev (Workday)
{
"mcpServers": {
"Workday": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-workday"
],
"env": {
"WORKDAY_HOST": "",
"WORKDAY_TENANT": "",
"WORKDAY_CLIENT_ID": "",
"WORKDAY_CLIENT_SECRET": "",
"WORKDAY_REFRESH_TOKEN": ""
}
}
}
}
Quick Start
Install & build
cd <path-to-repo>/connectors/workday
npm install
npm run build
npx (once published)
npx -y @mindstone/mcp-server-workday
Local
node dist/index.js
Configuration
Environment variables
WORKDAY_HOST— Workday API host (e.g.wd5-impl-services1.workday.com)WORKDAY_TENANT— Workday tenant IDWORKDAY_CLIENT_ID— OAuth 2.0 client IDWORKDAY_CLIENT_SECRET— OAuth 2.0 client secretWORKDAY_REFRESH_TOKEN— optional OAuth 2.0 refresh token (enables the refresh_token grant; without it the client_credentials grant is used)WORKDAY_RECRUITING_API_VERSION— optional override for the recruiting REST family version (defaultv41.2; Workday versions this API by platform release, so tenants on a different release may need e.g.v42.1)MCP_HOST_BRIDGE_STATE— optional path to a host bridge state file used for credential managementMINDSTONE_REBEL_BRIDGE_STATE— backwards-compatible alias forMCP_HOST_BRIDGE_STATE
Host configuration examples
Claude Desktop / Cursor
{
"mcpServers": {
"Workday": {
"command": "npx",
"args": ["-y", "@mindstone/mcp-server-workday"],
"env": {
"WORKDAY_HOST": "wd5-impl-services1.workday.com",
"WORKDAY_TENANT": "your-tenant",
"WORKDAY_CLIENT_ID": "your-client-id",
"WORKDAY_CLIENT_SECRET": "your-client-secret",
"WORKDAY_REFRESH_TOKEN": "your-refresh-token"
}
}
}
}
Local development (no npm publish needed)
{
"mcpServers": {
"Workday": {
"command": "node",
"args": ["<path-to-repo>/connectors/workday/dist/index.js"],
"env": {
"WORKDAY_HOST": "wd5-impl-services1.workday.com",
"WORKDAY_TENANT": "your-tenant",
"WORKDAY_CLIENT_ID": "your-client-id",
"WORKDAY_CLIENT_SECRET": "your-client-secret",
"WORKDAY_REFRESH_TOKEN": "your-refresh-token"
}
}
}
}
Tools (9)
Configuration
configure_workday_credentials— Configure Workday OAuth API credentials
Workers
list_workday_workers— List or search workers (employees and contingent workers)get_workday_worker— Get a worker's full profile by IDlist_workday_direct_reports— List a worker's direct reports (one level of the org chart)
Organizations
list_workday_organizations— List organizations (departments, supervisory orgs, cost centers)list_workday_locations— List work locations (offices, sites)
Time off
list_workday_time_off— List a worker's time-off entries (requires the ISU to have Absence Management domain access)
Recruiting
list_workday_job_requisitions— List job requisitions / open roles (requires Recruiting domain access; seeWORKDAY_RECRUITING_API_VERSIONif your tenant 404s)
Jobs
list_workday_jobs— List worker job assignments (position, title, location, organization)
Notes
- Search is client-side. Workday's
/workerscollection documents onlylimit/offset, solist_workday_workers'searchargument pages through workers and filters locally (case-insensitive match on name, email, title), scanning at most 1000 workers. On larger tenants, use a specific term. - Field allowlisting. Every tool trims Workday's responses to an allowlisted set of fields (and deep-picks nested references to ID + name), so free-text fields such as time-off comments, requisition descriptions, and street addresses never reach the model.
- Untrusted-content envelopes. Every allowlisted string returned from Workday (names, titles, emails, statuses, dates — including values that arrive in an unexpected shape) is wrapped in
<untrusted-content source="workday">envelopes so the model treats them as data, not instructions; keys inside vendor-shaped sub-objects are enveloped too.idandhrefstay raw so they can be passed back into later tool calls. - Strict pagination.
limitmust be an integer 1-100 andoffseta non-negative integer; out-of-range or fractional values are rejected rather than silently clamped.worker_idarguments must be non-blank. - Bounded errors & no redirect following. API and token errors return connector-authored messages (never raw vendor error bodies), and HTTP redirects are refused rather than followed, so credentials can never be replayed to a redirect target. The configured host is validated against loopback/private ranges (including non-canonical IP spellings and IPv6 forms) and re-resolved via DNS before credentials are sent.
- ISU security domains. Workday gates each REST family behind Integration System User domain permissions; a 403 from
list_workday_time_off,list_workday_job_requisitions, orlist_workday_jobsmeans the ISU's security group needs the corresponding domain (Absence Management, Recruiting, Payroll).
Licence
FSL-1.1-MIT — Functional Source License, Version 1.1, with MIT future licence. The software converts to MIT licence on 2030-04-08.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.