joelee17/workday-mcp-server
If you are the rightful owner of workday-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A Model Context Protocol (MCP) server that provides tools and resources for managing users and projects.
MCP Server
A Model Context Protocol (MCP) server that provides tools and resources for managing users and projects.
Features
Tools
get_user- Get user information by IDlist_users- List all usersget_project- Get project information by IDlist_projects- List all projectscreate_user- Create a new user
Resources
users://list- Complete list of all usersprojects://list- Complete list of all projects
Installation
- Install dependencies:
npm install
- Build the TypeScript code:
npm run build
- Start the server:
npm start
Development
Run in development mode with automatic rebuilding:
npm run dev
Usage
This MCP server runs on stdio transport. It can be integrated with MCP-compatible clients like Claude Desktop or other applications that support the Model Context Protocol.
Example Tool Calls
- List all users:
{
"name": "list_users",
"arguments": {}
}
- Get a specific user:
{
"name": "get_user",
"arguments": {
"id": 1
}
}
- Create a new user:
{
"name": "create_user",
"arguments": {
"name": "David",
"email": "david@example.com"
}
}
Example Resource Access
Access the users resource:
uri: users://list
Access the projects resource:
uri: projects://list
Configuration
The server currently uses sample data stored in memory. You can modify the sampleData object in src/index.ts to customize the data or integrate with a real database.
Architecture
- Built with TypeScript
- Uses the official MCP SDK (
@modelcontextprotocol/sdk) - Supports both tools (function calls) and resources (data access)
- Runs on stdio transport for easy integration
License
MIT
Available Tools
Workday Tools
-
get_workday_worker
- Description: Get worker information from Workday API using worker ID
- Parameters: workerId (string) - Worker ID in Workday system
-
search_workday_workers
- Description: Search for workers in Workday by name or other criteria
- Parameters: searchTerm (string) - Search term like name, department, etc.
-
list_workers
- Description: List all workers
- Parameters: limit (number) - Number of workers to list
-
create_one_time_payment ✨ NEW
- Description: Create a one-time payroll input/payment for a worker in Workday
- Parameters:
- workerId (string, required) - Worker ID in Workday system
- payComponentId (string, required) - Pay Component ID for the payment type
- startDate (string, required) - Start date in YYYY-MM-DD format
- endDate (string, required) - End date in YYYY-MM-DD format
- amount (number, required) - Payment amount
- positionId (string, optional) - Position ID if required by pay component
- currency (string, optional) - Currency code (defaults to pay group currency)
- comment (string, optional) - Optional comment for the payment
- runCategories (array, optional) - Run category IDs
- worktags (array, optional) - Worktag IDs for cost allocation
Example Usage
// Create a one-time bonus payment
{
"workerId": "21001",
"payComponentId": "BONUS",
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"amount": 1000.00,
"comment": "Q4 Performance Bonus",
"currency": "USD"
}
Other Tools
-
get_weather
- Description: Get current weather and forecast for a specific city
- Parameters: city (string) - City name
-
get_user, list_users, get_project, list_projects, create_user
- Description: Sample CRUD operations for demonstration
Configuration
The Workday tools require the following environment variables:
WORKDAY_BEARER_TOKEN: Your Workday API bearer tokenWORKDAY_BASE_URL: Your Workday tenant base URL (e.g., https://wcpdev-services1.wd101.myworkday.com)WORKDAY_TENANT: Your Workday tenant ID (e.g., wday_wcpdev11)
API Endpoints Used
- Workers:
/api/staffing/v6/{tenant}/workers - Payroll Inputs:
/ccx/api/payroll/v2/{tenant}/payrollInputs