workday-mcp
Read-only MCP server for Workday. Fetches yourWorkday tasks and data cards — pay, benefits, compensation — and returns them asstructured JSON. Every request routes through your own signed-in*.myworkday.com tab via the fetchproxybrowser extension, reusing your existing SSO-authenticated session.
⚠️ Workday gives employees no personal API. This server reads the same internal
*.htmldendpoints the Workday web app calls, dispatched through your ownsigned-in browser tab. It is read-only and touches only your own data.Check your employer's acceptable-use policy. Use at your own discretion.🤖 This project was developed and is maintained by AI (Claude Code).
Why a bridge instead of the official API?
The official Workday REST/SOAP API requires a tenant administrator to registeran OAuth API client + Integration System User — an employee can't self-provisionit. Tenants also sit behind corporate SSO (Ping/Okta/Entra) with MFA, so there'sno server-side login. The only surface an employee can reach for their own datais their live browser session, which is what this server relays.
Install
See SKILL.md for full setup. In brief:
{
"mcpServers": {
"workday": {
"command": "npx",
"args": ["-y", "workday-mcp"],
"env": { "WORKDAY_TENANT": "your-tenant-slug" }
}
}
}
Then install the fetchproxy extension and sign into Workday in your browser.
Tools
| Tool | What it does |
|---|---|
workday_get_apps |
List your Workday apps with launchable task ids — the discovery entry point |
workday_get_task |
Read a Workday task/data card by task id or path → title, fields, references, related tasks, export links |
workday_healthcheck |
Verify the bridge + session end-to-end with an actionable hint |
Development
npm install
npm test # vitest
npm run build # tsc --noEmit + esbuild bundle → dist/bundle.js
The widget-tree parser (src/parse.ts) is the durable core; seedocs/WORKDAY-API.md for the captured endpoint shapes andschema. License: MIT.