workday-studio-mcp-server 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +258 -258
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +22 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/tools/add-assembly-step.d.ts +7 -0
  7. package/dist/tools/add-assembly-step.d.ts.map +1 -0
  8. package/dist/tools/add-assembly-step.js +130 -0
  9. package/dist/tools/add-assembly-step.js.map +1 -0
  10. package/dist/tools/create-project.d.ts +3 -0
  11. package/dist/tools/create-project.d.ts.map +1 -0
  12. package/dist/tools/create-project.js +262 -0
  13. package/dist/tools/create-project.js.map +1 -0
  14. package/dist/tools/create-xsl-transform.d.ts +6 -0
  15. package/dist/tools/create-xsl-transform.d.ts.map +1 -0
  16. package/dist/tools/create-xsl-transform.js +103 -0
  17. package/dist/tools/create-xsl-transform.js.map +1 -0
  18. package/dist/tools/get-step-type-reference.d.ts +6 -0
  19. package/dist/tools/get-step-type-reference.d.ts.map +1 -0
  20. package/dist/tools/get-step-type-reference.js +387 -0
  21. package/dist/tools/get-step-type-reference.js.map +1 -0
  22. package/dist/tools/log-learning.d.ts +6 -0
  23. package/dist/tools/log-learning.d.ts.map +1 -0
  24. package/dist/tools/log-learning.js +77 -0
  25. package/dist/tools/log-learning.js.map +1 -0
  26. package/dist/tools/lookup-soap-operations.d.ts +6 -0
  27. package/dist/tools/lookup-soap-operations.d.ts.map +1 -0
  28. package/dist/tools/lookup-soap-operations.js +343 -0
  29. package/dist/tools/lookup-soap-operations.js.map +1 -0
  30. package/dist/tools/parse-server-log.d.ts +6 -0
  31. package/dist/tools/parse-server-log.d.ts.map +1 -0
  32. package/dist/tools/parse-server-log.js +252 -0
  33. package/dist/tools/parse-server-log.js.map +1 -0
  34. package/dist/tools/plan-integration.d.ts +9 -0
  35. package/dist/tools/plan-integration.d.ts.map +1 -0
  36. package/dist/tools/plan-integration.js +550 -0
  37. package/dist/tools/plan-integration.js.map +1 -0
  38. package/dist/tools/update-sub-flow.d.ts +7 -0
  39. package/dist/tools/update-sub-flow.d.ts.map +1 -0
  40. package/dist/tools/update-sub-flow.js +185 -0
  41. package/dist/tools/update-sub-flow.js.map +1 -0
  42. package/dist/tools/validate-assembly.d.ts +6 -0
  43. package/dist/tools/validate-assembly.d.ts.map +1 -0
  44. package/dist/tools/validate-assembly.js +94 -0
  45. package/dist/tools/validate-assembly.js.map +1 -0
  46. package/dist/utils/assembly-validator.d.ts +18 -0
  47. package/dist/utils/assembly-validator.d.ts.map +1 -0
  48. package/dist/utils/assembly-validator.js +202 -0
  49. package/dist/utils/assembly-validator.js.map +1 -0
  50. package/dist/utils/fs.d.ts +6 -1
  51. package/dist/utils/fs.d.ts.map +1 -1
  52. package/dist/utils/fs.js +16 -1
  53. package/dist/utils/fs.js.map +1 -1
  54. package/package.json +72 -66
