@modelcontextprotocol/inspector 2.14.0 → 2.15.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/clients/cli/build/index.js +4906 -2205
- package/clients/mcpdo/build/mcp-bin.js +891 -180
- package/clients/mcpdo/build/mcpdod.js +2 -3
- package/clients/mcpdo/build/{server-Dv339Ejx.js → server-B-CUVIBj.js} +2750 -1039
- package/clients/tui/build/index.js +1354 -533
- package/clients/web/build/index.js +239 -159
- package/clients/web/dist/assets/index-BZ94R6fh.js +1599 -0
- package/clients/web/dist/assets/{index-Dval2a7I.css → index-tBehH5iF.css} +1 -1
- package/clients/web/dist/assets/{prism-light-CoVRM9R2.js → prism-light-Crps--E8.js} +1 -1
- package/clients/web/dist/assets/worker-json-DEGsizKa.js +7859 -0
- package/clients/web/dist/index.html +2 -2
- package/package.json +4 -1
- package/skills/mcpdo/SKILL.md +50 -3
- package/clients/web/dist/assets/index-BCud2uMC.js +0 -1594
- package/clients/web/dist/assets/worker-json-8CDXFfik.js +0 -1631
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/assets/MCP-CWGQJYyH.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>MCP Inspector</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BZ94R6fh.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-tBehH5iF.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@modelcontextprotocol/inspector",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.15.0",
|
|
4
4
|
"description": "The Model Context Protocol Inspector",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"MCP",
|
|
@@ -169,5 +169,8 @@
|
|
|
169
169
|
"typescript": "~5.9.3",
|
|
170
170
|
"typescript-eslint": "^8.65.0",
|
|
171
171
|
"vitest": "4.1.12"
|
|
172
|
+
},
|
|
173
|
+
"overrides": {
|
|
174
|
+
"minimatch": "^11.0.4"
|
|
172
175
|
}
|
|
173
176
|
}
|
package/skills/mcpdo/SKILL.md
CHANGED
|
@@ -79,7 +79,10 @@ more).
|
|
|
79
79
|
- Connections persist across separate `mcpdo` invocations and **self-heal**: a
|
|
80
80
|
dropped transport (expired session, exited stdio child) transparently
|
|
81
81
|
re-dials on next use with stored credentials. Don't monitor or reconnect
|
|
82
|
-
manually; only an `
|
|
82
|
+
manually; only an exit-`3` auth error needs action (re-run `connect`):
|
|
83
|
+
`auth_required`, `oauth_error` (the authorization server refused — its
|
|
84
|
+
`oauthError` / `oauthErrorDescription` say why), or `oauth_timeout` (the
|
|
85
|
+
sign-in was not completed in time).
|
|
83
86
|
`mcpdo disconnect` ends one connection; `mcpdo daemon stop` resets
|
|
84
87
|
everything.
|
|
85
88
|
- The `[legacy]` / `[modern]` era tag on `connections/list` is the negotiated
|
|
@@ -97,7 +100,10 @@ more).
|
|
|
97
100
|
stdio server) or to more than one URL is rejected with guidance. EMA IdP
|
|
98
101
|
login records lead with their bare issuer URL and carry a trailing
|
|
99
102
|
`enterprise IdP login` marker, and clear by that bare issuer URL
|
|
100
|
-
(`mcpdo auth/clear https://idp.example.com`).
|
|
103
|
+
(`mcpdo auth/clear https://idp.example.com`). To diagnose a 401/403 —
|
|
104
|
+
wrong audience, missing scope, expired token — run `mcpdo auth/show <url or
|
|
105
|
+
name>`: it prints the stored access token's decoded claims (unverified) and
|
|
106
|
+
expiry relative to now, never the token itself. Run `connect` as its **own
|
|
101
107
|
command** — never chained with `&&`, `;`, or a follow-on
|
|
102
108
|
`tools/list`/`connections/show`. A connect that needs sign-in exits 0 while
|
|
103
109
|
the connection is still unusable, so a chained command runs against a
|
|
@@ -174,6 +180,47 @@ more).
|
|
|
174
180
|
`droppedSlots`: slots nobody was free to take are dropped, so a server too
|
|
175
181
|
slow for the target can still report healthy latency. A shortfall under 90%
|
|
176
182
|
also prints a warning on stderr.
|
|
183
|
+
- `--load-scenario <file>` (no tool name) loads a weighted mix of
|
|
184
|
+
`tools/call` / `resources/read` / `prompts/get` steps; the top-level counts
|
|
185
|
+
are totals and `steps[]` breaks them down per step — find the slow or
|
|
186
|
+
failing step there.
|
|
187
|
+
- Identical calls flatter a caching server. Vary them with placeholders in
|
|
188
|
+
argument values (`id:=user-{{seq}}`, `{{uuid}}`, `{{rand:1-50}}`,
|
|
189
|
+
`{{worker}}`) or `--load-args-file rows.ndjson` (one argument object per
|
|
190
|
+
line, cycled; `--load-args-random` to shuffle).
|
|
191
|
+
- To find a server's knee, step the load: `--load-steps 10,25,50` or
|
|
192
|
+
`--load-ramp 10:100:60` (concurrency; `--load-step-by rate` for rate), each
|
|
193
|
+
stage `--load-step-duration` seconds. Read `stages[]` top to bottom for
|
|
194
|
+
where `latencyMs.p99` or `errorRate` jumps. `--load-stop-on-breach` with a
|
|
195
|
+
`--load-max-*` threshold stops at the first breaching stage.
|
|
196
|
+
- Latency has `p50`/`p90`/`p95`/`p99`/`p999`. Gate a run with
|
|
197
|
+
`--load-max-p50`/`-p95`/`-p99`, `--load-max-error-rate` or
|
|
198
|
+
`--load-min-throughput` (ok calls/s); a breach exits `10` after the summary.
|
|
199
|
+
To gate on "no worse than last time", save a `--format json` summary and
|
|
200
|
+
pass `--load-baseline prev.json --load-max-regression 10%` on the same run
|
|
201
|
+
shape (`load_regression` on a regression, `load_baseline_mismatch` when the
|
|
202
|
+
runs differ in tool, concurrency, bounds, rate or stages).
|
|
203
|
+
- `--load-interval <sec>` adds an `intervals[]` time series (spot a GC pause
|
|
204
|
+
or a slow leak the totals hide); `--load-warmup <sec>` leaves a warm-up out
|
|
205
|
+
of the statistics (reported under `warmup`). Progress lines on stderr appear
|
|
206
|
+
only with `--format text`.
|
|
207
|
+
- If the generator rather than the server is the bottleneck (throughput stops
|
|
208
|
+
rising while the server is idle), mcpdo cannot help: use the one-shot CLI's
|
|
209
|
+
`mcp-inspector --cli <url> … --load --load-workers 4`, which spreads the
|
|
210
|
+
run over processes and merges one summary.
|
|
211
|
+
- To measure notification fan-out, `--load-subscribe <uri>
|
|
212
|
+
--load-subscribers 50` subscribes 50 sessions; a tool name makes each
|
|
213
|
+
successful call a trigger (latency from its start), and no tool listens for
|
|
214
|
+
`--load-duration` to the server's own updates. Read `fanout.missed` and
|
|
215
|
+
`fanout.deliveryMs`.
|
|
216
|
+
- To load session setup and teardown too (servers behind gateways see many
|
|
217
|
+
short sessions), add `--load-churn` (HTTP/SSE only): each worker connects,
|
|
218
|
+
makes `--load-churn-calls` calls (default `1`), disconnects, repeats.
|
|
219
|
+
Connect cost is in `churn.connectMs`, not in `latencyMs`.
|
|
220
|
+
- `--load-rate` is closed-loop: busy workers drop slots, which hides
|
|
221
|
+
queueing. Add `--load-open-loop` to keep every slot and time calls from
|
|
222
|
+
their scheduled start (`openLoop: true` in the summary).
|
|
177
223
|
- `stoppedEarly` (`reason` + `detail`) means the run ended before its bounds:
|
|
178
|
-
`consecutive_errors` (the server stopped answering), `connection_lost`,
|
|
224
|
+
`consecutive_errors` (the server stopped answering), `connection_lost`,
|
|
225
|
+
`threshold_breached` (a stepped run's `--load-stop-on-breach`), or
|
|
179
226
|
`interrupted`. The counts cover only what completed.
|