5.7 KiB
5.7 KiB
title, description, type, version, author, date
| title | description | type | version | author | date |
|---|---|---|---|---|---|
| Workday MCP — implementation and auth plan | Execution plan to build a read-only Workday MCP server using the proven Identity MCP pattern. | Implementation Plan | v1 | N. Castaldi | 2026-03-11 |
Objective
Build a read-only Workday MCP server by reusing the implementation pattern that succeeded in the Identity MCP server, while replacing the AD/PowerShell adapter with a Workday REST/OAuth adapter.
Scope for first release
Included:
- Read-only tools only:
- workday.getWorker(identifier)
- workday.getWorkerStatus(identifier)
- workday.getWorkerOrgAttributes(identifier)
- workday.getWorkerManager(identifier)
- workday.getWorkerEffectiveDates(identifier)
- Workday MCP project scaffolding equivalent to the Identity MCP structure
- In-memory backend for local contract testing
- API backend for Workday REST integration
- Unit tests and integration smoke tests
- Logging and audit controls
Excluded:
- Any write actions to Workday
- Any HR transaction support
- Ticketing automation from Workday MCP
- Correlation/remediation execution logic beyond read-only outputs
Current decisions captured
- API family for v1: REST only
- Security model: least privilege, read-only field scope
- Deployment model: phased rollout aligned to existing Workday install guide
- Architecture pattern: dual backend (
memorydefault,apiproduction)
Build plan (execution sequence)
- Clone the Identity MCP skeleton into Workday equivalents.
- Create Workday backend contract with five async tool methods.
- Implement in-memory backend with safe sample worker payloads.
- Implement FastMCP server entrypoint and tool wrappers.
- Implement Workday REST adapter with OAuth token handling.
- Add config and secret-loading contract.
- Add adapter unit tests with mocked HTTP/token responses.
- Add non-prod integration smoke tests for end-to-end validation.
- Validate output schema allowlist and excluded fields.
- Publish runbook updates and final verification checklist.
Files to create for parity with Identity MCP
- workday_mcp_server.py
- workday_backend.py
- workday_adapter.py
- debug_workday_connectivity.py
- pyproject.toml
- .gitignore
- tests/test_workday_adapter.py
- tests/test_integration.py
Authentication implementation requirements
- Use Workday REST API with OAuth 2.0 for API calls.
- Use a dedicated Integration System User (ISU) for MCP access.
- Register and manage a dedicated Workday API client for this service.
- Restrict security group and domain permissions to approved read-only fields.
- Keep separate credentials and client configuration for non-production and production.
- Store client secret/token material in approved secret storage, never in code.
- Enforce token refresh, timeout, retry, and rate-limit handling in adapter logic.
Data to gather (required before build proceeds)
A. Workday auth and tenant details
- Tenant name(s) for non-production and production
- Base API host URL(s)
- Approved OAuth grant type for this integration
- Token endpoint details and expected token lifetime
- Refresh token policy and rotation requirements
B. Identity and access control details
- ISU account name and owner
- Integration security group name
- Exact domain permissions approved for read-only use
- Explicit list of denied domains/fields
C. Endpoint and schema contract
- Exact Workday REST endpoints for each of the 5 tools
- Required request parameters and lookup identifiers
- Expected success payload shape per endpoint
- Error payload examples for 401/403/404/429/5xx
D. Operations and observability
- Required logging sink and retention policy
- Required audit fields per MCP invocation
- Retry/backoff thresholds and timeout limits
- Rate-limit constraints provided by tenant admins
Current blockers
- OAuth grant type is not finalized.
- Ownership for credential and security-group provisioning is not assigned.
- Non-production Workday tenant/sandbox access is not yet available.
- Exact endpoint-to-tool mapping is not finalized.
- Approved field allowlist and denylist are not yet locked to testable schema contracts.
Dedicated next steps
- Assign owner for Workday auth provisioning (HRIS or IAM/Security) and confirm accountable approver.
- Finalize OAuth grant type and token lifecycle policy in a short design decision record.
- Provision non-production tenant access and generate non-prod API client credentials.
- Confirm ISU + security group + domain permissions for read-only scope.
- Produce endpoint mapping table (tool -> endpoint -> fields -> error contract).
- Create initial Workday project scaffold and run server in memory mode.
- Implement adapter token flow and one tool end-to-end in non-prod.
- Expand to all five tools and complete unit plus integration test gates.
- Validate logs and outputs for secret safety and field-scope compliance.
- Update install guide with exact run/test commands once implementation is proven.
Verification checklist
- All blocker items are resolved and documented.
- Server starts in memory mode and API mode.
- All five tools return only approved fields.
- Unit tests pass with mocked auth and API error scenarios.
- Integration tests pass against non-production tenant.
- No secrets appear in logs.
- Audit logs capture tool name, parameters, timestamp, and result status.