workday-mcp-server

joelee17/workday-mcp-server

3.1

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.

Tools
10
Resources
0
Prompts
0

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 ID
  • list_users - List all users
  • get_project - Get project information by ID
  • list_projects - List all projects
  • create_user - Create a new user

Resources

  • users://list - Complete list of all users
  • projects://list - Complete list of all projects

Installation

  1. Install dependencies:
npm install
  1. Build the TypeScript code:
npm run build
  1. 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

  1. List all users:
{
  "name": "list_users",
  "arguments": {}
}
  1. Get a specific user:
{
  "name": "get_user",
  "arguments": {
    "id": 1
  }
}
  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

  1. get_workday_worker

    • Description: Get worker information from Workday API using worker ID
    • Parameters: workerId (string) - Worker ID in Workday system
  2. search_workday_workers

    • Description: Search for workers in Workday by name or other criteria
    • Parameters: searchTerm (string) - Search term like name, department, etc.
  3. list_workers

    • Description: List all workers
    • Parameters: limit (number) - Number of workers to list
  4. 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

  1. get_weather

    • Description: Get current weather and forecast for a specific city
    • Parameters: city (string) - City name
  2. 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:

API Endpoints Used

  • Workers: /api/staffing/v6/{tenant}/workers
  • Payroll Inputs: /ccx/api/payroll/v2/{tenant}/payrollInputs