{
  "markdown": "# workday-mcp\n\nRead-only MCP server for [Workday](https://www.workday.com/). Reads your\nWorkday org chart, worker profiles, pay, benefits, performance, and any task or\ndata card, and returns them as structured JSON. Every request routes through your own signed-in\n`*.myworkday.com` tab via the [fetchproxy](https://github.com/chrischall/fetchproxy)\nbrowser extension, reusing your existing SSO-authenticated session.\n\n> ⚠️ Workday gives employees no personal API. This server reads the same internal\n> `*.htmld` endpoints the Workday web app calls, dispatched through your own\n> signed-in browser tab. It is **read-only** and touches only your own data.\n> Check your employer's acceptable-use policy. Use at your own discretion.\n>\n> 🤖 This project was developed and is maintained by AI (Claude Code).\n\n## Why a bridge instead of the official API?\n\nThe official Workday REST/SOAP API requires a tenant administrator to register\nan OAuth API client + Integration System User — an employee can't self-provision\nit. Tenants also sit behind corporate SSO (Ping/Okta/Entra) with MFA, so there's\nno server-side login. The only surface an employee can reach for their own data\nis their **live browser session**, which is what this server relays.\n\n## Install\n\nSee [SKILL.md](./skills/workday-mcp/SKILL.md) for full setup. In brief:\n\n```json\n{\n  \"mcpServers\": {\n    \"workday\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"workday-mcp\"],\n      \"env\": { \"WORKDAY_TENANT\": \"your-tenant-slug\" }\n    }\n  }\n}\n```\n\nThen install the fetchproxy extension and sign into Workday in your browser.\n\n## Tools\n\n| Tool | What it does |\n| --- | --- |\n| `workday_get_apps` | List your Workday apps with launchable task ids — the discovery entry point |\n| `workday_open_app` | Open an app **by name** (\"Talent and Performance\", \"Absence\") and follow it down to the child cards holding its real content |\n| `workday_get_task` | Read any task/data card by id or path → fields, full table rows, references, related tasks, export links. `expand: true` crawls hub pages |\n| `workday_get_org_chart` | Your reporting chain — each person with title, location, report count, and a `profileUri` to drill into |\n| `workday_get_worker` | A worker's profile: the **catalog** of everything readable about them (9 sections, ~40 named tasks) |\n| `workday_get_worker_task` | Open one named item from that catalog — \"Compensation\", \"Performance Reviews\", \"Management Chain\" |\n| `workday_get_my_profile` | The same catalog, for yourself |\n| `workday_fetch` | Raw `.htmld` read with secrets redacted — the escape hatch for pages the parser doesn't model yet |\n| `workday_graphql` | Read-only GraphQL against Workday's PEX surface (mutations refused). The only route to Inbox / search |\n| `workday_healthcheck` | Verify the bridge + session end-to-end with an actionable hint |\n\nThe parser understands seven Workday page families — data cards, **grids**\n(real tables, with chunking and export links), form-style detail pages, worker\nprofiles, org charts, app hubs, and report prompt forms — and labels each page\nwith its `kind`. See [docs/WORKDAY-API.md](./docs/WORKDAY-API.md).\n\n### Manager quick start\n\n```\nworkday_get_org_chart                                   → who reports where, with profileUris\nworkday_get_worker         { worker: \"<profileUri>\" }   → that person's full catalog\nworkday_get_worker_task    { worker: \"…\", task: \"Compensation\" }\nworkday_open_app           { app: \"talent\" }            → a whole app hub, crawled\n```\n\nAll ids are discovered at runtime from your own app menu and org chart — nothing\ntenant-specific is hardcoded, so this works on any Workday tenant.\n\n## Development\n\n```bash\nnpm install\nnpm test          # vitest\nnpm run build     # tsc --noEmit + esbuild bundle → dist/bundle.js\n```\n\nThe widget-tree parser (`src/parse.ts`) is the durable core; see\n[docs/WORKDAY-API.md](./docs/WORKDAY-API.md) for the captured endpoint shapes and\nschema. License: MIT.\n",
  "bytes": 3948,
  "sha": "91d6fa9795122efc59e446f7c4cd67ba74eaa9629b1d0480c06a719d6fbccabe",
  "repo_slug": "chrischall/workday-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_chrischall_workday_mcp_67882eca/readme"
}