naftiko: 1.0.0-alpha2 info: label: WTW Employee Experience description: Workflow capability for HR teams and employees using the WTW HR Portal. Combines employee profile management, total rewards communication, benefits enrollment tracking, HR content delivery, and case management to create a unified digital HR experience. tags: - Human Resources - Employee Experience - Benefits - Total Rewards - HR Technology created: '2026-05-03' modified: '2026-05-06' binds: - namespace: env keys: WTW_HR_PORTAL_TOKEN: WTW_HR_PORTAL_TOKEN capability: consumes: - type: http namespace: wtw-hr-portal baseUri: https://api.wtwco.com/hrportal/v1 description: WTW HR Portal API for employee experience management authentication: type: bearer token: '{{WTW_HR_PORTAL_TOKEN}}' resources: - name: employees path: /employees description: Employee profile management operations: - name: list-employees method: GET description: List all employees in the HR portal inputParameters: - name: department in: query type: string required: false description: Filter by department - name: status in: query type: string required: false description: Filter by employment status - name: page in: query type: integer required: false description: Page number outputRawFormat: json outputParameters: - name: result type: object value: $. - name: employee path: /employees/{employeeId} description: Individual employee operations: - name: get-employee method: GET description: Get HR portal profile for an employee inputParameters: - name: employeeId in: path type: string required: true description: Employee identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: total-rewards path: /employees/{employeeId}/total-rewards description: Employee total rewards statement operations: - name: get-employee-total-rewards method: GET description: Get total compensation and rewards statement inputParameters: - name: employeeId in: path type: string required: true description: Employee identifier - name: year in: query type: integer required: false description: Plan year outputRawFormat: json outputParameters: - name: result type: object value: $. - name: employee-benefits path: /employees/{employeeId}/benefits description: Employee benefits enrollment operations: - name: get-employee-benefits method: GET description: Get benefits enrollment summary for an employee inputParameters: - name: employeeId in: path type: string required: true description: Employee identifier - name: planYear in: query type: integer required: false description: Benefits plan year outputRawFormat: json outputParameters: - name: result type: object value: $. - name: content path: /content description: HR content management operations: - name: list-content method: GET description: List HR content and communications inputParameters: - name: type in: query type: string required: false description: Content type filter - name: audience in: query type: string required: false description: Target audience filter outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-content method: POST description: Create a new HR content item outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: title: '{{tools.title}}' type: '{{tools.type}}' body: '{{tools.body}}' audience: '{{tools.audience}}' - name: cases path: /cases description: HR service case management operations: - name: list-cases method: GET description: List HR service cases inputParameters: - name: status in: query type: string required: false description: Filter by status - name: category in: query type: string required: false description: Filter by category outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-case method: POST description: Submit a new HR service case outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: employeeId: '{{tools.employeeId}}' category: '{{tools.category}}' subject: '{{tools.subject}}' description: '{{tools.description}}' - name: case path: /cases/{caseId} description: Individual case operations: - name: get-case method: GET description: Get an HR service case inputParameters: - name: caseId in: path type: string required: true description: Case identifier outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: wtw-employee-api description: Unified REST API for WTW employee digital experience management. resources: - path: /v1/employees name: employees description: Employee management operations: - method: GET name: list-employees description: List all employees call: wtw-hr-portal.list-employees outputParameters: - type: object mapping: $. - path: /v1/employees/{employeeId} name: employee description: Individual employee operations: - method: GET name: get-employee description: Get employee profile call: wtw-hr-portal.get-employee with: employeeId: rest.employeeId outputParameters: - type: object mapping: $. - path: /v1/employees/{employeeId}/total-rewards name: total-rewards description: Total compensation and rewards operations: - method: GET name: get-employee-total-rewards description: Get total rewards statement call: wtw-hr-portal.get-employee-total-rewards with: employeeId: rest.employeeId outputParameters: - type: object mapping: $. - path: /v1/employees/{employeeId}/benefits name: employee-benefits description: Employee benefits enrollment operations: - method: GET name: get-employee-benefits description: Get benefits summary call: wtw-hr-portal.get-employee-benefits with: employeeId: rest.employeeId outputParameters: - type: object mapping: $. - path: /v1/content name: content description: HR content and communications operations: - method: GET name: list-content description: List HR content call: wtw-hr-portal.list-content outputParameters: - type: object mapping: $. - method: POST name: create-content description: Create HR content call: wtw-hr-portal.create-content outputParameters: - type: object mapping: $. - path: /v1/cases name: cases description: HR service cases operations: - method: GET name: list-cases description: List HR cases call: wtw-hr-portal.list-cases outputParameters: - type: object mapping: $. - method: POST name: create-case description: Create a new case call: wtw-hr-portal.create-case outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: wtw-employee-mcp transport: http description: MCP server for AI-assisted WTW HR employee experience workflows. tools: - name: list-employees description: List all employees in the HR portal with optional department and status filters hints: readOnly: true openWorld: true call: wtw-hr-portal.list-employees outputParameters: - type: object mapping: $. - name: get-employee description: Get HR portal profile for a specific employee hints: readOnly: true idempotent: true call: wtw-hr-portal.get-employee with: employeeId: tools.employeeId outputParameters: - type: object mapping: $. - name: get-total-rewards description: Get total compensation and rewards statement for an employee hints: readOnly: true idempotent: true call: wtw-hr-portal.get-employee-total-rewards with: employeeId: tools.employeeId outputParameters: - type: object mapping: $. - name: get-benefits-enrollment description: Get current benefits enrollment summary for an employee hints: readOnly: true idempotent: true call: wtw-hr-portal.get-employee-benefits with: employeeId: tools.employeeId outputParameters: - type: object mapping: $. - name: list-hr-content description: List HR content articles, announcements, and policies hints: readOnly: true openWorld: true call: wtw-hr-portal.list-content outputParameters: - type: object mapping: $. - name: publish-hr-content description: Create and publish a new HR content item or announcement hints: readOnly: false call: wtw-hr-portal.create-content outputParameters: - type: object mapping: $. - name: list-hr-cases description: List HR service cases with optional status and category filters hints: readOnly: true openWorld: true call: wtw-hr-portal.list-cases outputParameters: - type: object mapping: $. - name: submit-hr-case description: Submit a new HR service case or employee inquiry hints: readOnly: false call: wtw-hr-portal.create-case outputParameters: - type: object mapping: $. - name: get-hr-case description: Get details and status for a specific HR service case hints: readOnly: true idempotent: true call: wtw-hr-portal.get-case with: caseId: tools.caseId outputParameters: - type: object mapping: $.