From aa7238889e5887e6ff6b9b7905ef0351bcbe8dc5 Mon Sep 17 00:00:00 2001 From: nathan Date: Fri, 3 Apr 2026 11:54:40 -0400 Subject: [PATCH] refactor(workday): finalize modular structure and verify triple-tool suite (WIS-011, WIS-020) --- Workday/workday-mcp/lib/__init__.py | 0 Workday/workday-mcp/lib/data.py | 69 +++++++++++++++++++++++++++ Workday/workday-mcp/server.py | 72 +---------------------------- 3 files changed, 71 insertions(+), 70 deletions(-) create mode 100644 Workday/workday-mcp/lib/__init__.py create mode 100644 Workday/workday-mcp/lib/data.py diff --git a/Workday/workday-mcp/lib/__init__.py b/Workday/workday-mcp/lib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Workday/workday-mcp/lib/data.py b/Workday/workday-mcp/lib/data.py new file mode 100644 index 0000000..87ae040 --- /dev/null +++ b/Workday/workday-mcp/lib/data.py @@ -0,0 +1,69 @@ +from typing import Any + +# Mock dataset with reporting-line relationships for manager checks (WIS-017 prep) +MOCK_WORKERS: dict[str, dict[str, Any]] = { + "EMP001": { + "name": "Nathan", + "status": "Active", + "dept": "IT", + "email": "nathan@example.com", + "manager_id": "EMP010", + }, + "EMP002": { + "name": "Terminated User", + "status": "Terminated", + "dept": "Sales", + "email": "user2@example.com", + "manager_id": "EMP020", + }, + "EMP003": { + "name": "Alicia", + "status": "Active", + "dept": "IT", + "email": "alicia@example.com", + "manager_id": "EMP010", + }, + "EMP004": { + "name": "Jordan", + "status": "Leave", + "dept": "Finance", + "email": "jordan@example.com", + "manager_id": "EMP030", + }, + "EMP010": { + "name": "Priya Manager", + "status": "Active", + "dept": "IT", + "email": "priya@example.com", + "manager_id": "EMP100", + }, + "EMP020": { + "name": "Ramon Director", + "status": "Active", + "dept": "Sales", + "email": "ramon@example.com", + "manager_id": "EMP100", + }, + "EMP030": { + "name": "Morgan Lead", + "status": "Active", + "dept": "Finance", + "email": "morgan@example.com", + "manager_id": "EMP100", + }, + "EMP100": { + "name": "Chief Exec", + "status": "Active", + "dept": "Executive", + "email": "ceo@example.com", + "manager_id": "", + }, + # Intentional unresolved manager reference for mismatch test scenarios + "EMP777": { + "name": "Mismatch Case", + "status": "Active", + "dept": "Operations", + "email": "mismatch@example.com", + "manager_id": "EMP999", + }, +} \ No newline at end of file diff --git a/Workday/workday-mcp/server.py b/Workday/workday-mcp/server.py index 416aeee..f33d68b 100644 --- a/Workday/workday-mcp/server.py +++ b/Workday/workday-mcp/server.py @@ -1,76 +1,8 @@ from mcp.server.fastmcp import FastMCP from typing import Any +from lib.data import MOCK_WORKERS -# This stays the same - it's your server's identity -mcp = FastMCP("Workday-Sync") - -# Mock dataset with reporting-line relationships for manager checks (WIS-017 prep) -MOCK_WORKERS: dict[str, dict[str, str]] = { - "EMP001": { - "name": "Nathan", - "status": "Active", - "dept": "IT", - "email": "nathan@example.com", - "manager_id": "EMP010", - }, - "EMP002": { - "name": "Terminated User", - "status": "Terminated", - "dept": "Sales", - "email": "user2@example.com", - "manager_id": "EMP020", - }, - "EMP003": { - "name": "Alicia", - "status": "Active", - "dept": "IT", - "email": "alicia@example.com", - "manager_id": "EMP010", - }, - "EMP004": { - "name": "Jordan", - "status": "Leave", - "dept": "Finance", - "email": "jordan@example.com", - "manager_id": "EMP030", - }, - "EMP010": { - "name": "Priya Manager", - "status": "Active", - "dept": "IT", - "email": "priya@example.com", - "manager_id": "EMP100", - }, - "EMP020": { - "name": "Ramon Director", - "status": "Active", - "dept": "Sales", - "email": "ramon@example.com", - "manager_id": "EMP100", - }, - "EMP030": { - "name": "Morgan Lead", - "status": "Active", - "dept": "Finance", - "email": "morgan@example.com", - "manager_id": "EMP100", - }, - "EMP100": { - "name": "Chief Exec", - "status": "Active", - "dept": "Executive", - "email": "ceo@example.com", - "manager_id": "", - }, - # Intentional unresolved manager reference for mismatch test scenarios - "EMP777": { - "name": "Mismatch Case", - "status": "Active", - "dept": "Operations", - "email": "mismatch@example.com", - "manager_id": "EMP999", - }, -} +mcp = FastMCP("Workday-Sync") #Server name for MCP registration, e.g. "Workday-Sync" @mcp.tool() def get_worker_status(employee_id: str) -> dict[str, Any]: