@inspectr/mcplab-mcp-server 1.8.0 → 1.8.1
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.
|
@@ -65,6 +65,41 @@ describe('mcp tool contracts', () => {
|
|
|
65
65
|
expect(parsed.success).toBe(true);
|
|
66
66
|
expect(parsed.data.name).toBe('Named scenario');
|
|
67
67
|
});
|
|
68
|
+
it('accepts full evaluation rules in scenario authoring tools', async () => {
|
|
69
|
+
const tools = setupTools();
|
|
70
|
+
const schema = asSchema(tools.get('mcplab_generate_scenario_entry').config.inputSchema);
|
|
71
|
+
const parsed = schema.safeParse({
|
|
72
|
+
id: 'full-evaluation-rules',
|
|
73
|
+
servers: ['mcp-lab'],
|
|
74
|
+
prompt: 'Run the complete evaluation check.',
|
|
75
|
+
eval: {
|
|
76
|
+
response_assertions: [{ type: 'contains', value: 'Paris' }],
|
|
77
|
+
tool_input_assertions: [{ type: 'jsonpath', tool: 'fetch', path: '$.days', equals: 5 }],
|
|
78
|
+
agent_assertions: [{ label: 'Complete', prompt: 'Is the answer complete?' }]
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
expect(parsed.success).toBe(true);
|
|
82
|
+
expect(parsed.data.eval).toEqual({
|
|
83
|
+
response_assertions: [{ type: 'contains', value: 'Paris' }],
|
|
84
|
+
tool_input_assertions: [{ type: 'jsonpath', tool: 'fetch', path: '$.days', equals: 5 }],
|
|
85
|
+
agent_assertions: [{ label: 'Complete', prompt: 'Is the answer complete?' }]
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
it('describes evaluation assertion types and exposes them in scenario output', () => {
|
|
89
|
+
const tools = setupTools();
|
|
90
|
+
const generateTool = tools.get('mcplab_generate_scenario_entry').config;
|
|
91
|
+
expect(generateTool.description).toContain('eval object');
|
|
92
|
+
expect(generateTool.inputSchema.required_tools.description).toContain('Simple shorthand');
|
|
93
|
+
expect(generateTool.inputSchema.eval.description).toContain('Full evaluation-rule object');
|
|
94
|
+
const outputScenario = asSchema(tools.get('mcplab_generate_scenario_entry').config.outputSchema.scenario);
|
|
95
|
+
const parsed = outputScenario.safeParse({
|
|
96
|
+
id: 'typed-output',
|
|
97
|
+
mcp_servers: [{ ref: 'mcp-lab' }],
|
|
98
|
+
prompt: 'Run the typed output check.',
|
|
99
|
+
eval: { response_assertions: [{ type: 'contains', value: 'Paris' }] }
|
|
100
|
+
});
|
|
101
|
+
expect(parsed.success).toBe(true);
|
|
102
|
+
});
|
|
68
103
|
it('generates scenario-owned MCP server refs', async () => {
|
|
69
104
|
const tool = setupTools().get('mcplab_generate_scenario_entry');
|
|
70
105
|
const result = await tool.cb({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.contracts.test.js","sourceRoot":"","sources":["../src/runtime.contracts.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.contracts.test.js","sourceRoot":"","sources":["../src/runtime.contracts.test.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAUA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAEpF,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAUA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAEpF,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AA4tBnG,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,6BAA6B,CAAC;IACzC,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAoDjC;AAED,wBAAgB,oCAAoC,IAAI,sBAAsB,CAM7E;AAED,wBAAgB,sBAAsB,IAAI,SAAS,CAalD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4vErD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0EvD;AAwsCD,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EACrC,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
package/dist/runtime.js
CHANGED
|
@@ -164,13 +164,148 @@ const ServerEntrySchema = z.object({
|
|
|
164
164
|
url: z.string(),
|
|
165
165
|
auth: ServerAuthSchema.optional()
|
|
166
166
|
});
|
|
167
|
+
const ResponseAssertionSchema = z
|
|
168
|
+
.discriminatedUnion('type', [
|
|
169
|
+
z.object({
|
|
170
|
+
type: z.literal('regex').describe('Match the final response against a regular expression.'),
|
|
171
|
+
pattern: z.string().describe('JavaScript regex pattern; matching is case-insensitive.')
|
|
172
|
+
}),
|
|
173
|
+
z.object({
|
|
174
|
+
type: z.literal('contains').describe('Require literal text in the final response.'),
|
|
175
|
+
value: z.string().describe('Case-insensitive text that must appear.')
|
|
176
|
+
}),
|
|
177
|
+
z.object({
|
|
178
|
+
type: z
|
|
179
|
+
.literal('not_contains')
|
|
180
|
+
.describe('Require literal text to be absent from the final response.'),
|
|
181
|
+
value: z.string().describe('Case-insensitive text that must not appear.')
|
|
182
|
+
}),
|
|
183
|
+
z.object({
|
|
184
|
+
type: z
|
|
185
|
+
.literal('starts_with')
|
|
186
|
+
.describe('Require the final response to start with literal text.'),
|
|
187
|
+
value: z.string().describe('Case-insensitive prefix.')
|
|
188
|
+
}),
|
|
189
|
+
z.object({
|
|
190
|
+
type: z.literal('ends_with').describe('Require the final response to end with literal text.'),
|
|
191
|
+
value: z.string().describe('Case-insensitive suffix.')
|
|
192
|
+
}),
|
|
193
|
+
z.object({
|
|
194
|
+
type: z
|
|
195
|
+
.literal('equals')
|
|
196
|
+
.describe('Require the entire final response to equal literal text.'),
|
|
197
|
+
value: z.string().describe('Case-insensitive expected response.')
|
|
198
|
+
}),
|
|
199
|
+
z.object({
|
|
200
|
+
type: z.literal('jsonpath').describe('Inspect a value in a JSON final response.'),
|
|
201
|
+
path: z.string().describe('JSONPath expression.'),
|
|
202
|
+
equals: z
|
|
203
|
+
.union([z.string(), z.number(), z.boolean()])
|
|
204
|
+
.optional()
|
|
205
|
+
.describe('Optional primitive value that must match.')
|
|
206
|
+
}),
|
|
207
|
+
z.object({
|
|
208
|
+
type: z
|
|
209
|
+
.literal('jsonpath_exists')
|
|
210
|
+
.describe('Require a JSONPath to exist in a JSON final response.'),
|
|
211
|
+
path: z.string().describe('JSONPath expression.')
|
|
212
|
+
}),
|
|
213
|
+
z.object({
|
|
214
|
+
type: z
|
|
215
|
+
.literal('jsonpath_not_exists')
|
|
216
|
+
.describe('Require a JSONPath to be absent from a JSON final response.'),
|
|
217
|
+
path: z.string().describe('JSONPath expression.')
|
|
218
|
+
})
|
|
219
|
+
])
|
|
220
|
+
.describe('Assertions evaluated against the final response text or JSON.');
|
|
221
|
+
const ToolInputAssertionSchema = z
|
|
222
|
+
.discriminatedUnion('type', [
|
|
223
|
+
z.object({
|
|
224
|
+
type: z.literal('contains').describe('Require text in serialized tool arguments.'),
|
|
225
|
+
tool: z.string().describe('Raw MCP tool name.'),
|
|
226
|
+
value: z.string().describe('Case-insensitive text that must appear in arguments.')
|
|
227
|
+
}),
|
|
228
|
+
z.object({
|
|
229
|
+
type: z.literal('regex').describe('Match serialized tool arguments with a regex.'),
|
|
230
|
+
tool: z.string().describe('Raw MCP tool name.'),
|
|
231
|
+
pattern: z.string().describe('JavaScript regex pattern.')
|
|
232
|
+
}),
|
|
233
|
+
z.object({
|
|
234
|
+
type: z.literal('jsonpath').describe('Inspect a value in tool arguments.'),
|
|
235
|
+
tool: z.string().describe('Raw MCP tool name.'),
|
|
236
|
+
path: z.string().describe('JSONPath expression over the tool arguments.'),
|
|
237
|
+
equals: z
|
|
238
|
+
.union([z.string(), z.number(), z.boolean()])
|
|
239
|
+
.optional()
|
|
240
|
+
.describe('Optional primitive value that must match.')
|
|
241
|
+
})
|
|
242
|
+
])
|
|
243
|
+
.describe('Assertions evaluated against calls to a named MCP tool.');
|
|
244
|
+
const AgentAssertionSchema = z
|
|
245
|
+
.object({
|
|
246
|
+
label: z.string().describe('Stable name for the semantic check.'),
|
|
247
|
+
prompt: z.string().describe('Question the judge should answer about the scenario result.')
|
|
248
|
+
})
|
|
249
|
+
.describe('Semantic checks for requirements that are not reliably deterministic.');
|
|
250
|
+
const AgentContextSchema = z
|
|
251
|
+
.object({
|
|
252
|
+
include_prompt: z
|
|
253
|
+
.boolean()
|
|
254
|
+
.optional()
|
|
255
|
+
.describe('Include the scenario prompt in judge context.'),
|
|
256
|
+
include_tool_sequence: z
|
|
257
|
+
.boolean()
|
|
258
|
+
.optional()
|
|
259
|
+
.describe('Include called raw MCP tool names in judge context.'),
|
|
260
|
+
include_tool_inputs: z
|
|
261
|
+
.boolean()
|
|
262
|
+
.optional()
|
|
263
|
+
.describe('Include raw MCP tool arguments in judge context.')
|
|
264
|
+
})
|
|
265
|
+
.describe('Shared context sent to every agent assertion.');
|
|
266
|
+
const EvalRulesSchema = z
|
|
267
|
+
.object({
|
|
268
|
+
tool_constraints: z
|
|
269
|
+
.object({
|
|
270
|
+
required_tools: z
|
|
271
|
+
.array(z.string())
|
|
272
|
+
.optional()
|
|
273
|
+
.describe('Raw MCP tools that must be called.'),
|
|
274
|
+
forbidden_tools: z
|
|
275
|
+
.array(z.string())
|
|
276
|
+
.optional()
|
|
277
|
+
.describe('Raw MCP tools that must not be called.')
|
|
278
|
+
})
|
|
279
|
+
.strict()
|
|
280
|
+
.describe('Deterministic MCP tool-usage constraints.')
|
|
281
|
+
.optional(),
|
|
282
|
+
tool_sequence: z
|
|
283
|
+
.array(z.string())
|
|
284
|
+
.optional()
|
|
285
|
+
.describe('Flat ordered list of raw MCP tool names that must be called.'),
|
|
286
|
+
tool_input_assertions: z
|
|
287
|
+
.array(ToolInputAssertionSchema)
|
|
288
|
+
.optional()
|
|
289
|
+
.describe('Checks over MCP tool arguments.'),
|
|
290
|
+
response_assertions: z
|
|
291
|
+
.array(ResponseAssertionSchema)
|
|
292
|
+
.optional()
|
|
293
|
+
.describe('Checks over the final response.'),
|
|
294
|
+
agent_assertions: z
|
|
295
|
+
.array(AgentAssertionSchema)
|
|
296
|
+
.optional()
|
|
297
|
+
.describe('Semantic checks judged by an evaluation agent.'),
|
|
298
|
+
agent_context: AgentContextSchema.optional()
|
|
299
|
+
})
|
|
300
|
+
.strict()
|
|
301
|
+
.describe('Full MCPLab evaluation rules. Use this object for all supported assertion types.');
|
|
167
302
|
const ScenarioEntrySchema = z.object({
|
|
168
303
|
id: z.string(),
|
|
169
304
|
name: z.string().optional(),
|
|
170
305
|
agent: z.string().optional(),
|
|
171
306
|
mcp_servers: z.array(z.object({ ref: z.string() })),
|
|
172
307
|
prompt: z.string(),
|
|
173
|
-
eval:
|
|
308
|
+
eval: EvalRulesSchema.optional(),
|
|
174
309
|
extract: z
|
|
175
310
|
.array(z.object({
|
|
176
311
|
name: z.string(),
|
|
@@ -998,24 +1133,50 @@ export function registerTools(server) {
|
|
|
998
1133
|
});
|
|
999
1134
|
});
|
|
1000
1135
|
registerTool('mcplab_create_test_case', {
|
|
1001
|
-
description: 'Create one reviewed MCPLab Test Case in mcplab/test-cases/. This is a scoped YAML write and refuses duplicate IDs.',
|
|
1136
|
+
description: 'Create one reviewed MCPLab Test Case in mcplab/test-cases/. Put evaluation checks in the eval object for full support of response, tool-input, and agent assertions. Simple shorthand fields are supported for basic cases; do not provide a shorthand field together with its equivalent eval field. This is a scoped YAML write and refuses duplicate IDs.',
|
|
1002
1137
|
outputSchema: { id: z.string(), path: z.string(), test_case: ScenarioEntrySchema },
|
|
1003
1138
|
inputSchema: {
|
|
1004
|
-
id: z
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1139
|
+
id: z
|
|
1140
|
+
.string()
|
|
1141
|
+
.min(1)
|
|
1142
|
+
.describe('Stable Test Case id; letters, numbers, hyphens, and underscores.'),
|
|
1143
|
+
name: z
|
|
1144
|
+
.string()
|
|
1145
|
+
.optional()
|
|
1146
|
+
.describe('Human-readable Test Case label; defaults to id when blank.'),
|
|
1147
|
+
servers: z.array(z.string()).min(1).describe('MCP server ids available to this Test Case.'),
|
|
1148
|
+
prompt: z
|
|
1149
|
+
.string()
|
|
1150
|
+
.min(1)
|
|
1151
|
+
.max(4000)
|
|
1152
|
+
.describe('Task prompt executed by the evaluation agent.'),
|
|
1153
|
+
required_tools: z
|
|
1154
|
+
.array(z.string())
|
|
1155
|
+
.optional()
|
|
1156
|
+
.describe('Simple shorthand for eval.tool_constraints.required_tools. Use for basic checks only; put new or advanced rules under eval. Do not provide both.'),
|
|
1157
|
+
forbidden_tools: z
|
|
1158
|
+
.array(z.string())
|
|
1159
|
+
.optional()
|
|
1160
|
+
.describe('Simple shorthand for eval.tool_constraints.forbidden_tools. Use for basic checks only; put new or advanced rules under eval. Do not provide both.'),
|
|
1010
1161
|
tool_sequence: z
|
|
1011
1162
|
.array(z.string())
|
|
1012
1163
|
.min(1)
|
|
1013
1164
|
.optional()
|
|
1014
|
-
.describe('
|
|
1015
|
-
extract_rules: z
|
|
1016
|
-
|
|
1165
|
+
.describe('Simple shorthand for eval.tool_sequence: a flat ordered list of raw MCP tool names. Use eval for new or advanced rules. Do not provide both.'),
|
|
1166
|
+
extract_rules: z
|
|
1167
|
+
.array(z.object({
|
|
1168
|
+
name: z.string().describe('Extracted field name.'),
|
|
1169
|
+
regex: z.string().describe('Regex applied to final_text.')
|
|
1170
|
+
}))
|
|
1171
|
+
.optional()
|
|
1172
|
+
.describe('Extract values from the final response for trend analysis.'),
|
|
1173
|
+
response_regex_patterns: z
|
|
1174
|
+
.array(z.string())
|
|
1175
|
+
.optional()
|
|
1176
|
+
.describe('Simple shorthand for response regex checks. Use eval.response_assertions for new or advanced checks; choose type=contains for literal text. Do not provide both.'),
|
|
1177
|
+
eval: EvalRulesSchema.optional().describe('Full evaluation-rule object. Use this for new authoring or whenever you need more than one rule type; do not combine it with equivalent shorthand fields.')
|
|
1017
1178
|
}
|
|
1018
|
-
}, async ({ id, name, servers, prompt, required_tools, forbidden_tools, tool_sequence, extract_rules, response_regex_patterns }) => withToolHandling(async () => {
|
|
1179
|
+
}, async ({ id, name, servers, prompt, required_tools, forbidden_tools, tool_sequence, extract_rules, response_regex_patterns, eval: evalRules }) => withToolHandling(async () => {
|
|
1019
1180
|
const bundleRoot = resolveBundleRoot();
|
|
1020
1181
|
const library = readLibrary(bundleRoot, false);
|
|
1021
1182
|
const created = createTestCaseFile({
|
|
@@ -1030,7 +1191,8 @@ export function registerTools(server) {
|
|
|
1030
1191
|
forbiddenTools: forbidden_tools,
|
|
1031
1192
|
toolSequence: tool_sequence,
|
|
1032
1193
|
extractRules: extract_rules,
|
|
1033
|
-
responseRegexPatterns: response_regex_patterns
|
|
1194
|
+
responseRegexPatterns: response_regex_patterns,
|
|
1195
|
+
eval: evalRules
|
|
1034
1196
|
}
|
|
1035
1197
|
});
|
|
1036
1198
|
return ok(`Created Test Case '${created.id}'`, {
|
|
@@ -1051,7 +1213,7 @@ export function registerTools(server) {
|
|
|
1051
1213
|
});
|
|
1052
1214
|
}));
|
|
1053
1215
|
registerTool('mcplab_update_test_case', {
|
|
1054
|
-
description: 'Replace one existing MCPLab test case in place. Requires confirm=true and never creates a new file.',
|
|
1216
|
+
description: 'Replace one existing MCPLab test case in place. Put evaluation checks in the eval object for full support of response, tool-input, and agent assertions. Simple shorthand fields are supported for basic cases; do not provide a shorthand field together with its equivalent eval field. Requires confirm=true and never creates a new file.',
|
|
1055
1217
|
inputSchema: {
|
|
1056
1218
|
file_path: z
|
|
1057
1219
|
.string()
|
|
@@ -1059,18 +1221,48 @@ export function registerTools(server) {
|
|
|
1059
1221
|
confirm: z
|
|
1060
1222
|
.literal(true)
|
|
1061
1223
|
.describe('Required confirmation that the existing file should be overwritten.'),
|
|
1062
|
-
id: z
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1224
|
+
id: z
|
|
1225
|
+
.string()
|
|
1226
|
+
.min(1)
|
|
1227
|
+
.describe('Stable Test Case id; letters, numbers, hyphens, and underscores.'),
|
|
1228
|
+
name: z
|
|
1229
|
+
.string()
|
|
1230
|
+
.optional()
|
|
1231
|
+
.describe('Human-readable Test Case label; defaults to id when blank.'),
|
|
1232
|
+
servers: z.array(z.string()).min(1).describe('MCP server ids available to this Test Case.'),
|
|
1233
|
+
prompt: z
|
|
1234
|
+
.string()
|
|
1235
|
+
.min(1)
|
|
1236
|
+
.max(4000)
|
|
1237
|
+
.describe('Task prompt executed by the evaluation agent.'),
|
|
1238
|
+
required_tools: z
|
|
1239
|
+
.array(z.string())
|
|
1240
|
+
.optional()
|
|
1241
|
+
.describe('Simple shorthand for eval.tool_constraints.required_tools. Use for basic checks only; put new or advanced rules under eval. Do not provide both.'),
|
|
1242
|
+
forbidden_tools: z
|
|
1243
|
+
.array(z.string())
|
|
1244
|
+
.optional()
|
|
1245
|
+
.describe('Simple shorthand for eval.tool_constraints.forbidden_tools. Use for basic checks only; put new or advanced rules under eval. Do not provide both.'),
|
|
1246
|
+
tool_sequence: z
|
|
1247
|
+
.array(z.string())
|
|
1248
|
+
.min(1)
|
|
1249
|
+
.optional()
|
|
1250
|
+
.describe('Simple shorthand for eval.tool_sequence: a flat ordered list of raw MCP tool names. Use eval for new or advanced rules. Do not provide both.'),
|
|
1251
|
+
extract_rules: z
|
|
1252
|
+
.array(z.object({
|
|
1253
|
+
name: z.string().describe('Extracted field name.'),
|
|
1254
|
+
regex: z.string().describe('Regex applied to final_text.')
|
|
1255
|
+
}))
|
|
1256
|
+
.optional()
|
|
1257
|
+
.describe('Extract values from the final response for trend analysis.'),
|
|
1258
|
+
response_regex_patterns: z
|
|
1259
|
+
.array(z.string())
|
|
1260
|
+
.optional()
|
|
1261
|
+
.describe('Simple shorthand for response regex checks. Use eval.response_assertions for new or advanced checks; choose type=contains for literal text. Do not provide both.'),
|
|
1262
|
+
eval: EvalRulesSchema.optional().describe('Full evaluation-rule object. Use this for new authoring or whenever you need more than one rule type; do not combine it with equivalent shorthand fields.')
|
|
1071
1263
|
},
|
|
1072
1264
|
outputSchema: { id: z.string(), path: z.string(), test_case: ScenarioEntrySchema }
|
|
1073
|
-
}, async ({ file_path, confirm: _confirm, id, name, servers, prompt, required_tools, forbidden_tools, tool_sequence, extract_rules, response_regex_patterns }) => withToolHandling(() => {
|
|
1265
|
+
}, async ({ file_path, confirm: _confirm, id, name, servers, prompt, required_tools, forbidden_tools, tool_sequence, extract_rules, response_regex_patterns, eval: evalRules }) => withToolHandling(() => {
|
|
1074
1266
|
const library = readLibrary(resolveBundleRoot(), false);
|
|
1075
1267
|
const updated = updateTestCaseFile({
|
|
1076
1268
|
librariesDir: resolveBundleRoot(),
|
|
@@ -1085,7 +1277,8 @@ export function registerTools(server) {
|
|
|
1085
1277
|
forbiddenTools: forbidden_tools,
|
|
1086
1278
|
toolSequence: tool_sequence,
|
|
1087
1279
|
extractRules: extract_rules,
|
|
1088
|
-
responseRegexPatterns: response_regex_patterns
|
|
1280
|
+
responseRegexPatterns: response_regex_patterns,
|
|
1281
|
+
eval: evalRules
|
|
1089
1282
|
}
|
|
1090
1283
|
});
|
|
1091
1284
|
return ok(`Updated Test Case '${updated.id}'`, {
|
|
@@ -1095,7 +1288,7 @@ export function registerTools(server) {
|
|
|
1095
1288
|
});
|
|
1096
1289
|
}));
|
|
1097
1290
|
registerTool('mcplab_create_evaluation_config', {
|
|
1098
|
-
description: 'Create one reviewed MCPLab evaluation configuration in mcplab/evals/. This is a scoped YAML write with automatic filename normalization and collision handling.',
|
|
1291
|
+
description: 'Create one reviewed MCPLab evaluation configuration in mcplab/evals/. This is a scoped YAML write with automatic filename normalization and collision handling. In scenario eval blocks, use the full evaluation rules for response, tool-input, and agent checks: tool_constraints, flat tool_sequence, response_assertions (contains, equals, regex, and JSONPath variants), tool_input_assertions, agent_assertions, and agent_context. Use contains for literal text; use regex only for patterns. Do not combine eval rules with equivalent shorthand fields.',
|
|
1099
1292
|
outputSchema: {
|
|
1100
1293
|
file_name: z.string(),
|
|
1101
1294
|
path: z.string(),
|
|
@@ -1103,8 +1296,11 @@ export function registerTools(server) {
|
|
|
1103
1296
|
config: GenericObjectSchema
|
|
1104
1297
|
},
|
|
1105
1298
|
inputSchema: {
|
|
1106
|
-
file_name: z
|
|
1107
|
-
|
|
1299
|
+
file_name: z
|
|
1300
|
+
.string()
|
|
1301
|
+
.min(1)
|
|
1302
|
+
.describe('Destination YAML filename under mcplab/evals/. Extension is added if omitted.'),
|
|
1303
|
+
config: GenericObjectSchema.describe('Complete MCPLab evaluation configuration. Scenario eval blocks support tool_constraints, a flat tool_sequence, response_assertions (contains, not_contains, starts_with, ends_with, equals, regex, and JSONPath variants), tool_input_assertions, agent_assertions, and agent_context. Use contains for literal response text; use regex only when pattern matching is required.')
|
|
1108
1304
|
}
|
|
1109
1305
|
}, async ({ file_name, config }) => withToolHandling(async () => {
|
|
1110
1306
|
const created = createEvaluationConfigFile({
|
|
@@ -1120,11 +1316,11 @@ export function registerTools(server) {
|
|
|
1120
1316
|
});
|
|
1121
1317
|
}));
|
|
1122
1318
|
registerTool('mcplab_get_evaluation_config', {
|
|
1123
|
-
description: 'Read one existing MCPLab evaluation config, including its full parsed YAML content.',
|
|
1319
|
+
description: 'Read one existing MCPLab evaluation config, including its full parsed YAML content. Returned scenario eval blocks may use full tool constraints, flat tool sequences, response/tool-input assertions, agent assertions, and agent context.',
|
|
1124
1320
|
inputSchema: {
|
|
1125
1321
|
config_path: z
|
|
1126
1322
|
.string()
|
|
1127
|
-
.describe('Path to an existing eval YAML, relative to the MCPLab evals directory.')
|
|
1323
|
+
.describe('Path to an existing eval YAML, relative to the MCPLab evals directory. Invalid, missing, or out-of-root paths return an error; the tool never silently coerces them.')
|
|
1128
1324
|
},
|
|
1129
1325
|
outputSchema: z.object({
|
|
1130
1326
|
path: z.string(),
|
|
@@ -1143,12 +1339,12 @@ export function registerTools(server) {
|
|
|
1143
1339
|
});
|
|
1144
1340
|
}));
|
|
1145
1341
|
registerTool('mcplab_update_evaluation_config', {
|
|
1146
|
-
description: 'Replace one existing MCPLab evaluation config in place after normalization. Requires confirm=true; refuses missing or out-of-root paths and never creates a new file.',
|
|
1342
|
+
description: 'Replace one existing MCPLab evaluation config in place after normalization. Requires confirm=true; refuses missing or out-of-root paths and never creates a new file. In scenario eval blocks, use the full evaluation rules for response, tool-input, and agent checks: tool_constraints, flat tool_sequence, response_assertions (contains, equals, regex, and JSONPath variants), tool_input_assertions, agent_assertions, and agent_context. Use contains for literal text; use regex only for patterns. Do not combine eval rules with equivalent shorthand fields.',
|
|
1147
1343
|
inputSchema: {
|
|
1148
1344
|
config_path: z
|
|
1149
1345
|
.string()
|
|
1150
|
-
.describe('Path to an existing eval YAML, relative to the MCPLab evals directory.'),
|
|
1151
|
-
config: GenericObjectSchema.describe('Complete replacement evaluation configuration.'),
|
|
1346
|
+
.describe('Path to an existing eval YAML, relative to the MCPLab evals directory. Invalid, missing, or out-of-root paths return an error; the tool never silently coerces them.'),
|
|
1347
|
+
config: GenericObjectSchema.describe('Complete replacement evaluation configuration. Scenario eval blocks support tool_constraints, a flat tool_sequence, response_assertions (contains, not_contains, starts_with, ends_with, equals, regex, and JSONPath variants), tool_input_assertions, agent_assertions, and agent_context. Use contains for literal response text; use regex only when pattern matching is required.'),
|
|
1152
1348
|
confirm: z
|
|
1153
1349
|
.literal(true)
|
|
1154
1350
|
.describe('Required confirmation that the existing file should be overwritten.')
|
|
@@ -1175,7 +1371,7 @@ export function registerTools(server) {
|
|
|
1175
1371
|
});
|
|
1176
1372
|
}));
|
|
1177
1373
|
registerTool('mcplab_generate_scenario_entry', {
|
|
1178
|
-
description: 'Generate a MCPLab scenario YAML snippet with prompt, server links, and optional evaluation/extract rules.
|
|
1374
|
+
description: 'Generate a MCPLab scenario YAML snippet with prompt, server links, and optional evaluation/extract rules. Put checks in the eval object for full assertion support; simple shorthand fields are supported for basic cases and must not be combined with equivalent eval fields.',
|
|
1179
1375
|
outputSchema: {
|
|
1180
1376
|
scenario: ScenarioEntrySchema,
|
|
1181
1377
|
yaml: z.string(),
|
|
@@ -1206,17 +1402,24 @@ export function registerTools(server) {
|
|
|
1206
1402
|
.min(1)
|
|
1207
1403
|
.max(4000)
|
|
1208
1404
|
.describe('The task prompt the evaluation agent should execute (1-4000 chars).'),
|
|
1209
|
-
required_tools: z
|
|
1210
|
-
|
|
1405
|
+
required_tools: z
|
|
1406
|
+
.array(z.string())
|
|
1407
|
+
.optional()
|
|
1408
|
+
.describe('Simple shorthand for eval.tool_constraints.required_tools. Use for basic checks only; put new or advanced rules under eval. Do not provide both.'),
|
|
1409
|
+
forbidden_tools: z
|
|
1410
|
+
.array(z.string())
|
|
1411
|
+
.optional()
|
|
1412
|
+
.describe('Simple shorthand for eval.tool_constraints.forbidden_tools. Use for basic checks only; put new or advanced rules under eval. Do not provide both.'),
|
|
1211
1413
|
tool_sequence: z
|
|
1212
1414
|
.array(z.string())
|
|
1213
1415
|
.min(1)
|
|
1214
1416
|
.optional()
|
|
1215
|
-
.describe('
|
|
1417
|
+
.describe('Simple shorthand for eval.tool_sequence: a flat ordered list of raw MCP tool names. Use eval for new or advanced rules. Do not provide both.'),
|
|
1216
1418
|
response_regex_patterns: z
|
|
1217
1419
|
.array(z.string())
|
|
1218
1420
|
.optional()
|
|
1219
|
-
.describe('
|
|
1421
|
+
.describe('Simple shorthand for response regex checks. Use eval.response_assertions for new or advanced checks; choose type=contains for literal text. Do not provide both.'),
|
|
1422
|
+
eval: EvalRulesSchema.optional().describe('Full evaluation-rule object. Use this for new authoring or whenever you need more than one rule type; do not combine it with equivalent shorthand fields.'),
|
|
1220
1423
|
extract_rules: z
|
|
1221
1424
|
.array(z.object({
|
|
1222
1425
|
name: z.string().describe('Extracted field name.'),
|