From 330338cbb81d1b77367f6e3ccb8342080b14ebae Mon Sep 17 00:00:00 2001 From: nathan Date: Fri, 3 Apr 2026 09:58:08 -0400 Subject: [PATCH] feat(workday): implement structured worker status tool (WIS-007, WIS-009) --- Workday/workday-mcp/server.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Workday/workday-mcp/server.py diff --git a/Workday/workday-mcp/server.py b/Workday/workday-mcp/server.py new file mode 100644 index 0000000..8a92479 --- /dev/null +++ b/Workday/workday-mcp/server.py @@ -0,0 +1,34 @@ +from mcp.server.fastmcp import FastMCP + +# This stays the same - it's your server's identity +mcp = FastMCP("Workday-Sync") + +@mcp.tool() +def get_worker_status(employee_id: str) -> dict: + """ + WIS-009: Fetch structured worker status. + This replaces the previous string-based version. + """ + # 1. Mock Database (WIS-007) + mock_workers = { + "EMP001": {"name": "Nathan", "status": "Active", "dept": "IT", "email": "nathan@example.com"}, + "EMP002": {"name": "Terminated User", "status": "Terminated", "dept": "Sales", "email": "user2@example.com"} + } + + # 2. Logic + worker = mock_workers.get(employee_id.upper()) + + # 3. Structured Return (WIS-004 Allowlist) + if worker: + return { + "employee_id": employee_id.upper(), + "full_name": worker["name"], + "status": worker["status"], + "department": worker["dept"], + "work_email": worker["email"] + } + + return {"error": f"Worker {employee_id} not found."} + +if __name__ == "__main__": + mcp.run() \ No newline at end of file