@agent-inspect/mcp-server 6.10.0 → 6.11.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 +3 -1
- package/bin/agent-inspect-mcp-server.cjs +14 -0
- package/dist/chunk-YSGVFUHF.mjs +7241 -0
- package/dist/chunk-YSGVFUHF.mjs.map +1 -0
- package/dist/cli.cjs +7378 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.mjs +133 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/index.cjs +611 -141
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22 -1
- package/dist/index.d.ts +22 -1
- package/dist/index.mjs +1 -6772
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -3
package/dist/cli.mjs
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { runReadOnlyMcpServer } from './chunk-YSGVFUHF.mjs';
|
|
2
|
+
import { readFileSync } from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
|
|
6
|
+
var HELP = `Usage: agent-inspect-mcp-server [options]
|
|
7
|
+
|
|
8
|
+
Read-only MCP server over a local AgentInspect trace directory (stdio).
|
|
9
|
+
|
|
10
|
+
Options:
|
|
11
|
+
--dir <path> Trace directory (default: .agent-inspect or AGENT_INSPECT_TRACE_DIR)
|
|
12
|
+
--redaction-profile <profile> local | share | strict (default: share)
|
|
13
|
+
--max-events <n> Max events per tool response (default: 500)
|
|
14
|
+
-h, --help Show help
|
|
15
|
+
-V, --version Show package version
|
|
16
|
+
|
|
17
|
+
Environment:
|
|
18
|
+
AGENT_INSPECT_TRACE_DIR
|
|
19
|
+
AGENT_INSPECT_MCP_REDACTION_PROFILE
|
|
20
|
+
|
|
21
|
+
No network. No code modification. Share redaction by default.
|
|
22
|
+
`;
|
|
23
|
+
function packageVersion() {
|
|
24
|
+
return JSON.parse(
|
|
25
|
+
readFileSync(
|
|
26
|
+
path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "package.json"),
|
|
27
|
+
"utf8"
|
|
28
|
+
)
|
|
29
|
+
).version;
|
|
30
|
+
}
|
|
31
|
+
function parseRedactionProfile(value) {
|
|
32
|
+
if (value === "local" || value === "share" || value === "strict") return value;
|
|
33
|
+
return void 0;
|
|
34
|
+
}
|
|
35
|
+
function parseMcpServerCliArgs(argv) {
|
|
36
|
+
const options = {};
|
|
37
|
+
let help = false;
|
|
38
|
+
let version = false;
|
|
39
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
40
|
+
const arg = argv[i];
|
|
41
|
+
if (arg === "-h" || arg === "--help") {
|
|
42
|
+
help = true;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (arg === "-V" || arg === "--version") {
|
|
46
|
+
version = true;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (arg === "--dir") {
|
|
50
|
+
const value = argv[++i];
|
|
51
|
+
if (!value) return { help, version, options, error: "--dir requires a path" };
|
|
52
|
+
options.traceDir = value;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (arg.startsWith("--dir=")) {
|
|
56
|
+
options.traceDir = arg.slice("--dir=".length);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (arg === "--redaction-profile") {
|
|
60
|
+
const value = argv[++i];
|
|
61
|
+
if (!value) {
|
|
62
|
+
return { help, version, options, error: "--redaction-profile requires a value" };
|
|
63
|
+
}
|
|
64
|
+
const profile = parseRedactionProfile(value);
|
|
65
|
+
if (!profile) {
|
|
66
|
+
return {
|
|
67
|
+
help,
|
|
68
|
+
version,
|
|
69
|
+
options,
|
|
70
|
+
error: `--redaction-profile must be local|share|strict (got ${value})`
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
options.redactionProfile = profile;
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (arg.startsWith("--redaction-profile=")) {
|
|
77
|
+
const profile = parseRedactionProfile(arg.slice("--redaction-profile=".length));
|
|
78
|
+
if (!profile) {
|
|
79
|
+
return {
|
|
80
|
+
help,
|
|
81
|
+
version,
|
|
82
|
+
options,
|
|
83
|
+
error: "--redaction-profile must be local|share|strict"
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
options.redactionProfile = profile;
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (arg === "--max-events") {
|
|
90
|
+
const value = argv[++i];
|
|
91
|
+
if (!value) return { help, version, options, error: "--max-events requires a number" };
|
|
92
|
+
const n = Number(value);
|
|
93
|
+
if (!Number.isFinite(n) || n < 1) {
|
|
94
|
+
return { help, version, options, error: "--max-events must be a positive number" };
|
|
95
|
+
}
|
|
96
|
+
options.maxEvents = Math.floor(n);
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
if (arg.startsWith("--max-events=")) {
|
|
100
|
+
const n = Number(arg.slice("--max-events=".length));
|
|
101
|
+
if (!Number.isFinite(n) || n < 1) {
|
|
102
|
+
return { help, version, options, error: "--max-events must be a positive number" };
|
|
103
|
+
}
|
|
104
|
+
options.maxEvents = Math.floor(n);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
return { help, version, options, error: `Unknown argument: ${arg}` };
|
|
108
|
+
}
|
|
109
|
+
return { help, version, options };
|
|
110
|
+
}
|
|
111
|
+
async function main(argv = process.argv.slice(2)) {
|
|
112
|
+
const parsed = parseMcpServerCliArgs(argv);
|
|
113
|
+
if (parsed.error) {
|
|
114
|
+
process.stderr.write(`${parsed.error}
|
|
115
|
+
${HELP}`);
|
|
116
|
+
return 2;
|
|
117
|
+
}
|
|
118
|
+
if (parsed.help) {
|
|
119
|
+
process.stdout.write(HELP);
|
|
120
|
+
return 0;
|
|
121
|
+
}
|
|
122
|
+
if (parsed.version) {
|
|
123
|
+
process.stdout.write(`${packageVersion()}
|
|
124
|
+
`);
|
|
125
|
+
return 0;
|
|
126
|
+
}
|
|
127
|
+
await runReadOnlyMcpServer(parsed.options);
|
|
128
|
+
return 0;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export { main, parseMcpServerCliArgs };
|
|
132
|
+
//# sourceMappingURL=cli.mjs.map
|
|
133
|
+
//# sourceMappingURL=cli.mjs.map
|
package/dist/cli.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts"],"names":[],"mappings":"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","file":"cli.mjs","sourcesContent":["import { readFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { runReadOnlyMcpServer, type RunReadOnlyMcpServerOptions } from \"./index.js\";\n\nexport type McpServerCliArgs = {\n help: boolean;\n version: boolean;\n options: RunReadOnlyMcpServerOptions;\n error?: string;\n};\n\nconst HELP = `Usage: agent-inspect-mcp-server [options]\n\nRead-only MCP server over a local AgentInspect trace directory (stdio).\n\nOptions:\n --dir <path> Trace directory (default: .agent-inspect or AGENT_INSPECT_TRACE_DIR)\n --redaction-profile <profile> local | share | strict (default: share)\n --max-events <n> Max events per tool response (default: 500)\n -h, --help Show help\n -V, --version Show package version\n\nEnvironment:\n AGENT_INSPECT_TRACE_DIR\n AGENT_INSPECT_MCP_REDACTION_PROFILE\n\nNo network. No code modification. Share redaction by default.\n`;\n\nfunction packageVersion(): string {\n return JSON.parse(\n readFileSync(\n path.join(path.dirname(fileURLToPath(import.meta.url)), \"..\", \"package.json\"),\n \"utf8\",\n ),\n ).version as string;\n}\n\nfunction parseRedactionProfile(\n value: string,\n): \"local\" | \"share\" | \"strict\" | undefined {\n if (value === \"local\" || value === \"share\" || value === \"strict\") return value;\n return undefined;\n}\n\n/** @internal exported for tests */\nexport function parseMcpServerCliArgs(argv: string[]): McpServerCliArgs {\n const options: RunReadOnlyMcpServerOptions = {};\n let help = false;\n let version = false;\n\n for (let i = 0; i < argv.length; i += 1) {\n const arg = argv[i]!;\n if (arg === \"-h\" || arg === \"--help\") {\n help = true;\n continue;\n }\n if (arg === \"-V\" || arg === \"--version\") {\n version = true;\n continue;\n }\n if (arg === \"--dir\") {\n const value = argv[++i];\n if (!value) return { help, version, options, error: \"--dir requires a path\" };\n options.traceDir = value;\n continue;\n }\n if (arg.startsWith(\"--dir=\")) {\n options.traceDir = arg.slice(\"--dir=\".length);\n continue;\n }\n if (arg === \"--redaction-profile\") {\n const value = argv[++i];\n if (!value) {\n return { help, version, options, error: \"--redaction-profile requires a value\" };\n }\n const profile = parseRedactionProfile(value);\n if (!profile) {\n return {\n help,\n version,\n options,\n error: `--redaction-profile must be local|share|strict (got ${value})`,\n };\n }\n options.redactionProfile = profile;\n continue;\n }\n if (arg.startsWith(\"--redaction-profile=\")) {\n const profile = parseRedactionProfile(arg.slice(\"--redaction-profile=\".length));\n if (!profile) {\n return {\n help,\n version,\n options,\n error: \"--redaction-profile must be local|share|strict\",\n };\n }\n options.redactionProfile = profile;\n continue;\n }\n if (arg === \"--max-events\") {\n const value = argv[++i];\n if (!value) return { help, version, options, error: \"--max-events requires a number\" };\n const n = Number(value);\n if (!Number.isFinite(n) || n < 1) {\n return { help, version, options, error: \"--max-events must be a positive number\" };\n }\n options.maxEvents = Math.floor(n);\n continue;\n }\n if (arg.startsWith(\"--max-events=\")) {\n const n = Number(arg.slice(\"--max-events=\".length));\n if (!Number.isFinite(n) || n < 1) {\n return { help, version, options, error: \"--max-events must be a positive number\" };\n }\n options.maxEvents = Math.floor(n);\n continue;\n }\n return { help, version, options, error: `Unknown argument: ${arg}` };\n }\n\n return { help, version, options };\n}\n\nexport async function main(argv: string[] = process.argv.slice(2)): Promise<number> {\n const parsed = parseMcpServerCliArgs(argv);\n if (parsed.error) {\n process.stderr.write(`${parsed.error}\\n${HELP}`);\n return 2;\n }\n if (parsed.help) {\n process.stdout.write(HELP);\n return 0;\n }\n if (parsed.version) {\n process.stdout.write(`${packageVersion()}\\n`);\n return 0;\n }\n await runReadOnlyMcpServer(parsed.options);\n return 0;\n}\n"]}
|