@@ -0,0 +1,343 @@
1
+ /**
2
+ * lookup_soap_operations — Workday SOAP Web Services reference (WWS v46.1 / 2026R1).
3
+ */
4
+ import { z } from 'zod';
5
+ /**
6
+ * Workday Web Services (WWS) v46.1 — 2026R1
7
+ * Source: https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html
8
+ * Last verified: 2026-05-29
9
+ */
10
+ const WWS_VERSION = 'v46.1';
11
+ const WWS_BASE_URL = 'https://community.workday.com/sites/default/files/file-hosting/productionapi';
12
+ const WWS_INDEX_URL = `${WWS_BASE_URL}/index.html`;
13
+ const SERVICES = {
14
+ // HCM Core
15
+ Human_Resources: {
16
+ category: 'HCM Core',
17
+ wsdl: `${WWS_BASE_URL}/Human_Resources/${WWS_VERSION}/Human_Resources.wsdl`,
18
+ common_operations: [
19
+ 'Get_Workers', 'Get_Organizations', 'Change_Personal_Information',
20
+ 'Change_Work_Contact_Information', 'Change_Home_Contact_Information',
21
+ 'Change_Legal_Name', 'Change_Government_IDs', 'Change_Passports_and_Visas',
22
+ 'Change_Emergency_Contacts', 'Add_Update_Organization', 'Find_Organization',
23
+ 'Add_Workday_Account', 'Change_Business_Title', 'Change_Person_Photo',
24
+ ],
25
+ notes: 'Broadest HCM service. Get_Workers is the primary read operation for worker data.',
26
+ },
27
+ Staffing: {
28
+ category: 'HCM Core',
29
+ wsdl: `${WWS_BASE_URL}/Staffing/${WWS_VERSION}/Staffing.wsdl`,
30
+ common_operations: [
31
+ 'Hire_Employee', 'Contract_Contingent_Worker', 'Change_Job', 'Correct_Hire_Employee',
32
+ 'Correct_Change_Job', 'End_Additional_Job', 'End_Contingent_Worker_Contract',
33
+ 'Get_Applicants', 'Create_Position', 'Edit_Position', 'Close_Position',
34
+ 'Assign_Organization', 'Assign_Roles', 'Edit_Worker_Additional_Data',
35
+ 'Delete_Worker_Document',
36
+ ],
37
+ notes: 'Primary service for hire/terminate/change-job lifecycle events.',
38
+ },
39
+ Compensation: {
40
+ category: 'HCM Core',
41
+ wsdl: `${WWS_BASE_URL}/Compensation/${WWS_VERSION}/Compensation.wsdl`,
42
+ common_operations: [
43
+ 'Add_Stock_Grant', 'Create_Severance_Worksheet',
44
+ 'Assign_Eligible_Period_Activities_for_Employee',
45
+ ],
46
+ notes: 'Compensation changes. Most comp changes go via Change_Job in Staffing.',
47
+ },
48
+ Talent: {
49
+ category: 'HCM Core',
50
+ wsdl: `${WWS_BASE_URL}/Talent/${WWS_VERSION}/Talent.wsdl`,
51
+ common_operations: ['Assess_Talent', 'Get_Assess_Talent', 'Edit_Career_Interests'],
52
+ notes: 'Performance, talent assessments, and career development.',
53
+ },
54
+ Performance_Management: {
55
+ category: 'HCM Core',
56
+ wsdl: `${WWS_BASE_URL}/Performance_Management/${WWS_VERSION}/Performance_Management.wsdl`,
57
+ common_operations: ['Bulk_Import_Update_Employee_Review_Rating'],
58
+ notes: 'Employee review ratings and performance data.',
59
+ },
60
+ Recruiting: {
61
+ category: 'HCM Core',
62
+ wsdl: `${WWS_BASE_URL}/Recruiting/${WWS_VERSION}/Recruiting.wsdl`,
63
+ common_operations: [
64
+ 'Create_Job_Requisition', 'Edit_Job_Requisition', 'Close_Job_Requisition',
65
+ 'Get_Applicants', 'Assess_Candidate', 'Bulk_Import_Put_Candidate',
66
+ ],
67
+ notes: 'Recruiting and applicant tracking.',
68
+ },
69
+ Learning: {
70
+ category: 'HCM Core',
71
+ wsdl: `${WWS_BASE_URL}/Learning/${WWS_VERSION}/Learning.wsdl`,
72
+ common_operations: [
73
+ 'Enroll_In_Learning_Content', 'Cancel_Learning_Enrollment',
74
+ 'Admin_Drop_Learning_Enrollment', 'Get_Archived_External_Learning_User',
75
+ ],
76
+ notes: 'Learning enrollment and course management.',
77
+ },
78
+ Flex_Team: {
79
+ category: 'HCM Core',
80
+ wsdl: `${WWS_BASE_URL}/Flex_Team/${WWS_VERSION}/Flex_Team.wsdl`,
81
+ common_operations: ['Add_Flex_Team_Members', 'Complete_Flex_Team'],
82
+ notes: 'Flex/gig team management.',
83
+ },
84
+ Adoption: {
85
+ category: 'HCM Core',
86
+ wsdl: `${WWS_BASE_URL}/Adoption/${WWS_VERSION}/Adoption.wsdl`,
87
+ common_operations: ['Get_Adoption_Items'],
88
+ notes: 'Adoption benefit tracking.',
89
+ },
90
+ // Payroll
91
+ Payroll: {
92
+ category: 'Payroll',
93
+ wsdl: `${WWS_BASE_URL}/Payroll/${WWS_VERSION}/Payroll.wsdl`,
94
+ common_operations: ['Assign_Costing_Allocation', 'Assign_Pay_Group', 'Get_Advanced_Lookup_Tables'],
95
+ notes: 'Payroll processing and costing. For outbound payroll file integrations use Payroll_Interface.',
96
+ },
97
+ Payroll_Interface: {
98
+ category: 'Payroll',
99
+ wsdl: `${WWS_BASE_URL}/Payroll_Interface/${WWS_VERSION}/Payroll_Interface.wsdl`,
100
+ common_operations: ['Get_Payroll_Results', 'Get_Worker_Tax_Levy_Data', 'Get_Payroll_Inputs'],
101
+ notes: 'The correct service for outbound payroll integrations that extract pay results. NOT the same as Payroll.',
102
+ },
103
+ Payroll_GBR: {
104
+ category: 'Payroll',
105
+ wsdl: `${WWS_BASE_URL}/Payroll_GBR/${WWS_VERSION}/Payroll_GBR.wsdl`,
106
+ common_operations: ['Get_AEO_Council_Tax_Orders', 'Get_AEO_Non_Priority_Orders'],
107
+ notes: 'UK-specific payroll — attachment of earnings orders.',
108
+ },
109
+ Payroll_AUS: {
110
+ category: 'Payroll',
111
+ wsdl: `${WWS_BASE_URL}/Payroll_AUS/${WWS_VERSION}/Payroll_AUS.wsdl`,
112
+ common_operations: ['Get_Australia_Withholding_Orders'],
113
+ notes: 'Australia-specific payroll.',
114
+ },
115
+ // Benefits & Time
116
+ Benefits_Administration: {
117
+ category: 'Benefits & Time',
118
+ wsdl: `${WWS_BASE_URL}/Benefits_Administration/${WWS_VERSION}/Benefits_Administration.wsdl`,
119
+ common_operations: [
120
+ 'Change_Benefits', 'Add_Dependent', 'Edit_Dependent', 'Change_Beneficiary',
121
+ 'Enroll_in_Retirement_Savings_Plans', 'Get_ACA_1095-C_Forms_Data',
122
+ ],
123
+ notes: 'Benefits enrollment and dependent management.',
124
+ },
125
+ Benefits_Partner_Program_Integrations: {
126
+ category: 'Benefits & Time',
127
+ wsdl: `${WWS_BASE_URL}/Benefits_Partner_Program_Integrations/${WWS_VERSION}/Benefits_Partner_Program_Integrations.wsdl`,
128
+ common_operations: ['Bulk_Import_Put_Worker_Benefit_and_Wellbeing_Wallet_Cards'],
129
+ notes: 'Benefits partner integrations — wallet cards, wellbeing.',
130
+ },
131
+ Absence_Management: {
132
+ category: 'Benefits & Time',
133
+ wsdl: `${WWS_BASE_URL}/Absence_Management/${WWS_VERSION}/Absence_Management.wsdl`,
134
+ common_operations: ['Enter_Time_Off', 'Adjust_Time_Off', 'Get_Absence_Inputs', 'Get_Accrual_Expiration_Overrides'],
135
+ notes: 'Time off entry, accruals, and absence management.',
136
+ },
137
+ Time_Tracking: {
138
+ category: 'Benefits & Time',
139
+ wsdl: `${WWS_BASE_URL}/Time_Tracking/${WWS_VERSION}/Time_Tracking.wsdl`,
140
+ common_operations: ['Assign_Work_Schedule'],
141
+ notes: 'Time entry and work schedule management.',
142
+ },
143
+ // Finance
144
+ Financial_Management: {
145
+ category: 'Finance',
146
+ wsdl: `${WWS_BASE_URL}/Financial_Management/${WWS_VERSION}/Financial_Management.wsdl`,
147
+ common_operations: [
148
+ 'Bulk_Import_Submit_Accounting_Journal', 'Cancel_Accounting_Journal',
149
+ 'Get_Account_Sets', 'Get_Allocation_Definitions',
150
+ ],
151
+ notes: 'General ledger, journal entries, account management.',
152
+ },
153
+ Revenue_Management: {
154
+ category: 'Finance',
155
+ wsdl: `${WWS_BASE_URL}/Revenue_Management/${WWS_VERSION}/Revenue_Management.wsdl`,
156
+ common_operations: ['Cancel_Customer_Invoice', 'Cancel_Customer_Contract', 'Get_Award_Additional_Data'],
157
+ notes: 'Customer invoicing, contracts, and award management.',
158
+ },
159
+ Cash_Management: {
160
+ category: 'Finance',
161
+ wsdl: `${WWS_BASE_URL}/Cash_Management/${WWS_VERSION}/Cash_Management.wsdl`,
162
+ common_operations: ['Cancel_Ad_Hoc_Payment', 'Get_Ad_Hoc_Payments', 'Get_Ad_Hoc_Bank_Transactions'],
163
+ notes: 'Cash, payments, and banking.',
164
+ },
165
+ Resource_Management: {
166
+ category: 'Finance',
167
+ wsdl: `${WWS_BASE_URL}/Resource_Management/${WWS_VERSION}/Resource_Management.wsdl`,
168
+ common_operations: ['Cancel_Purchase_Order', 'Cancel_Supplier_Invoice', 'Get_Assets', 'Bulk_Import_Submit_Supplier'],
169
+ notes: 'Procurement, supplier invoices, asset management.',
170
+ },
171
+ Inventory: {
172
+ category: 'Finance',
173
+ wsdl: `${WWS_BASE_URL}/Inventory/${WWS_VERSION}/Inventory.wsdl`,
174
+ common_operations: ['Cancel_Goods_Delivery', 'Bulk_Import_Submit_Inventory_Par_Count'],
175
+ notes: 'Inventory and warehouse management.',
176
+ },
177
+ Requests: {
178
+ category: 'Finance',
179
+ wsdl: `${WWS_BASE_URL}/Requests/${WWS_VERSION}/Requests.wsdl`,
180
+ common_operations: ['Bulk_Import_Submit_Request'],
181
+ notes: 'General request management.',
182
+ },
183
+ Settlement_Services: {
184
+ category: 'Finance',
185
+ wsdl: `${WWS_BASE_URL}/Settlement_Services/${WWS_VERSION}/Settlement_Services.wsdl`,
186
+ common_operations: ['Cancel_Payment_Return'],
187
+ notes: 'Payment settlement processing.',
188
+ },
189
+ Compensation_Review: {
190
+ category: 'Finance',
191
+ wsdl: `${WWS_BASE_URL}/Compensation_Review/${WWS_VERSION}/Compensation_Review.wsdl`,
192
+ common_operations: [
193
+ 'Bulk_Import_Put_Compensation_Review_Participation_Rule_Sets',
194
+ 'Bulk_Import_Put_Compensation_Review_Template',
195
+ ],
196
+ notes: 'Compensation review cycles and merit planning.',
197
+ },
198
+ Professional_Services_Automation: {
199
+ category: 'Finance',
200
+ wsdl: `${WWS_BASE_URL}/Professional_Services_Automation/${WWS_VERSION}/Professional_Services_Automation.wsdl`,
201
+ common_operations: ['Cancel_Expense_Report_Old'],
202
+ notes: 'Professional services and project tracking.',
203
+ },
204
+ // Academic (higher education tenants only)
205
+ Academic_Foundation: {
206
+ category: 'Academic',
207
+ wsdl: `${WWS_BASE_URL}/Academic_Foundation/${WWS_VERSION}/Academic_Foundation.wsdl`,
208
+ common_operations: ['Get_Academic_Areas', 'Get_Academic_Contacts', 'Get_Academic_Periods'],
209
+ notes: 'Core academic data — periods, areas, contacts. Higher education tenants only.',
210
+ },
211
+ Academic_Advising: {
212
+ category: 'Academic',
213
+ wsdl: `${WWS_BASE_URL}/Academic_Advising/${WWS_VERSION}/Academic_Advising.wsdl`,
214
+ common_operations: ['Get_Academic_Progress_for_Student', 'Get_Academic_Requirements_Effective_Date'],
215
+ notes: 'Student advising and academic progress. Higher education tenants only.',
216
+ },
217
+ Admissions: {
218
+ category: 'Academic',
219
+ wsdl: `${WWS_BASE_URL}/Admissions/${WWS_VERSION}/Admissions.wsdl`,
220
+ common_operations: ['Get_Admissions_Committees', 'Get_Application_Groupings'],
221
+ notes: 'Admissions management. Higher education tenants only.',
222
+ },
223
+ Student_Core: {
224
+ category: 'Academic',
225
+ wsdl: `${WWS_BASE_URL}/Student_Core/${WWS_VERSION}/Student_Core.wsdl`,
226
+ common_operations: ['Add_Student_Document', 'Delete_Student_Document', 'Get_Accommodations_for_Student'],
227
+ notes: 'Core student data. Higher education tenants only.',
228
+ },
229
+ Student_Records: {
230
+ category: 'Academic',
231
+ wsdl: `${WWS_BASE_URL}/Student_Records/${WWS_VERSION}/Student_Records.wsdl`,
232
+ common_operations: ['Bulk_Import_Put_Historical_Academic_Record', 'Bulk_Import_Submit_Program_Completion'],
233
+ notes: 'Student transcripts and academic records. Higher education tenants only.',
234
+ },
235
+ Student_Finance: {
236
+ category: 'Academic',
237
+ wsdl: `${WWS_BASE_URL}/Student_Finance/${WWS_VERSION}/Student_Finance.wsdl`,
238
+ common_operations: ['Get_1098-T', 'Bulk_Import_Submit_Student_Sponsor_Invoice'],
239
+ notes: 'Student billing and financial aid. Higher education tenants only.',
240
+ },
241
+ Student_Transfer_Credit: {
242
+ category: 'Academic',
243
+ wsdl: `${WWS_BASE_URL}/Student_Transfer_Credit/${WWS_VERSION}/Student_Transfer_Credit.wsdl`,
244
+ common_operations: ['Bulk_Import_Put_Preliminary_Transfer_Credit', 'Delete_Student_Transfer_Credits'],
245
+ notes: 'Transfer credit management. Higher education tenants only.',
246
+ },
247
+ Student_Recruiting: {
248
+ category: 'Academic',
249
+ wsdl: `${WWS_BASE_URL}/Student_Recruiting/${WWS_VERSION}/Student_Recruiting.wsdl`,
250
+ common_operations: ['Get_Ad_Hoc_Locations'],
251
+ notes: 'Student recruiting. Higher education tenants only.',
252
+ },
253
+ // Platform
254
+ Integrations: {
255
+ category: 'Platform',
256
+ wsdl: `${WWS_BASE_URL}/Integrations/${WWS_VERSION}/Integrations.wsdl`,
257
+ common_operations: [
258
+ 'Launch_Integration_Event', 'Get_Integration_Events', 'Cancel_Integration_Event',
259
+ 'Get_Integration_Systems', 'Approve_Business_Process', 'Deny_Business_Process',
260
+ ],
261
+ notes: 'Launch and monitor integration events, manage business processes.',
262
+ },
263
+ Prism_Analytics: {
264
+ category: 'Platform',
265
+ wsdl: `${WWS_BASE_URL}/Prism_Analytics/${WWS_VERSION}/Prism_Analytics.wsdl`,
266
+ common_operations: ['Get_Analytic_Dimension_Business_Objects', 'Get_Analytic_Dimension_Values'],
267
+ notes: 'Prism analytics dimensions and data lake operations.',
268
+ },
269
+ Workday_Connect: {
270
+ category: 'Platform',
271
+ wsdl: `${WWS_BASE_URL}/Workday_Connect/${WWS_VERSION}/Workday_Connect.wsdl`,
272
+ common_operations: ['Get_Audience_Builder'],
273
+ notes: 'Workday Connect audience management.',
274
+ },
275
+ ACA_Partner_Integrations: {
276
+ category: 'Platform',
277
+ wsdl: `${WWS_BASE_URL}/ACA_Partner_Integrations/${WWS_VERSION}/ACA_Partner_Integrations.wsdl`,
278
+ common_operations: ['Get_ACA_Employee_Data', 'Get_ACA_Employer_Data'],
279
+ notes: 'ACA (Affordable Care Act) reporting data for benefits partners.',
280
+ },
281
+ };
282
+ export function register(server) {
283
+ server.tool('lookup_soap_operations', [
284
+ `Look up Workday SOAP web service operations for use in cc:workday-out-soap steps (WWS ${WWS_VERSION} / 2026R1).`,
285
+ 'Returns the valid application name, common operations, WSDL URL, and usage notes.',
286
+ 'Use this before writing a cc:workday-out-soap step to confirm the correct application= name',
287
+ 'and what operations are available.',
288
+ 'Pass service_name="list" to see all services grouped by category.',
289
+ ].join(' '), {
290
+ service_name: z.string().describe('Workday service name (e.g. "Human_Resources", "Staffing", "Payroll_Interface") or "list" to see all services grouped by category.'),
291
+ }, async ({ service_name }) => {
292
+ if (service_name.toLowerCase() === 'list') {
293
+ const grouped = {};
294
+ for (const [name, svc] of Object.entries(SERVICES)) {
295
+ if (!grouped[svc.category])
296
+ grouped[svc.category] = [];
297
+ grouped[svc.category].push(name);
298
+ }
299
+ const lines = [
300
+ `Workday Web Services — ${WWS_VERSION} (2026R1)`,
301
+ `Source: ${WWS_INDEX_URL}`,
302
+ '',
303
+ ];
304
+ for (const [cat, names] of Object.entries(grouped)) {
305
+ lines.push(`${cat}:`);
306
+ lines.push(` ${names.join(', ')}`);
307
+ }
308
+ lines.push('');
309
+ lines.push('Use service_name="<ServiceName>" for full details and common operations.');
310
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
311
+ }
312
+ // Case-insensitive exact match first, then partial match
313
+ const key = Object.keys(SERVICES).find(k => k.toLowerCase() === service_name.toLowerCase()) ??
314
+ Object.keys(SERVICES).find(k => k.toLowerCase().includes(service_name.toLowerCase()));
315
+ if (!key) {
316
+ const allNames = Object.keys(SERVICES).join(', ');
317
+ return {
318
+ content: [{
319
+ type: 'text',
320
+ text: JSON.stringify({
321
+ error: true,
322
+ code: 'SERVICE_NOT_FOUND',
323
+ message: `No service matching "${service_name}" in WWS ${WWS_VERSION}.`,
324
+ suggestion: `Valid service names: ${allNames}. Use service_name="list" for the grouped list.`,
325
+ }, null, 2),
326
+ }],
327
+ };
328
+ }
329
+ const svc = SERVICES[key];
330
+ const result = {
331
+ service: key,
332
+ category: svc.category,
333
+ wws_version: WWS_VERSION,
334
+ wsdl_url: svc.wsdl,
335
+ notes: svc.notes,
336
+ common_operations: svc.common_operations,
337
+ assembly_usage: `<cc:workday-out-soap id="Call${key.replace(/_/g, '')}" application="${key}" version="${WWS_VERSION}" routes-response-to="HandleResponse"/>`,
338
+ full_operations_reference: `${WWS_BASE_URL}/operations/index.html`,
339
+ };
340
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
341
+ });
342
+ }
343
+ //# sourceMappingURL=lookup-soap-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookup-soap-operations.js","sourceRoot":"","sources":["../../src/tools/lookup-soap-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * parse_server_log — parse a Workday integration server log from ~/Downloads.
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function register(server: McpServer): void;
6
+ //# sourceMappingURL=parse-server-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-server-log.d.ts","sourceRoot":"","sources":["../../src/tools/parse-server-log.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4EhD"}
@@ -0,0 +1,252 @@
1
+ /**
2
+ * parse_server_log — parse a Workday integration server log from ~/Downloads.
3
+ */
4
+ import { z } from 'zod';
5
+ import { readFile } from 'fs/promises';
6
+ import { join } from 'path';
7
+ import { existsSync, readdirSync, statSync } from 'fs';
8
+ import { homedir } from 'os';
9
+ import { errorResponse } from '../utils/errors.js';
10
+ export function register(server) {
11
+ server.tool('parse_server_log', [
12
+ 'Parse a Workday integration server log file from ~/Downloads (or a custom path).',
13
+ '',
14
+ 'Scans the log for:',
15
+ ' • ERROR and CRITICAL severity messages with their step ids',
16
+ ' • Exception stack traces linked to integration event ids',
17
+ ' • SOAP fault details (faultcode, faultstring)',
18
+ ' • Timing anomalies — steps that took > threshold_ms milliseconds',
19
+ ' • The first and last timestamps (to calculate total run duration)',
20
+ ' • Integration system name and event id extracted from log headers',
21
+ '',
22
+ 'If file_name is omitted the tool picks the most recently modified .log or',
23
+ '.txt file in ~/Downloads automatically.',
24
+ ].join('\n'), {
25
+ file_name: z.string().optional().describe('Log file name (e.g. "integration-event-12345.log"). If omitted, the most recent .log or .txt in ~/Downloads is used.'),
26
+ file_path: z.string().optional().describe('Absolute path to the log file. Overrides file_name and the ~/Downloads default location.'),
27
+ threshold_ms: z.number().optional().describe('Timing threshold in milliseconds. Steps slower than this value are flagged (default: 5000).'),
28
+ max_errors: z.number().optional().describe('Maximum number of error entries to return (default: 50).'),
29
+ }, async ({ file_name, file_path, threshold_ms = 5000, max_errors = 50 }) => {
30
+ let logPath;
31
+ if (file_path) {
32
+ logPath = file_path;
33
+ }
34
+ else {
35
+ const downloadsDir = join(homedir(), 'Downloads');
36
+ if (file_name) {
37
+ logPath = join(downloadsDir, file_name);
38
+ }
39
+ else {
40
+ // Pick the most recently modified .log or .txt file
41
+ const newest = findNewestLogFile(downloadsDir);
42
+ if (!newest) {
43
+ return errorResponse('NO_LOG_FILE', 'No .log or .txt file found in ~/Downloads.', 'Specify file_name or file_path explicitly, or download the log file to ~/Downloads first.');
44
+ }
45
+ logPath = newest;
46
+ }
47
+ }
48
+ if (!existsSync(logPath)) {
49
+ return errorResponse('FILE_NOT_FOUND', `Log file not found: ${logPath}`, null);
50
+ }
51
+ let content;
52
+ try {
53
+ content = await readFile(logPath, 'utf8');
54
+ }
55
+ catch (e) {
56
+ return errorResponse('READ_ERROR', e.message, null);
57
+ }
58
+ const report = parseLog(content, threshold_ms, max_errors);
59
+ report.source_file = logPath;
60
+ return {
61
+ content: [{
62
+ type: 'text',
63
+ text: JSON.stringify(report, null, 2),
64
+ }],
65
+ };
66
+ });
67
+ }
68
+ // ── helpers ─────────────────────────────────────────────────────────────────
69
+ function findNewestLogFile(dir) {
70
+ if (!existsSync(dir))
71
+ return null;
72
+ let newest = null;
73
+ try {
74
+ const entries = readdirSync(dir);
75
+ for (const entry of entries) {
76
+ if (!/\.(log|txt)$/i.test(entry))
77
+ continue;
78
+ const full = join(dir, entry);
79
+ try {
80
+ const st = statSync(full);
81
+ if (!st.isFile())
82
+ continue;
83
+ if (!newest || st.mtime > newest.mtime) {
84
+ newest = { path: full, mtime: st.mtime };
85
+ }
86
+ }
87
+ catch { /* skip */ }
88
+ }
89
+ }
90
+ catch { /* skip */ }
91
+ return newest?.path ?? null;
92
+ }
93
+ function parseLog(content, thresholdMs, maxErrors) {
94
+ const lines = content.split(/\r?\n/);
95
+ const report = {
96
+ summary: {
97
+ total_lines: lines.length,
98
+ error_count: 0,
99
+ warning_count: 0,
100
+ critical_count: 0,
101
+ slow_steps: 0,
102
+ soap_faults: 0,
103
+ },
104
+ errors: [],
105
+ warnings: [],
106
+ slow_steps: [],
107
+ soap_faults: [],
108
+ stack_traces: [],
109
+ };
110
+ // Patterns
111
+ const tsRe = /(\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)/;
112
+ const severityRe = /\b(ERROR|CRITICAL|WARNING|WARN|INFO|DEBUG)\b/i;
113
+ const stepIdRe = /\bstep[_\s-]*id[=:\s]+"?([A-Za-z0-9_-]+)"?/i;
114
+ const integrationRe = /integration[_\s-]*(?:system|name)[=:\s]+"?([A-Za-z0-9_\- ]+)"?/i;
115
+ const eventIdRe = /event[_\s-]*id[=:\s]+"?([A-Za-z0-9_-]+)"?/i;
116
+ const durationRe = /(?:duration|elapsed|took)[=:\s]+(\d+)\s*ms/i;
117
+ const soapFaultStartRe = /<(?:env:|soap:|)[Ff]ault\b/;
118
+ const faultCodeRe = /<(?:[^:>]+:)?faultcode[^>]*>([^<]+)</i;
119
+ const faultStringRe = /<(?:[^:>]+:)?faultstring[^>]*>([^<]+)</i;
120
+ const exceptionRe = /^\s+(?:at )?((?:[a-z][a-zA-Z0-9_]*\.)+[A-Z][a-zA-Z0-9_$]+)(?:\.[a-zA-Z0-9_$]+)?\(/;
121
+ const javaExRe = /((?:[a-z][a-zA-Z0-9_]*\.)+[A-Z][a-zA-Z0-9_$]*(?:Exception|Error|Fault))[:\s]/;
122
+ let timestamps = [];
123
+ let currentStackTrace = null;
124
+ let inSoapFault = false;
125
+ let soapFaultBuffer = '';
126
+ let soapFaultLine = 0;
127
+ for (let i = 0; i < lines.length; i++) {
128
+ const line = lines[i];
129
+ const lineNum = i + 1;
130
+ // Extract integration system / event id from first 100 lines
131
+ if (i < 100) {
132
+ const intMatch = line.match(integrationRe);
133
+ if (intMatch && !report.integration_system) {
134
+ report.integration_system = intMatch[1].trim();
135
+ }
136
+ const evMatch = line.match(eventIdRe);
137
+ if (evMatch && !report.event_id) {
138
+ report.event_id = evMatch[1].trim();
139
+ }
140
+ }
141
+ // Timestamp extraction for run duration
142
+ const tsMatch = line.match(tsRe);
143
+ const ts = tsMatch?.[1];
144
+ if (ts) {
145
+ try {
146
+ const d = new Date(ts.replace(' ', 'T'));
147
+ if (!isNaN(d.getTime()))
148
+ timestamps.push(d);
149
+ }
150
+ catch { /* skip */ }
151
+ }
152
+ // Severity
153
+ const sevMatch = line.match(severityRe);
154
+ const severity = sevMatch?.[1]?.toUpperCase();
155
+ const stepMatch = line.match(stepIdRe);
156
+ const stepId = stepMatch?.[1];
157
+ if (severity === 'ERROR' || severity === 'CRITICAL') {
158
+ if (severity === 'CRITICAL')
159
+ report.summary.critical_count++;
160
+ else
161
+ report.summary.error_count++;
162
+ if (report.errors.length < maxErrors) {
163
+ report.errors.push({
164
+ line: lineNum,
165
+ timestamp: ts,
166
+ severity,
167
+ step_id: stepId,
168
+ message: line.trim().substring(0, 400),
169
+ });
170
+ }
171
+ }
172
+ else if (severity === 'WARNING' || severity === 'WARN') {
173
+ report.summary.warning_count++;
174
+ if (report.warnings.length < 20) {
175
+ report.warnings.push({
176
+ line: lineNum,
177
+ timestamp: ts,
178
+ severity: 'WARNING',
179
+ step_id: stepId,
180
+ message: line.trim().substring(0, 400),
181
+ });
182
+ }
183
+ }
184
+ // Duration / slow steps
185
+ const durMatch = line.match(durationRe);
186
+ if (durMatch) {
187
+ const ms = parseInt(durMatch[1], 10);
188
+ if (ms >= thresholdMs) {
189
+ report.summary.slow_steps++;
190
+ report.slow_steps.push({
191
+ line: lineNum,
192
+ step_id: stepId,
193
+ duration_ms: ms,
194
+ timestamp: ts,
195
+ });
196
+ }
197
+ }
198
+ // SOAP fault detection
199
+ if (soapFaultStartRe.test(line)) {
200
+ inSoapFault = true;
201
+ soapFaultBuffer = line;
202
+ soapFaultLine = lineNum;
203
+ }
204
+ else if (inSoapFault) {
205
+ soapFaultBuffer += '\n' + line;
206
+ if (line.includes('</') && (line.includes('Fault') || line.includes('fault'))) {
207
+ inSoapFault = false;
208
+ const fc = soapFaultBuffer.match(faultCodeRe);
209
+ const fs = soapFaultBuffer.match(faultStringRe);
210
+ report.summary.soap_faults++;
211
+ report.soap_faults.push({
212
+ line: soapFaultLine,
213
+ fault_code: fc?.[1]?.trim(),
214
+ fault_string: fs?.[1]?.trim(),
215
+ context: soapFaultBuffer.substring(0, 600),
216
+ });
217
+ soapFaultBuffer = '';
218
+ }
219
+ }
220
+ // Stack traces
221
+ if (javaExRe.test(line) && !line.includes('//')) {
222
+ const excMatch = line.match(javaExRe);
223
+ currentStackTrace = {
224
+ line: lineNum,
225
+ exception_class: excMatch?.[1],
226
+ message: line.trim().substring(0, 300),
227
+ relevant_frames: [],
228
+ };
229
+ report.stack_traces.push(currentStackTrace);
230
+ }
231
+ else if (currentStackTrace && exceptionRe.test(line)) {
232
+ // Only keep frames from workday / capeclear packages
233
+ if (line.includes('capeclear') || line.includes('workday') || line.includes('com.wd')) {
234
+ currentStackTrace.relevant_frames.push(line.trim().substring(0, 200));
235
+ }
236
+ }
237
+ else if (currentStackTrace && line.trim() === '') {
238
+ currentStackTrace = null;
239
+ }
240
+ }
241
+ // Run duration
242
+ if (timestamps.length >= 2) {
243
+ const sorted = timestamps.sort((a, b) => a.getTime() - b.getTime());
244
+ report.run_start = sorted[0].toISOString();
245
+ report.run_end = sorted[sorted.length - 1].toISOString();
246
+ report.duration_seconds = Math.round((sorted[sorted.length - 1].getTime() - sorted[0].getTime()) / 1000);
247
+ }
248
+ // Limit stack traces to top 10
249
+ report.stack_traces = report.stack_traces.slice(0, 10);
250
+ return report;
251
+ }
252
+ //# sourceMappingURL=parse-server-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-server-log.js","sourceRoot":"","sources":["../../src/tools/parse-server-log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * plan_integration — design elicitation + assembly skeleton generator.
3
+ * Ported from the reference implementation (plan-integration.mjs).
4
+ *
5
+ * Writes assembly.xml + assembly-diagram.xml into the project directory.
6
+ */
7
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
+ export declare function register(server: McpServer): void;
9
+ //# sourceMappingURL=plan-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-integration.d.ts","sourceRoot":"","sources":["../../src/tools/plan-integration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiEzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8GhD"}