@critical-path/mcp 0.7.0 → 0.9.0

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.
@@ -1,4 +1,13 @@
1
1
  import { z } from 'zod';
2
+ import { zodToJsonSchema } from 'zod-to-json-schema';
3
+ /**
4
+ * Declares a tool, generating its JSON Schema `inputSchema` from `zodSchema` so the schema the
5
+ * model sees and the one arguments are validated against cannot drift apart.
6
+ */
7
+ export function defineTool(spec) {
8
+ const { $schema: _schema, ...inputSchema } = zodToJsonSchema(spec.zodSchema, { $refStrategy: 'none' });
9
+ return { ...spec, inputSchema };
10
+ }
2
11
  export class ToolArgumentError extends Error {
3
12
  constructor(toolName, details) {
4
13
  super(`Invalid arguments for tool "${toolName}": ${details}`);
@@ -24,42 +33,29 @@ export async function resolveBackend(target) {
24
33
  const isEngine = 'store' in target && typeof target.store === 'object';
25
34
  return { isEngine };
26
35
  }
27
- export const listProjectsTool = {
36
+ export const listProjectsTool = defineTool({
28
37
  name: 'list_projects',
29
38
  title: 'List Projects',
30
39
  description: 'Retrieve all projects in the workspace.',
31
40
  zodSchema: z.object({}),
32
- inputSchema: {
33
- type: 'object',
34
- properties: {},
35
- additionalProperties: false
36
- },
37
41
  annotations: { readOnlyHint: true },
38
42
  execute: async (_args, target) => {
39
43
  return target.getProjects();
40
44
  }
41
- };
42
- export const getProjectTool = {
45
+ });
46
+ export const getProjectTool = defineTool({
43
47
  name: 'get_project',
44
48
  title: 'Get Project',
45
49
  description: 'Get details of a specific project by its ID.',
46
50
  zodSchema: z.object({
47
51
  id: z.string().describe('The project ID')
48
52
  }),
49
- inputSchema: {
50
- type: 'object',
51
- properties: {
52
- id: { type: 'string', description: 'The project ID' }
53
- },
54
- required: ['id'],
55
- additionalProperties: false
56
- },
57
53
  annotations: { readOnlyHint: true },
58
54
  execute: async (args, target) => {
59
55
  return target.getProject(args.id);
60
56
  }
61
- };
62
- export const createProjectTool = {
57
+ });
58
+ export const createProjectTool = defineTool({
63
59
  name: 'create_project',
64
60
  title: 'Create Project',
65
61
  description: 'Create a new project workspace.',
@@ -68,21 +64,11 @@ export const createProjectTool = {
68
64
  description: z.string().optional().describe('Description of the project'),
69
65
  key: z.string().optional().describe('Short project key/prefix (e.g. "PROJ")')
70
66
  }),
71
- inputSchema: {
72
- type: 'object',
73
- properties: {
74
- name: { type: 'string', description: 'Name of the project' },
75
- description: { type: 'string', description: 'Description of the project' },
76
- key: { type: 'string', description: 'Short project key/prefix (e.g. "PROJ")' }
77
- },
78
- required: ['name'],
79
- additionalProperties: false
80
- },
81
67
  execute: async (args, target) => {
82
68
  return target.createProject(args);
83
69
  }
84
- };
85
- export const listTasksTool = {
70
+ });
71
+ export const listTasksTool = defineTool({
86
72
  name: 'list_tasks',
87
73
  title: 'List Tasks',
88
74
  description: 'List tasks, optionally filtered by project, status, priority, or assignee.',
@@ -92,20 +78,6 @@ export const listTasksTool = {
92
78
  priority: z.enum(['urgent', 'high', 'medium', 'low', 'none']).optional().describe('Filter by priority'),
93
79
  assigneeId: z.string().optional().describe('Filter by assignee ID')
94
80
  }),
95
- inputSchema: {
96
- type: 'object',
97
- properties: {
98
- projectId: { type: 'string', description: 'Filter by project ID' },
99
- status: { type: 'string', description: 'Filter by task status key' },
100
- priority: {
101
- type: 'string',
102
- enum: ['urgent', 'high', 'medium', 'low', 'none'],
103
- description: 'Filter by priority'
104
- },
105
- assigneeId: { type: 'string', description: 'Filter by assignee ID' }
106
- },
107
- additionalProperties: false
108
- },
109
81
  annotations: { readOnlyHint: true },
110
82
  execute: async (args, target, ambientContext) => {
111
83
  const projectId = args.projectId || ambientContext?.projectId;
@@ -121,28 +93,20 @@ export const listTasksTool = {
121
93
  }
122
94
  return tasks;
123
95
  }
124
- };
125
- export const getTaskTool = {
96
+ });
97
+ export const getTaskTool = defineTool({
126
98
  name: 'get_task',
127
99
  title: 'Get Task',
128
100
  description: 'Get task details by ID.',
129
101
  zodSchema: z.object({
130
102
  id: z.string().describe('The task ID')
131
103
  }),
132
- inputSchema: {
133
- type: 'object',
134
- properties: {
135
- id: { type: 'string', description: 'The task ID' }
136
- },
137
- required: ['id'],
138
- additionalProperties: false
139
- },
140
104
  annotations: { readOnlyHint: true },
141
105
  execute: async (args, target) => {
142
106
  return target.getTask(args.id);
143
107
  }
144
- };
145
- export const createTaskTool = {
108
+ });
109
+ export const createTaskTool = defineTool({
146
110
  name: 'create_task',
147
111
  title: 'Create Task',
148
112
  description: 'Create a new task within a project.',
@@ -159,24 +123,6 @@ export const createTaskTool = {
159
123
  isBlocked: z.boolean().optional().describe('Whether the task is blocked'),
160
124
  blockedReason: z.string().optional().describe('Reason why the task is blocked')
161
125
  }),
162
- inputSchema: {
163
- type: 'object',
164
- properties: {
165
- projectId: { type: 'string', description: 'Project ID (inferred from active view if omitted)' },
166
- title: { type: 'string', description: 'Title of the task' },
167
- description: { type: 'string', description: 'Detailed description' },
168
- status: { type: 'string', description: 'Status key' },
169
- priority: { type: 'string', enum: ['urgent', 'high', 'medium', 'low', 'none'] },
170
- assigneeId: { type: 'string', description: 'User ID of assignee' },
171
- dueDate: { type: 'string', description: 'Due date in ISO 8601 format' },
172
- tags: { type: 'array', items: { type: 'string' } },
173
- estimatedHours: { type: 'number' },
174
- isBlocked: { type: 'boolean', description: 'Whether the task is blocked' },
175
- blockedReason: { type: 'string', description: 'Reason why the task is blocked' }
176
- },
177
- required: ['title'],
178
- additionalProperties: false
179
- },
180
126
  execute: async (args, target, ambientContext) => {
181
127
  const projectId = args.projectId || ambientContext?.projectId;
182
128
  if (!projectId) {
@@ -197,8 +143,8 @@ export const createTaskTool = {
197
143
  };
198
144
  return target.createTask(input);
199
145
  }
200
- };
201
- export const updateTaskTool = {
146
+ });
147
+ export const updateTaskTool = defineTool({
202
148
  name: 'update_task',
203
149
  title: 'Update Task',
204
150
  description: 'Update fields of an existing task (e.g. title, status, priority, assignee).',
@@ -213,68 +159,34 @@ export const updateTaskTool = {
213
159
  tags: z.array(z.string()).optional(),
214
160
  estimatedHours: z.number().optional(),
215
161
  loggedHours: z.number().optional(),
216
- isBlocked: z.boolean().optional(),
217
- blockedReason: z.string().optional()
162
+ isBlocked: z.boolean().optional().describe('Whether the task is blocked'),
163
+ blockedReason: z.string().optional().describe('Reason why the task is blocked')
218
164
  }),
219
- inputSchema: {
220
- type: 'object',
221
- properties: {
222
- id: { type: 'string', description: 'Task ID' },
223
- title: { type: 'string' },
224
- description: { type: 'string' },
225
- status: { type: 'string' },
226
- priority: { type: 'string', enum: ['urgent', 'high', 'medium', 'low', 'none'] },
227
- assigneeId: { type: 'string' },
228
- dueDate: { type: 'string' },
229
- tags: { type: 'array', items: { type: 'string' } },
230
- estimatedHours: { type: 'number' },
231
- loggedHours: { type: 'number' },
232
- isBlocked: { type: 'boolean', description: 'Whether the task is blocked' },
233
- blockedReason: { type: 'string', description: 'Reason why the task is blocked' }
234
- },
235
- required: ['id'],
236
- additionalProperties: false
237
- },
238
165
  execute: async (args, target) => {
239
166
  const { id, ...updates } = args;
240
167
  return target.updateTask(id, updates);
241
168
  }
242
- };
243
- export const deleteTaskTool = {
169
+ });
170
+ export const deleteTaskTool = defineTool({
244
171
  name: 'delete_task',
245
172
  title: 'Delete Task',
246
173
  description: 'Delete a task by ID.',
247
174
  zodSchema: z.object({
248
175
  id: z.string().describe('The task ID to delete')
249
176
  }),
250
- inputSchema: {
251
- type: 'object',
252
- properties: {
253
- id: { type: 'string', description: 'The task ID' }
254
- },
255
- required: ['id'],
256
- additionalProperties: false
257
- },
258
177
  annotations: { requiresConfirmation: true },
259
178
  execute: async (args, target) => {
260
179
  const success = await target.deleteTask(args.id);
261
180
  return { success };
262
181
  }
263
- };
264
- export const listDeliverablesTool = {
182
+ });
183
+ export const listDeliverablesTool = defineTool({
265
184
  name: 'list_deliverables',
266
185
  title: 'List Deliverables',
267
186
  description: 'List deliverables/milestones for a project.',
268
187
  zodSchema: z.object({
269
188
  projectId: z.string().optional().describe('Project ID')
270
189
  }),
271
- inputSchema: {
272
- type: 'object',
273
- properties: {
274
- projectId: { type: 'string', description: 'Project ID' }
275
- },
276
- additionalProperties: false
277
- },
278
190
  annotations: { readOnlyHint: true },
279
191
  execute: async (args, target, ambientContext) => {
280
192
  const projectId = args.projectId || ambientContext?.projectId;
@@ -285,8 +197,8 @@ export const listDeliverablesTool = {
285
197
  }
286
198
  return [];
287
199
  }
288
- };
289
- export const createDeliverableTool = {
200
+ });
201
+ export const createDeliverableTool = defineTool({
290
202
  name: 'create_deliverable',
291
203
  title: 'Create Deliverable',
292
204
  description: 'Create a milestone deliverable within a project.',
@@ -297,18 +209,6 @@ export const createDeliverableTool = {
297
209
  dueDate: z.string().optional(),
298
210
  taskIds: z.array(z.string()).optional()
299
211
  }),
300
- inputSchema: {
301
- type: 'object',
302
- properties: {
303
- projectId: { type: 'string' },
304
- title: { type: 'string' },
305
- description: { type: 'string' },
306
- dueDate: { type: 'string' },
307
- taskIds: { type: 'array', items: { type: 'string' } }
308
- },
309
- required: ['title'],
310
- additionalProperties: false
311
- },
312
212
  execute: async (args, target, ambientContext) => {
313
213
  const projectId = args.projectId || ambientContext?.projectId;
314
214
  if (!projectId)
@@ -321,22 +221,14 @@ export const createDeliverableTool = {
321
221
  }
322
222
  throw new Error('createDeliverable is not supported by this backend target.');
323
223
  }
324
- };
325
- export const listCommentsTool = {
224
+ });
225
+ export const listCommentsTool = defineTool({
326
226
  name: 'list_comments',
327
227
  title: 'List Comments',
328
228
  description: 'List comments associated with a task.',
329
229
  zodSchema: z.object({
330
230
  taskId: z.string().describe('The task ID')
331
231
  }),
332
- inputSchema: {
333
- type: 'object',
334
- properties: {
335
- taskId: { type: 'string', description: 'The task ID' }
336
- },
337
- required: ['taskId'],
338
- additionalProperties: false
339
- },
340
232
  annotations: { readOnlyHint: true },
341
233
  execute: async (args, target) => {
342
234
  if ('getComments' in target && typeof target.getComments === 'function') {
@@ -344,8 +236,8 @@ export const listCommentsTool = {
344
236
  }
345
237
  return [];
346
238
  }
347
- };
348
- export const addCommentTool = {
239
+ });
240
+ export const addCommentTool = defineTool({
349
241
  name: 'add_comment',
350
242
  title: 'Add Comment',
351
243
  description: 'Add a comment to a task.',
@@ -354,16 +246,6 @@ export const addCommentTool = {
354
246
  content: z.string().describe('Comment body/markdown'),
355
247
  authorId: z.string().describe('Author user ID')
356
248
  }),
357
- inputSchema: {
358
- type: 'object',
359
- properties: {
360
- taskId: { type: 'string', description: 'The task ID' },
361
- content: { type: 'string', description: 'Comment body/markdown' },
362
- authorId: { type: 'string', description: 'Author user ID' }
363
- },
364
- required: ['taskId', 'content', 'authorId'],
365
- additionalProperties: false
366
- },
367
249
  execute: async (args, target) => {
368
250
  return target.addComment({
369
251
  taskId: args.taskId,
@@ -371,21 +253,14 @@ export const addCommentTool = {
371
253
  authorId: args.authorId
372
254
  });
373
255
  }
374
- };
375
- export const calculateCriticalPathTool = {
256
+ });
257
+ export const calculateCriticalPathTool = defineTool({
376
258
  name: 'calculate_critical_path',
377
259
  title: 'Calculate Critical Path',
378
260
  description: 'Calculate Critical Path Method (CPM) schedule, early/late start and finish, total slack, and critical bottlenecks for a project.',
379
261
  zodSchema: z.object({
380
262
  projectId: z.string().optional().describe('Project ID (falls back to ambient context if omitted)')
381
263
  }),
382
- inputSchema: {
383
- type: 'object',
384
- properties: {
385
- projectId: { type: 'string', description: 'Project ID (falls back to ambient context if omitted)' }
386
- },
387
- additionalProperties: false
388
- },
389
264
  annotations: { readOnlyHint: true },
390
265
  execute: async (args, target, ambientContext) => {
391
266
  const projectId = args.projectId || ambientContext?.projectId;
@@ -394,8 +269,8 @@ export const calculateCriticalPathTool = {
394
269
  }
395
270
  return target.calculateCriticalPath(projectId);
396
271
  }
397
- };
398
- export const getTimelineLadderTool = {
272
+ });
273
+ export const getTimelineLadderTool = defineTool({
399
274
  name: 'get_timeline_ladder',
400
275
  title: 'Get Timeline Ladder of Abstraction',
401
276
  description: 'Retrieve Ladder of Abstraction for a project timeline across macro phase envelopes, standard Gantt tasks & CPM, and concrete deliverables/time/attachments.',
@@ -405,16 +280,6 @@ export const getTimelineLadderTool = {
405
280
  containerId: z.string().optional().describe('Optional container ID filter'),
406
281
  iterationId: z.string().optional().describe('Optional iteration/sprint ID filter')
407
282
  }),
408
- inputSchema: {
409
- type: 'object',
410
- properties: {
411
- projectId: { type: 'string', description: 'Project ID (falls back to ambient context if omitted)' },
412
- level: { type: 'string', enum: ['macro', 'standard', 'concrete', 'all'], description: 'Abstraction level' },
413
- containerId: { type: 'string', description: 'Optional container ID filter' },
414
- iterationId: { type: 'string', description: 'Optional iteration/sprint ID filter' }
415
- },
416
- additionalProperties: false
417
- },
418
283
  annotations: { readOnlyHint: true },
419
284
  execute: async (args, target, ambientContext) => {
420
285
  const projectId = args.projectId || ambientContext?.projectId;
@@ -427,68 +292,44 @@ export const getTimelineLadderTool = {
427
292
  iterationId: args.iterationId
428
293
  });
429
294
  }
430
- };
431
- export const getTaskLadderTool = {
295
+ });
296
+ export const getTaskLadderTool = defineTool({
432
297
  name: 'get_task_ladder',
433
298
  title: 'Get Task Ladder View',
434
299
  description: 'Retrieve multi-scale ladder view for a single task, connecting its macro phase, standard CPM timeline position, and concrete work evidence.',
435
300
  zodSchema: z.object({
436
301
  taskId: z.string().describe('The task ID')
437
302
  }),
438
- inputSchema: {
439
- type: 'object',
440
- properties: {
441
- taskId: { type: 'string', description: 'The task ID' }
442
- },
443
- required: ['taskId'],
444
- additionalProperties: false
445
- },
446
303
  annotations: { readOnlyHint: true },
447
304
  execute: async (args, target) => {
448
305
  return target.getTaskLadder(args.taskId);
449
306
  }
450
- };
451
- export const getTaskMetricsTool = {
307
+ });
308
+ export const getTaskMetricsTool = defineTool({
452
309
  name: 'get_task_metrics',
453
310
  title: 'Get Task Metrics',
454
311
  description: 'Retrieve multi-dimensional task metrics including inferred actuals, active working duration, effort/duration/schedule variances, progress inference, and Earned Value Management (EVM) metrics.',
455
312
  zodSchema: z.object({
456
313
  taskId: z.string().describe('The task ID')
457
314
  }),
458
- inputSchema: {
459
- type: 'object',
460
- properties: {
461
- taskId: { type: 'string', description: 'The task ID' }
462
- },
463
- required: ['taskId'],
464
- additionalProperties: false
465
- },
466
315
  annotations: { readOnlyHint: true },
467
316
  execute: async (args, target) => {
468
317
  return target.getTaskMetrics(args.taskId);
469
318
  }
470
- };
471
- export const getTaskProgressHistoryTool = {
319
+ });
320
+ export const getTaskProgressHistoryTool = defineTool({
472
321
  name: 'get_task_progress_history',
473
322
  title: 'Get Task Progress History',
474
323
  description: 'Retrieve time-series progress data points and curve shape classification (linear, s_curve, early_surge, late_rush, stalled) for a task.',
475
324
  zodSchema: z.object({
476
325
  taskId: z.string().describe('The task ID')
477
326
  }),
478
- inputSchema: {
479
- type: 'object',
480
- properties: {
481
- taskId: { type: 'string', description: 'The task ID' }
482
- },
483
- required: ['taskId'],
484
- additionalProperties: false
485
- },
486
327
  annotations: { readOnlyHint: true },
487
328
  execute: async (args, target) => {
488
329
  return target.getTaskProgressHistory(args.taskId);
489
330
  }
490
- };
491
- export const getWorkloadDistributionTool = {
331
+ });
332
+ export const getWorkloadDistributionTool = defineTool({
492
333
  name: 'get_workload_distribution',
493
334
  title: 'Get Workload Distribution',
494
335
  description: 'Retrieve time-series workload and capacity distribution suitable for streamgraphs, stacked charts, and team capacity planning.',
@@ -501,19 +342,6 @@ export const getWorkloadDistributionTool = {
501
342
  metric: z.enum(['scheduled', 'logged', 'remaining', 'blended']).optional().describe('Effort metric mode'),
502
343
  defaultWeeklyCapacityHours: z.number().optional().describe('Default weekly capacity hours per person (default 40)')
503
344
  }),
504
- inputSchema: {
505
- type: 'object',
506
- properties: {
507
- projectId: { type: 'string', description: 'Project ID (optional, defaults to workspace-wide or ambient project)' },
508
- startDate: { type: 'string', description: 'Start date ISO (YYYY-MM-DD)' },
509
- endDate: { type: 'string', description: 'End date ISO (YYYY-MM-DD)' },
510
- interval: { type: 'string', enum: ['day', 'week', 'month'], description: 'Bucket interval' },
511
- groupBy: { type: 'string', enum: ['assignee', 'team', 'taskType', 'priority', 'status'], description: 'Dimension to segment by' },
512
- metric: { type: 'string', enum: ['scheduled', 'logged', 'remaining', 'blended'], description: 'Effort metric mode' },
513
- defaultWeeklyCapacityHours: { type: 'number', description: 'Default weekly capacity hours per person' }
514
- },
515
- additionalProperties: false
516
- },
517
345
  annotations: { readOnlyHint: true },
518
346
  execute: async (args, target, ambientContext) => {
519
347
  const projectId = args.projectId || ambientContext?.projectId;
@@ -526,7 +354,7 @@ export const getWorkloadDistributionTool = {
526
354
  defaultWeeklyCapacityHours: args.defaultWeeklyCapacityHours
527
355
  });
528
356
  }
