@k08200/mcp-probe 1.6.0 → 1.8.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.
- package/README.md +86 -517
- package/dist/checker.d.ts.map +1 -1
- package/dist/checker.js +54 -56
- package/dist/checker.js.map +1 -1
- package/dist/cli.js +42 -10
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +30 -1
- package/dist/config.js.map +1 -1
- package/dist/doctor.d.ts +5 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +251 -31
- package/dist/doctor.js.map +1 -1
- package/dist/exit-code.d.ts +3 -0
- package/dist/exit-code.d.ts.map +1 -0
- package/dist/exit-code.js +8 -0
- package/dist/exit-code.js.map +1 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +1 -118
- package/dist/init.js.map +1 -1
- package/dist/issues.d.ts.map +1 -1
- package/dist/issues.js +33 -14
- package/dist/issues.js.map +1 -1
- package/dist/protocols/mcp-client.d.ts.map +1 -1
- package/dist/protocols/mcp-client.js +36 -17
- package/dist/protocols/mcp-client.js.map +1 -1
- package/dist/scaffold.d.ts +17 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +145 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/sidecar.d.ts +6 -0
- package/dist/sidecar.d.ts.map +1 -0
- package/dist/sidecar.js +76 -0
- package/dist/sidecar.js.map +1 -0
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/examples/fixtures/stdio-mcp-server.js +68 -0
- package/examples/github-actions/fleet.yml +1 -0
- package/examples/github-actions/remote-server.yml +1 -0
- package/examples/github-actions/single-server.yml +1 -0
- package/examples/self-check.config.json +3 -1
- package/examples/self-check.strict.config.json +16 -0
- package/examples/self-check.strict.tools.json +29 -0
- package/package.json +1 -1
- package/schemas/mcp-probe.config.schema.json +15 -0
- package/schemas/mcp-probe.sidecar.schema.json +1 -1
package/dist/issues.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
const DOCS_BASE = 'https://github.com/k08200/mcp-probe#';
|
|
2
|
+
const DOCS = {
|
|
3
|
+
commands: `${DOCS_BASE}commands`,
|
|
4
|
+
config: `${DOCS_BASE}config`,
|
|
5
|
+
sidecarInputs: `${DOCS_BASE}sidecar-inputs`,
|
|
6
|
+
};
|
|
2
7
|
function lower(value) {
|
|
3
8
|
return (value ?? '').toLowerCase();
|
|
4
9
|
}
|
|
@@ -15,34 +20,34 @@ export function issueForToolCall(result) {
|
|
|
15
20
|
return {
|
|
16
21
|
code: 'CONTRACT_ASSERTION_FAILED',
|
|
17
22
|
hint: 'The tool call completed, but its output did not satisfy the sidecar contract. Check required metadata, row limits, stable error codes, and leak assertions.',
|
|
18
|
-
docsUrl:
|
|
23
|
+
docsUrl: DOCS.sidecarInputs,
|
|
19
24
|
};
|
|
20
25
|
}
|
|
21
26
|
if (isAuthLike(result.error)) {
|
|
22
27
|
return {
|
|
23
28
|
code: 'TOOL_CALL_AUTH',
|
|
24
29
|
hint: 'The server registered this tool, but the call path hit auth or permission handling. Check OAuth/browser handoff, service tokens, and CI secrets.',
|
|
25
|
-
docsUrl:
|
|
30
|
+
docsUrl: DOCS.sidecarInputs,
|
|
26
31
|
};
|
|
27
32
|
}
|
|
28
33
|
if (isTimeout(result.error)) {
|
|
29
34
|
return {
|
|
30
35
|
code: 'TOOL_CALL_TIMEOUT',
|
|
31
36
|
hint: 'The tool call timed out. Increase --timeout if the downstream service is slow, or add a safer sidecar input that reaches a fast read-only path.',
|
|
32
|
-
docsUrl:
|
|
37
|
+
docsUrl: DOCS.sidecarInputs,
|
|
33
38
|
};
|
|
34
39
|
}
|
|
35
40
|
if (result.source === 'auto') {
|
|
36
41
|
return {
|
|
37
42
|
code: 'AUTO_DRY_RUN_INPUT',
|
|
38
43
|
hint: 'The auto-generated schema-minimum input failed. Add a .mcp-probe.json sidecar with realistic read-only sample inputs for this tool.',
|
|
39
|
-
docsUrl:
|
|
44
|
+
docsUrl: DOCS.sidecarInputs,
|
|
40
45
|
};
|
|
41
46
|
}
|
|
42
47
|
return {
|
|
43
48
|
code: 'TOOL_CALL_FAILED',
|
|
44
49
|
hint: 'The sidecar input reached tools/call but returned an error. Verify the sample input is safe, valid for this environment, and exercises a real read-only path.',
|
|
45
|
-
docsUrl:
|
|
50
|
+
docsUrl: DOCS.sidecarInputs,
|
|
46
51
|
};
|
|
47
52
|
}
|
|
48
53
|
export function issueForCheck(check) {
|
|
@@ -53,14 +58,28 @@ export function issueForCheck(check) {
|
|
|
53
58
|
return {
|
|
54
59
|
code: 'NO_TOOLS',
|
|
55
60
|
hint: 'The server responded but did not expose tools. If this is expected, it may be a resources/prompts-only server; otherwise check the server registration code.',
|
|
56
|
-
docsUrl:
|
|
61
|
+
docsUrl: DOCS.commands,
|
|
57
62
|
};
|
|
58
63
|
}
|
|
59
64
|
if (check.name === 'Tool schema validation') {
|
|
60
65
|
return {
|
|
61
66
|
code: 'TOOL_SCHEMA_INVALID',
|
|
62
67
|
hint: 'At least one discovered tool has an invalid schema. Make sure every MCP tool has a stable name and valid input schema.',
|
|
63
|
-
docsUrl:
|
|
68
|
+
docsUrl: DOCS.commands,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (check.name === 'Tool catalog policy') {
|
|
72
|
+
return {
|
|
73
|
+
code: 'TOOL_CATALOG_MISMATCH',
|
|
74
|
+
hint: 'The discovered tool catalog does not match the configured policy. Check expectedTools, allowedTools, and forbiddenTools in mcp-probe.config.json.',
|
|
75
|
+
docsUrl: DOCS.config,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (check.name === 'Tool dry-run coverage') {
|
|
79
|
+
return {
|
|
80
|
+
code: 'TOOL_DRY_RUN_COVERAGE_MISSING',
|
|
81
|
+
hint: 'At least one expected tool is not covered by a sidecar sample input. Add it to the toolsFile so CI verifies the real tools/call path.',
|
|
82
|
+
docsUrl: DOCS.sidecarInputs,
|
|
64
83
|
};
|
|
65
84
|
}
|
|
66
85
|
if (check.name === 'Tool sidecar') {
|
|
@@ -68,13 +87,13 @@ export function issueForCheck(check) {
|
|
|
68
87
|
return {
|
|
69
88
|
code: 'SIDECAR_MISSING',
|
|
70
89
|
hint: 'The configured tools file does not exist. Run mcp-probe init --discover or fix the --tools-file / toolsFile path.',
|
|
71
|
-
docsUrl:
|
|
90
|
+
docsUrl: DOCS.sidecarInputs,
|
|
72
91
|
};
|
|
73
92
|
}
|
|
74
93
|
return {
|
|
75
94
|
code: 'SIDECAR_INVALID',
|
|
76
95
|
hint: 'The tools sidecar is not valid JSON or does not match the expected shape. Validate it against schemas/mcp-probe.sidecar.schema.json.',
|
|
77
|
-
docsUrl:
|
|
96
|
+
docsUrl: DOCS.config,
|
|
78
97
|
};
|
|
79
98
|
}
|
|
80
99
|
if (check.name === 'MCP protocol handshake') {
|
|
@@ -82,27 +101,27 @@ export function issueForCheck(check) {
|
|
|
82
101
|
return {
|
|
83
102
|
code: 'HANDSHAKE_TIMEOUT',
|
|
84
103
|
hint: 'The server did not complete initialize before the timeout. Increase --timeout or inspect server startup latency and dependency loading.',
|
|
85
|
-
docsUrl:
|
|
104
|
+
docsUrl: DOCS.commands,
|
|
86
105
|
};
|
|
87
106
|
}
|
|
88
107
|
if (isAuthLike(check.message)) {
|
|
89
108
|
return {
|
|
90
109
|
code: 'HANDSHAKE_AUTH',
|
|
91
110
|
hint: 'The server failed during initialization with an auth-like error. Check required environment variables, tokens, or remote headers.',
|
|
92
|
-
docsUrl:
|
|
111
|
+
docsUrl: DOCS.commands,
|
|
93
112
|
};
|
|
94
113
|
}
|
|
95
114
|
if (message.includes('enoent') || message.includes('spawn') || message.includes('not found')) {
|
|
96
115
|
return {
|
|
97
116
|
code: 'TARGET_NOT_FOUND',
|
|
98
117
|
hint: 'mcp-probe could not start the target. Check the package name, local path, executable, and server arguments.',
|
|
99
|
-
docsUrl:
|
|
118
|
+
docsUrl: DOCS.commands,
|
|
100
119
|
};
|
|
101
120
|
}
|
|
102
121
|
return {
|
|
103
122
|
code: 'HANDSHAKE_FAILED',
|
|
104
123
|
hint: 'The target started but did not complete the MCP initialize handshake. Run with the same server arguments locally and inspect stderr.',
|
|
105
|
-
docsUrl:
|
|
124
|
+
docsUrl: DOCS.commands,
|
|
106
125
|
};
|
|
107
126
|
}
|
|
108
127
|
if (check.name === 'Tool call dry-run') {
|
|
@@ -114,7 +133,7 @@ export function issueForCheck(check) {
|
|
|
114
133
|
: check.status === 'warn'
|
|
115
134
|
? 'At least one tool call hit auth or permission handling. This often means CI needs tokens or the server needs non-browser auth.'
|
|
116
135
|
: 'At least one tool call failed. Inspect toolCallResults in JSON output for the exact tool and add or refine sidecar inputs.',
|
|
117
|
-
docsUrl:
|
|
136
|
+
docsUrl: DOCS.sidecarInputs,
|
|
118
137
|
};
|
|
119
138
|
}
|
|
120
139
|
return undefined;
|
package/dist/issues.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../src/issues.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../src/issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/protocols/mcp-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/protocols/mcp-client.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAe,YAAY,EAAE,WAAW,EAAiD,MAAM,aAAa,CAAC;AAqKzH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAoIhF"}
|
|
@@ -5,7 +5,7 @@ import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
|
|
|
5
5
|
import { assertionFailureMessage, evaluateToolAssertions } from '../assertions.js';
|
|
6
6
|
import { withIssue } from '../issues.js';
|
|
7
7
|
import { redactText } from '../redact.js';
|
|
8
|
-
|
|
8
|
+
import { VERSION } from '../version.js';
|
|
9
9
|
// Known startup warning patterns from official MCP servers — not fatal errors
|
|
10
10
|
const STDERR_WARNING_PATTERNS = [
|
|
11
11
|
/^warn(?:ing)?:/i,
|
|
@@ -189,9 +189,14 @@ export async function probeMcpServer(options) {
|
|
|
189
189
|
const rawServerInfo = client.getServerVersion();
|
|
190
190
|
const rawCaps = client.getServerCapabilities();
|
|
191
191
|
const capabilities = Object.keys(rawCaps ?? {});
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
192
|
+
let toolsLatencyMs = 0;
|
|
193
|
+
let tools = [];
|
|
194
|
+
if (rawCaps?.tools) {
|
|
195
|
+
const toolsStart = Date.now();
|
|
196
|
+
const toolsResult = await withTimeout(client.listTools(), options.timeoutMs, 'tools/list');
|
|
197
|
+
toolsLatencyMs = Date.now() - toolsStart;
|
|
198
|
+
tools = toolsResult.tools;
|
|
199
|
+
}
|
|
195
200
|
let resourcesLatencyMs;
|
|
196
201
|
let promptsLatencyMs;
|
|
197
202
|
const resourcesList = [];
|
|
@@ -213,31 +218,45 @@ export async function probeMcpServer(options) {
|
|
|
213
218
|
}
|
|
214
219
|
}
|
|
215
220
|
let toolCallResults;
|
|
216
|
-
if (options.probeTools
|
|
221
|
+
if (options.probeTools) {
|
|
217
222
|
toolCallResults = [];
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
const toolsByName = new Map(tools.map((tool) => [tool.name, tool]));
|
|
224
|
+
const toolsToCall = options.sidecar
|
|
225
|
+
? Object.entries(options.sidecar.tools).map(([name, entry]) => ({ name, entry, tool: toolsByName.get(name) }))
|
|
226
|
+
: tools.map((tool) => ({ name: tool.name, entry: undefined, tool }));
|
|
227
|
+
for (const candidate of toolsToCall) {
|
|
228
|
+
if (!candidate.tool) {
|
|
229
|
+
toolCallResults.push(withIssue({
|
|
230
|
+
tool: candidate.name,
|
|
231
|
+
status: 'fail',
|
|
232
|
+
latencyMs: 0,
|
|
233
|
+
source: 'sidecar',
|
|
234
|
+
error: `Sidecar references a tool that was not discovered: ${candidate.name}`,
|
|
235
|
+
}));
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
// With a sidecar, only explicitly declared tools are called.
|
|
239
|
+
// Without a sidecar, fall back to schema-minimum inputs for broad smoke coverage.
|
|
240
|
+
const input = candidate.entry?.input ?? generateMinimalInput(candidate.tool.inputSchema);
|
|
241
|
+
const source = candidate.entry ? 'sidecar' : 'auto';
|
|
242
|
+
const notErrorCodes = candidate.entry?.expect?.not_error_code;
|
|
243
|
+
const expectations = candidate.entry?.expect;
|
|
225
244
|
const start = Date.now();
|
|
226
245
|
try {
|
|
227
|
-
const result = await withTimeout(client.callTool({ name: tool.name, arguments: input }), options.timeoutMs, `callTool(${tool.name})`);
|
|
246
|
+
const result = await withTimeout(client.callTool({ name: candidate.tool.name, arguments: input }), options.timeoutMs, `callTool(${candidate.tool.name})`);
|
|
228
247
|
const toolError = toolResultErrorMessage(result);
|
|
229
248
|
if (toolError) {
|
|
230
249
|
const error = redactText(toolError, secretValues);
|
|
231
250
|
const status = isAuthError(error, notErrorCodes) ? 'warn' : 'fail';
|
|
232
|
-
toolCallResults.push(finalToolResult(tool.name, status, Date.now() - start, source, expectations, result, error));
|
|
251
|
+
toolCallResults.push(finalToolResult(candidate.tool.name, status, Date.now() - start, source, expectations, result, error));
|
|
233
252
|
continue;
|
|
234
253
|
}
|
|
235
|
-
toolCallResults.push(finalToolResult(tool.name, 'pass', Date.now() - start, source, expectations, result));
|
|
254
|
+
toolCallResults.push(finalToolResult(candidate.tool.name, 'pass', Date.now() - start, source, expectations, result));
|
|
236
255
|
}
|
|
237
256
|
catch (err) {
|
|
238
257
|
const msg = redactText(err instanceof Error ? err.message : String(err), secretValues);
|
|
239
258
|
const status = isAuthError(msg, notErrorCodes) ? 'warn' : 'fail';
|
|
240
|
-
toolCallResults.push(finalToolResult(tool.name, status, Date.now() - start, source, expectations, undefined, msg));
|
|
259
|
+
toolCallResults.push(finalToolResult(candidate.tool.name, status, Date.now() - start, source, expectations, undefined, msg));
|
|
241
260
|
}
|
|
242
261
|
}
|
|
243
262
|
}
|
|
@@ -247,7 +266,7 @@ export async function probeMcpServer(options) {
|
|
|
247
266
|
version: rawServerInfo?.version ?? 'unknown',
|
|
248
267
|
capabilities,
|
|
249
268
|
},
|
|
250
|
-
tools:
|
|
269
|
+
tools: tools.map((t) => ({
|
|
251
270
|
name: t.name,
|
|
252
271
|
description: t.description,
|
|
253
272
|
inputSchema: t.inputSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/protocols/mcp-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/protocols/mcp-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ToolInfo, TransportMode } from './types.js';
|
|
2
|
+
export declare const CONFIG_SCHEMA_URL = "https://raw.githubusercontent.com/k08200/mcp-probe/main/schemas/mcp-probe.config.schema.json";
|
|
3
|
+
export declare const SIDECAR_SCHEMA_URL = "https://raw.githubusercontent.com/k08200/mcp-probe/main/schemas/mcp-probe.sidecar.schema.json";
|
|
4
|
+
export type BuildConfigOptions = {
|
|
5
|
+
target: string;
|
|
6
|
+
name?: string;
|
|
7
|
+
toolsFile: string;
|
|
8
|
+
transport?: TransportMode;
|
|
9
|
+
headerEnv?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function json(value: unknown): string;
|
|
12
|
+
export declare function serverNameFromTarget(target: string): string;
|
|
13
|
+
export declare function buildConfig(options: BuildConfigOptions): unknown;
|
|
14
|
+
export declare function buildToolsFile(discoveredTools?: ToolInfo[]): unknown;
|
|
15
|
+
export declare function buildToolsFileFromNames(toolNames: string[]): unknown;
|
|
16
|
+
export declare function buildWorkflow(configFile: string): string;
|
|
17
|
+
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1D,eAAO,MAAM,iBAAiB,iGAAiG,CAAC;AAChI,eAAO,MAAM,kBAAkB,kGAAkG,CAAC;AAElI,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE3C;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAuBhE;AAiDD,wBAAgB,cAAc,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAgBpE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAyBpE;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAwBxD"}
|
package/dist/scaffold.js
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
export const CONFIG_SCHEMA_URL = 'https://raw.githubusercontent.com/k08200/mcp-probe/main/schemas/mcp-probe.config.schema.json';
|
|
2
|
+
export const SIDECAR_SCHEMA_URL = 'https://raw.githubusercontent.com/k08200/mcp-probe/main/schemas/mcp-probe.sidecar.schema.json';
|
|
3
|
+
export function json(value) {
|
|
4
|
+
return JSON.stringify(value, null, 2) + '\n';
|
|
5
|
+
}
|
|
6
|
+
export function serverNameFromTarget(target) {
|
|
7
|
+
const withoutProtocol = target.replace(/^https?:\/\//i, '');
|
|
8
|
+
const last = withoutProtocol.split('/').filter(Boolean).pop() ?? 'mcp-server';
|
|
9
|
+
return last
|
|
10
|
+
.replace(/^@/, '')
|
|
11
|
+
.replace(/[^a-zA-Z0-9_-]+/g, '-')
|
|
12
|
+
.replace(/^-+|-+$/g, '')
|
|
13
|
+
|| 'mcp-server';
|
|
14
|
+
}
|
|
15
|
+
export function buildConfig(options) {
|
|
16
|
+
const server = {
|
|
17
|
+
name: options.name ?? serverNameFromTarget(options.target),
|
|
18
|
+
target: options.target,
|
|
19
|
+
probeTools: true,
|
|
20
|
+
toolsFile: options.toolsFile,
|
|
21
|
+
};
|
|
22
|
+
if (options.transport) {
|
|
23
|
+
server.transport = options.transport;
|
|
24
|
+
}
|
|
25
|
+
if (options.headerEnv) {
|
|
26
|
+
server.headers = {
|
|
27
|
+
Authorization: `Bearer \${${options.headerEnv}}`,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
$schema: CONFIG_SCHEMA_URL,
|
|
32
|
+
timeoutMs: 10000,
|
|
33
|
+
servers: [server],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function minimalInputFromSchema(schema) {
|
|
37
|
+
if (!schema || typeof schema !== 'object')
|
|
38
|
+
return {};
|
|
39
|
+
const typed = schema;
|
|
40
|
+
const properties = typed.properties;
|
|
41
|
+
if (!properties)
|
|
42
|
+
return {};
|
|
43
|
+
const required = typed.required ?? Object.keys(properties);
|
|
44
|
+
const input = {};
|
|
45
|
+
for (const key of required) {
|
|
46
|
+
const property = properties[key];
|
|
47
|
+
const type = Array.isArray(property?.type) ? property?.type[0] : property?.type;
|
|
48
|
+
switch (type) {
|
|
49
|
+
case 'string':
|
|
50
|
+
input[key] = '';
|
|
51
|
+
break;
|
|
52
|
+
case 'number':
|
|
53
|
+
case 'integer':
|
|
54
|
+
input[key] = 0;
|
|
55
|
+
break;
|
|
56
|
+
case 'boolean':
|
|
57
|
+
input[key] = false;
|
|
58
|
+
break;
|
|
59
|
+
case 'array':
|
|
60
|
+
input[key] = [];
|
|
61
|
+
break;
|
|
62
|
+
case 'object':
|
|
63
|
+
input[key] = {};
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
input[key] = null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return input;
|
|
70
|
+
}
|
|
71
|
+
function sidecarEntryForTool(tool) {
|
|
72
|
+
return {
|
|
73
|
+
input: minimalInputFromSchema(tool.inputSchema),
|
|
74
|
+
expect: {
|
|
75
|
+
not_error_code: [401, 403],
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export function buildToolsFile(discoveredTools) {
|
|
80
|
+
const tools = discoveredTools && discoveredTools.length > 0
|
|
81
|
+
? Object.fromEntries(discoveredTools.map((tool) => [tool.name, sidecarEntryForTool(tool)]))
|
|
82
|
+
: {
|
|
83
|
+
replace_with_tool_name: {
|
|
84
|
+
input: {},
|
|
85
|
+
expect: {
|
|
86
|
+
not_error_code: [401, 403],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
return {
|
|
91
|
+
$schema: SIDECAR_SCHEMA_URL,
|
|
92
|
+
tools,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export function buildToolsFileFromNames(toolNames) {
|
|
96
|
+
const unique = [...new Set(toolNames)].filter(Boolean);
|
|
97
|
+
const tools = unique.length > 0
|
|
98
|
+
? Object.fromEntries(unique.map((name) => [
|
|
99
|
+
name,
|
|
100
|
+
{
|
|
101
|
+
input: {},
|
|
102
|
+
expect: {
|
|
103
|
+
not_error_code: [401, 403],
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
]))
|
|
107
|
+
: {
|
|
108
|
+
replace_with_tool_name: {
|
|
109
|
+
input: {},
|
|
110
|
+
expect: {
|
|
111
|
+
not_error_code: [401, 403],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
return {
|
|
116
|
+
$schema: SIDECAR_SCHEMA_URL,
|
|
117
|
+
tools,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export function buildWorkflow(configFile) {
|
|
121
|
+
return `name: MCP Probe
|
|
122
|
+
|
|
123
|
+
on:
|
|
124
|
+
pull_request:
|
|
125
|
+
push:
|
|
126
|
+
branches: [main]
|
|
127
|
+
|
|
128
|
+
jobs:
|
|
129
|
+
mcp-probe:
|
|
130
|
+
runs-on: ubuntu-latest
|
|
131
|
+
timeout-minutes: 5
|
|
132
|
+
|
|
133
|
+
steps:
|
|
134
|
+
- uses: actions/checkout@v6
|
|
135
|
+
|
|
136
|
+
- name: Validate MCP readiness
|
|
137
|
+
run: |
|
|
138
|
+
npx @k08200/mcp-probe@latest \\
|
|
139
|
+
--config ${configFile} \\
|
|
140
|
+
--github-summary \\
|
|
141
|
+
--fail-on-warn \\
|
|
142
|
+
--badge-file mcp-probe-badge.json
|
|
143
|
+
`;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ToolSidecar } from './types.js';
|
|
2
|
+
export declare const DEFAULT_SIDECAR_FILENAME = ".mcp-probe.json";
|
|
3
|
+
export declare function parseToolSidecar(parsed: unknown, label: string): ToolSidecar;
|
|
4
|
+
export declare function readToolSidecar(path: string): ToolSidecar;
|
|
5
|
+
export declare function loadOptionalSidecar(toolsFile?: string): ToolSidecar | undefined;
|
|
6
|
+
//# sourceMappingURL=sidecar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAc1D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAgD5E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAQzD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAO/E"}
|
package/dist/sidecar.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'fs';
|
|
2
|
+
export const DEFAULT_SIDECAR_FILENAME = '.mcp-probe.json';
|
|
3
|
+
function isObject(value) {
|
|
4
|
+
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
|
|
5
|
+
}
|
|
6
|
+
function rejectUnknownKeys(value, allowed, label) {
|
|
7
|
+
const allowedSet = new Set(allowed);
|
|
8
|
+
const unknown = Object.keys(value).filter((key) => !allowedSet.has(key));
|
|
9
|
+
if (unknown.length > 0) {
|
|
10
|
+
throw new Error(`Invalid tools file: ${label} contains unknown field${unknown.length === 1 ? '' : 's'} ${unknown.join(', ')}`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function parseToolSidecar(parsed, label) {
|
|
14
|
+
if (!isObject(parsed)) {
|
|
15
|
+
throw new Error(`Invalid tools file: ${label} must be an object`);
|
|
16
|
+
}
|
|
17
|
+
rejectUnknownKeys(parsed, ['$schema', 'tools'], label);
|
|
18
|
+
if (!isObject(parsed.tools)) {
|
|
19
|
+
throw new Error(`Invalid tools file: ${label} must contain a tools object`);
|
|
20
|
+
}
|
|
21
|
+
for (const [toolName, entry] of Object.entries(parsed.tools)) {
|
|
22
|
+
if (!isObject(entry)) {
|
|
23
|
+
throw new Error(`Invalid tools file: ${toolName} entry must be an object`);
|
|
24
|
+
}
|
|
25
|
+
rejectUnknownKeys(entry, ['input', 'expect'], toolName);
|
|
26
|
+
if (!isObject(entry.input)) {
|
|
27
|
+
throw new Error(`Invalid tools file: ${toolName}.input must be an object`);
|
|
28
|
+
}
|
|
29
|
+
if (entry.expect !== undefined) {
|
|
30
|
+
if (!isObject(entry.expect)) {
|
|
31
|
+
throw new Error(`Invalid tools file: ${toolName}.expect must be an object`);
|
|
32
|
+
}
|
|
33
|
+
const expect = entry.expect;
|
|
34
|
+
rejectUnknownKeys(expect, ['status', 'not_error_code', 'requiredFields', 'maxRows', 'errorCode', 'contains', 'notContains'], `${toolName}.expect`);
|
|
35
|
+
if (expect.status !== undefined && expect.status !== 'pass' && expect.status !== 'fail' && expect.status !== 'warn') {
|
|
36
|
+
throw new Error(`Invalid tools file: ${toolName}.expect.status must be pass, fail, or warn`);
|
|
37
|
+
}
|
|
38
|
+
if (expect.not_error_code !== undefined && (!Array.isArray(expect.not_error_code) || !expect.not_error_code.every((code) => Number.isInteger(code)))) {
|
|
39
|
+
throw new Error(`Invalid tools file: ${toolName}.expect.not_error_code must be an integer array`);
|
|
40
|
+
}
|
|
41
|
+
for (const key of ['requiredFields', 'contains', 'notContains']) {
|
|
42
|
+
const value = expect[key];
|
|
43
|
+
if (value !== undefined && (!Array.isArray(value) || !value.every((item) => typeof item === 'string'))) {
|
|
44
|
+
throw new Error(`Invalid tools file: ${toolName}.expect.${key} must be a string array`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (expect.maxRows !== undefined && (typeof expect.maxRows !== 'number' || expect.maxRows < 0)) {
|
|
48
|
+
throw new Error(`Invalid tools file: ${toolName}.expect.maxRows must be a non-negative number`);
|
|
49
|
+
}
|
|
50
|
+
if (expect.errorCode !== undefined && typeof expect.errorCode !== 'string') {
|
|
51
|
+
throw new Error(`Invalid tools file: ${toolName}.expect.errorCode must be a string`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return parsed;
|
|
56
|
+
}
|
|
57
|
+
export function readToolSidecar(path) {
|
|
58
|
+
let parsed;
|
|
59
|
+
try {
|
|
60
|
+
parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
throw new Error(`Invalid tools file JSON: ${path}`);
|
|
64
|
+
}
|
|
65
|
+
return parseToolSidecar(parsed, path);
|
|
66
|
+
}
|
|
67
|
+
export function loadOptionalSidecar(toolsFile) {
|
|
68
|
+
const path = toolsFile ?? DEFAULT_SIDECAR_FILENAME;
|
|
69
|
+
if (!existsSync(path)) {
|
|
70
|
+
if (!toolsFile)
|
|
71
|
+
return undefined;
|
|
72
|
+
throw new Error(`Cannot read tools file: ${path}`);
|
|
73
|
+
}
|
|
74
|
+
return readToolSidecar(path);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=sidecar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAG9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAE1D,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA8B,EAAE,OAA0B,EAAE,KAAa;IAClG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,0BAA0B,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjI,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,KAAa;IAC7D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,oBAAoB,CAAC,CAAC;IACpE,CAAC;IAED,iBAAiB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAEvD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,8BAA8B,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,0BAA0B,CAAC,CAAC;QAC7E,CAAC;QACD,iBAAiB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,0BAA0B,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,2BAA2B,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,GAAG,QAAQ,SAAS,CAAC,CAAC;YACnJ,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpH,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,4CAA4C,CAAC,CAAC;YAC/F,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,iDAAiD,CAAC,CAAC;YACpG,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,aAAa,CAAU,EAAE,CAAC;gBACzE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC;oBACvG,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,WAAW,GAAG,yBAAyB,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC/F,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,+CAA+C,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3E,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,oCAAoC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAqB,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAkB;IACpD,MAAM,IAAI,GAAG,SAAS,IAAI,wBAAwB,CAAC;IACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type CheckStatus = 'pass' | 'fail' | 'warn';
|
|
2
|
-
export type IssueCode = 'NO_TOOLS' | 'TOOL_SCHEMA_INVALID' | 'TOOL_CALL_AUTH' | 'TOOL_CALL_FAILED' | 'TOOL_CALL_TIMEOUT' | 'CONTRACT_ASSERTION_FAILED' | 'AUTO_DRY_RUN_INPUT' | 'SIDECAR_MISSING' | 'SIDECAR_INVALID' | 'HANDSHAKE_TIMEOUT' | 'HANDSHAKE_AUTH' | 'HANDSHAKE_FAILED' | 'TARGET_NOT_FOUND';
|
|
2
|
+
export type IssueCode = 'NO_TOOLS' | 'TOOL_SCHEMA_INVALID' | 'TOOL_CATALOG_MISMATCH' | 'TOOL_DRY_RUN_COVERAGE_MISSING' | 'TOOL_CALL_AUTH' | 'TOOL_CALL_FAILED' | 'TOOL_CALL_TIMEOUT' | 'CONTRACT_ASSERTION_FAILED' | 'AUTO_DRY_RUN_INPUT' | 'SIDECAR_MISSING' | 'SIDECAR_INVALID' | 'HANDSHAKE_TIMEOUT' | 'HANDSHAKE_AUTH' | 'HANDSHAKE_FAILED' | 'TARGET_NOT_FOUND';
|
|
3
3
|
export type Issue = {
|
|
4
4
|
code: IssueCode;
|
|
5
5
|
hint: string;
|
|
@@ -83,6 +83,9 @@ export type CheckOptions = {
|
|
|
83
83
|
transport?: TransportMode;
|
|
84
84
|
headers?: Record<string, string>;
|
|
85
85
|
stderr?: StderrRules;
|
|
86
|
+
expectedTools?: string[];
|
|
87
|
+
allowedTools?: string[];
|
|
88
|
+
forbiddenTools?: string[];
|
|
86
89
|
probeTools?: boolean;
|
|
87
90
|
toolsFile?: string;
|
|
88
91
|
};
|
|
@@ -94,6 +97,9 @@ export type ConfigServer = {
|
|
|
94
97
|
transport?: TransportMode;
|
|
95
98
|
headers?: Record<string, string>;
|
|
96
99
|
stderr?: StderrRules;
|
|
100
|
+
expectedTools?: string[];
|
|
101
|
+
allowedTools?: string[];
|
|
102
|
+
forbiddenTools?: string[];
|
|
97
103
|
probeTools?: boolean;
|
|
98
104
|
toolsFile?: string;
|
|
99
105
|
};
|