Skip to main content
Glama
andrew-price-huron

workday-studio-mcp

Workday Studio MCP

A local MCP (Model Context Protocol) server that gives Claude direct access to your Workday Studio workspace. Read, write, plan, and validate integration assemblies without copy-pasting XML back and forth.

Everything runs locally on your machine — no network calls, no tenant credentials, no shared state. The server only sees the Studio Workspace folder you point it at.


What you get

20 tools across these categories:

Category

What it does

Navigation

list_studio_projects, list_project_files, read_integration_file, search_studio_files, get_workspace_structure

File management

write_integration_file, copy_file_from_project, rename_file, delete_file, validate_xml_file

Project setup

create_studio_project, create_xsl_transform

Assembly editing

list_assembly_steps, list_integration_params, add_assembly_step, update_sub_flow, validate_assembly

Planning

plan_integration — design elicitation + skeleton generator

Reference

get_step_type_reference — confirmed step type docs with production XML examples

Diagnostics

parse_server_log — parse a Workday integration server log from ~/Downloads

A growing knowledge base lives at docs/studio-integration-patterns.md — hard-won lessons captured from real Studio debugging sessions.


Related MCP server: vulcan-file-ops

Quick install

One line:

curl -fsSL https://raw.githubusercontent.com/andrew-price-huron/workday-studio-mcp/main/bin/quickstart.sh | bash

This clones the repo to ~/workday-studio-mcp, installs dependencies, and prints the exact claude mcp add command for your machine.

Or do it manually — see Manual setup below.


Prerequisites

  • Node.js 18+ — check with node --version

  • Workday Studio installed with at least one project in your workspace

  • Claude Desktop or Claude Code (CLI) — both work


Manual setup

1. Clone and install

git clone https://github.com/andrew-price-huron/workday-studio-mcp.git
cd workday-studio-mcp
npm install

2. Configure your workspace path

copy config.json.example config.json

Open config.json and set workspace_path to the folder containing your Studio projects (the same one Eclipse opens). On a typical Huron Windows machine this looks like:

{
  "workspace_path": "C:\\Users\\yourname\\studio-workspace",
  "max_file_size_kb": 500,
  "backup_on_write": true,
  "excluded_dirs": [".git", ".settings", "bin", "build", "node_modules", ".metadata", ".plugins"],
  "excluded_extensions": [".class", ".jar", ".zip", ".bak"]
}

Or skip config.json entirely and set an environment variable in PowerShell:

$env:STUDIO_WORKSPACE_PATH = "C:\Users\yourname\studio-workspace"

3. Verify it starts

node src/index.mjs

You should see:

[studio-mcp] Server started. Workspace: C:\Users\yourname\studio-workspace

Press Ctrl+C to stop — Claude will spawn it on demand.


Connect to Claude

Option A — Claude Code (CLI)

claude mcp add studio-mcp node C:\Users\yourname\workday-studio-mcp\src\index.mjs

Confirm:

claude mcp list

Option B — Claude Desktop

Edit %APPDATA%\Claude\claude_desktop_config.json and add inside mcpServers:

{
  "mcpServers": {
    "studio-mcp": {
      "command": "node",
      "args": ["C:\\Users\\yourname\\workday-studio-mcp\\src\\index.mjs"]
    }
  }
}

Save and restart Claude Desktop.

Tip: Run where.exe node in PowerShell to get your full node path if Claude can't find it.


Use it

List projects

"List my Studio projects"

Read a file

"Read the assembly.xml from INT145"

Plan a new integration

"I need to build a new integration"

Claude asks design questions (data source, destination, trigger, record volume, auth, error handling) before generating anything. Then it writes a skeleton assembly.xml + assembly-diagram.xml you can open in Studio immediately.

Fill in a sub-flow

"Fill in the GetWorkers sub-flow — here's the RAAS sample: [paste XML]"

update_sub_flow surgically replaces the TODO stub with real steps and validates the result.

Search across integrations

"Find all uses of integrationMapLookup"

Validate

"Validate the assembly for INT145"

Returns errors (broken routes, illegal comments, missing attributes) and warnings (missing XSL files, unresolved sub-flow endpoints).

Look up a step type

"Show me the cc:http-out reference"

Returns confirmed XML examples, schema rules, and gotchas.

Parse a server log

After downloading a server-{wid}.log from Workday (View Integration Events → expand documents → click the server-*.log):

"Parse my latest server log"

Returns structured timeline, unique errors, and XSLT messages. The parser auto-finds the most recent server-*.log in ~/Downloads.


Project structure

Workday-studio-mcp/
├── src/
│   ├── index.mjs               # Entry — registers tools, starts server
│   ├── config.mjs              # Loads workspace path
│   ├── fs.mjs                  # FS helpers + path traversal protection
│   ├── xml.mjs                 # XML validation wrapper
│   ├── assembly-validator.mjs  # Studio-specific assembly rules
│   └── tools/
│       ├── list-projects.mjs
│       ├── list-files.mjs
│       ├── read-file.mjs
│       ├── write-file.mjs
│       ├── search-files.mjs
│       ├── workspace-tree.mjs
│       ├── validate-xml.mjs
│       ├── create-project.mjs
│       ├── list-assembly-steps.mjs
│       ├── list-integration-params.mjs
│       ├── add-assembly-step.mjs
│       ├── create-xsl-transform.mjs
│       ├── copy-file-from-project.mjs
│       ├── rename-file.mjs
│       ├── delete-file.mjs
│       ├── get-step-type-reference.mjs   # Step type docs
│       ├── plan-integration.mjs          # Design elicitation
│       ├── update-sub-flow.mjs           # Surgical sub-flow replacement
│       ├── validate-assembly.mjs         # Studio rules engine
│       └── parse-server-log.mjs          # Local log parser
├── docs/
│   └── studio-integration-patterns.md    # Shared knowledge base
├── bin/
│   ├── install.sh
│   └── quickstart.sh
├── config.json.example
├── CLAUDE.md                   # Instructions for Claude when working in this repo
├── package.json
└── .gitignore

Security

  • The server only sees files inside your configured workspace_path — path traversal attempts are blocked.

  • No credentials, API keys, or Workday tenant details are stored or transmitted.

  • config.json (which contains your local workspace path) is gitignored.

  • The server runs over stdio — no network ports are opened.


Contributing patterns back

When you discover a new Studio quirk, schema rule, or assembly pattern, add it to docs/studio-integration-patterns.md and open a PR. See CLAUDE.md for guidance on what kinds of learnings belong there. The goal is a collective memory across the team — every debugging session that finds a new gotcha makes the next one cheaper.


Troubleshooting

workspace_path not configured Run cp config.json.example config.json and set the path.

Workspace path does not exist Check the path in config.json matches your Studio workspace folder.

Tools don't appear in Claude Ensure the path in your Claude config is absolute, not relative. Restart Claude Desktop after editing.

node: command not found in Claude Use the full node path:

where.exe node

Then use that full path (e.g. C:\Program Files\nodejs\node.exe) in your Claude config.


License

MIT

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/andrew-price-huron/workday-studio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server