529
- };
357
+ });
530
358
  export const ALL_TOOLS = [
531
359
  listProjectsTool,
532
360
  getProjectTool,
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { describe, it, expect } from 'vitest';
2
2
  import { ALL_TOOLS } from './definitions.js';
3
3
  describe('MCP tool definitions', () => {
4
- // Tool arguments are parsed with zodSchema before execution (unknown keys are stripped),
5
- // while clients see inputSchema. The two must describe the same fields.
4
+ // inputSchema is generated from zodSchema by defineTool; this guards the generation itself
5
+ // (e.g. a zod feature that zod-to-json-schema cannot express would drop fields here).
6
6
  it.each(ALL_TOOLS.map((t) => [t.name, t]))('%s: zodSchema and inputSchema agree', (_name, tool) => {
7
7
  const json = tool.inputSchema;
8
8
  const shape = tool.zodSchema.shape;
@@ -12,5 +12,13 @@ describe('MCP tool definitions', () => {
12
12
  .map(([key]) => key)
13
13
  .sort()).toEqual([...(json.required ?? [])].sort());
14
14
  });
15
+ it('generates closed object schemas with descriptions for every tool', () => {
16
+ for (const tool of ALL_TOOLS) {
17
+ expect(tool.inputSchema).toMatchObject({ type: 'object', additionalProperties: false });
18
+ expect(tool.inputSchema).not.toHaveProperty('$schema');
19
+ }
20
+ const updateTask = ALL_TOOLS.find((t) => t.name === 'update_task');
21
+ expect(updateTask.inputSchema.properties.isBlocked.description).toBe('Whether the task is blocked');
22
+ });
15
23
  });
16
24
  //# sourceMappingURL=definitions.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.test.js","sourceRoot":"","sources":["../../src/tools/definitions.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,yFAAyF;IACzF,wEAAwE;IACxE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC,qCAAqC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACzG,MAAM,IAAI,GAAG,IAAI,CAAC,WAA4E,CAAC;QAC/F,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAkD,CAAC;QAEhF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,MAAM,CACJ,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;aACnB,IAAI,EAAE,CACV,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"definitions.test.js","sourceRoot":"","sources":["../../src/tools/definitions.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,2FAA2F;IAC3F,sFAAsF;IACtF,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC,qCAAqC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACzG,MAAM,IAAI,GAAG,IAAI,CAAC,WAA4E,CAAC;QAC/F,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAkD,CAAC;QAEhF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,MAAM,CACJ,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;aACnB,IAAI,EAAE,CACV,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;YACxF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAE,CAAC;QACpE,MAAM,CAAE,UAAU,CAAC,WAAmB,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@critical-path/mcp",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Standard Model Context Protocol (MCP) server and client-side WebMCP support for Critical Path",
5
5
  "author": "Jack James",
6
6
  "license": "MIT",
@@ -34,8 +34,9 @@
34
34
  "dependencies": {
35
35
  "@modelcontextprotocol/sdk": "^1.6.0",
36
36
  "zod": "^3.24.0",
37
- "@critical-path/client": "0.14.7",
38
- "@critical-path/core": "0.22.0"
37
+ "zod-to-json-schema": "^3.25.2",
38
+ "@critical-path/client": "0.14.9",
39
+ "@critical-path/core": "0.24.0"
39
40
  },
40
41
  "devDependencies": {
41
42
  "@types/node": "^24.0.0",
@@ -0,0 +1,28 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { parseArgs, buildApiHeaders, isInsecureRemote } from './args.js';
3
+
4
+ describe('MCP CLI arguments', () => {
5
+ it('collects repeated --header flags', () => {
6
+ const options = parseArgs(['--api', 'https://x.test/api', '--header', 'X-Tenant: acme', '--header', 'X-Trace: 1']);
7
+ expect(options.api).toBe('https://x.test/api');
8
+ expect(options.headers).toEqual(['X-Tenant: acme', 'X-Trace: 1']);
9
+ });
10
+
11
+ it('builds headers from the token env var and flags, with flags taking precedence', () => {
12
+ expect(buildApiHeaders(['X-Tenant: acme'], { CRITICAL_PATH_API_TOKEN: 'secret' })).toEqual({
13
+ Authorization: 'Bearer secret',
14
+ 'X-Tenant': 'acme'
15
+ });
16
+ expect(buildApiHeaders(['Authorization: Basic abc'], { CRITICAL_PATH_API_TOKEN: 'secret' }).Authorization).toBe(
17
+ 'Basic abc'
18
+ );
19
+ expect(() => buildApiHeaders(['no-colon'], {})).toThrow(/Expected "Name: value"/);
20
+ });
21
+
22
+ it('flags plain http to remote hosts only', () => {
23
+ expect(isInsecureRemote('http://api.example.com')).toBe(true);
24
+ expect(isInsecureRemote('https://api.example.com')).toBe(false);
25
+ expect(isInsecureRemote('http://localhost:3000/api')).toBe(false);
26
+ expect(isInsecureRemote('http://127.0.0.1:3000')).toBe(false);
27
+ });
28
+ });