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

workday-mcp

v0.6.1

Published

Workday MCP server for Claude — developed and maintained by AI (Claude Code)

Readme

workday-mcp

Read-only MCP server for Workday. Reads your Workday org chart, worker profiles, pay, benefits, performance, and any task or data card, and returns them as structured JSON. Every request routes through your own signed-in *.myworkday.com tab via the fetchproxy browser extension, reusing your existing SSO-authenticated session.

⚠️ Workday gives employees no personal API. This server reads the same internal *.htmld endpoints the Workday web app calls, dispatched through your own signed-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 register an OAuth API client + Integration System User — an employee can't self-provision it. Tenants also sit behind corporate SSO (Ping/Okta/Entra) with MFA, so there's no server-side login. The only surface an employee can reach for their own data is 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_open_app | Open an app by name ("Talent and Performance", "Absence") and follow it down to the child cards holding its real content | | 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 | | workday_get_org_chart | Your reporting chain — each person with title, location, report count, and a profileUri to drill into | | workday_get_worker | A worker's profile: the catalog of everything readable about them (9 sections, ~40 named tasks) | | workday_get_worker_task | Open one named item from that catalog — "Compensation", "Performance Reviews", "Management Chain" | | workday_get_my_profile | The same catalog, for yourself | | workday_fetch | Raw .htmld read with secrets redacted — the escape hatch for pages the parser doesn't model yet | | workday_graphql | Read-only GraphQL against Workday's PEX surface (mutations refused). The only route to Inbox / search | | workday_healthcheck | Verify the bridge + session end-to-end with an actionable hint |

The parser understands seven Workday page families — data cards, grids (real tables, with chunking and export links), form-style detail pages, worker profiles, org charts, app hubs, and report prompt forms — and labels each page with its kind. See docs/WORKDAY-API.md.

Manager quick start

workday_get_org_chart                                   → who reports where, with profileUris
workday_get_worker         { worker: "<profileUri>" }   → that person's full catalog
workday_get_worker_task    { worker: "…", task: "Compensation" }
workday_open_app           { app: "talent" }            → a whole app hub, crawled

All ids are discovered at runtime from your own app menu and org chart — nothing tenant-specific is hardcoded, so this works on any Workday tenant.

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; see docs/WORKDAY-API.md for the captured endpoint shapes and schema. License: MIT.