feat(web): collapse the schema-portability section by default (#2205)
The Tools tab rendered every schema-portability finding, always open, above the argument form. On a server whose schemas are broadly unportable that put the same wall of text ahead of every tool's first input — and the findings address the server author, not the caller trying to fill the form. The section now opens collapsed behind the same disclosure heading the Skills pane's Conformance section uses, with an `N error(s), M warning(s)` badge. The expand choice is global rather than per tool (`useSchemaFindingsExpanded`, stored as `inspector.schemaFindings.expanded`): this panel is reused across selections, so a per-tool disclosure would re-collapse on every click and reproduce the same scrolling. The badge stays visible while collapsed and the tool-list severity icon is untouched, so nothing about a tool's standing is hidden by the closed state. Two neighbouring fixes on the same panel: - `JsonEditor` frames Ace in a bordered `Paper`. Ace paints its background edge to edge with nothing around it, so "Edit as JSON" replaced a column of bordered inputs with one borderless slab. - `ToolDetailPanel`'s body `ScrollArea` overrode the app-wide `type="scroll"` default with `type="auto"`, parking a permanent bar down the side of any tool whose form is taller than the panel. `offsetScrollbars` stays, so the form does not shift sideways when the bar fades in. `test-servers/configs/unportable-schemas-many-http.json` reproduces the original complaint: the same four presets as `unportable-schemas-http.json` carrying 26 findings rather than 5. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DU3QYnc95g6EM4vo3hYNet Signed-off-by: cliffhall <cliff@futurescale.com>
This commit is contained in:
parent
849eb08db0
commit
db122f53db
1 changed files with 708 additions and 134 deletions
|
|
@ -48,6 +48,7 @@ as a missing capability rather than an error.
|
|||
| `nullable-fields-http.json` **(legacy era)** | Tools tab: nullable (`anyOf` + `null`) arguments | [#1928](https://github.com/modelcontextprotocol/inspector/issues/1928) |
|
||||
| `root-union-schemas-http.json` **(legacy era)** | Tool schemas whose arguments are a root `anyOf` / `oneOf`, including one no branch of which can be offered | [#2123](https://github.com/modelcontextprotocol/inspector/issues/2123), [#2224](https://github.com/modelcontextprotocol/inspector/issues/2224) |
|
||||
| `unportable-schemas-http.json` **(legacy era)** | Tool schemas a real client rejects, flagged in all three clients | [#1005](https://github.com/modelcontextprotocol/inspector/issues/1005) |
|
||||
| `unportable-schemas-many-http.json` **(legacy era)** | The same constructs at **volume** — 26 findings over four tools, enough to bury the argument form | [#2205](https://github.com/modelcontextprotocol/inspector/issues/2205) |
|
||||
| `rfc6570-templates-http.json` **(legacy era)** | Resources tab: RFC 6570 resource-template expansion | [#1919](https://github.com/modelcontextprotocol/inspector/issues/1919) |
|
||||
| `advertised-extensions-http.json` **(legacy era)** | Tool registration gated on advertised extensions | [#1739](https://github.com/modelcontextprotocol/inspector/issues/1739) |
|
||||
| `oauth-custom-resource-metadata-http.json` **(legacy era)** | OAuth discovery driven by the challenge's `resource_metadata` | [#2071](https://github.com/modelcontextprotocol/inspector/issues/2071) |
|
||||
|
|
@ -349,6 +350,24 @@ has:
|
|||
mcp-inspector --cli http://127.0.0.1:6603/mcp --method tools/list --strict # exits 6
|
||||
```
|
||||
|
||||
### The same rules at volume
|
||||
|
||||
`unportable-schemas-many-http.json` (port 6613, legacy era) is the same four
|
||||
presets carrying **26 findings** — `echo` 11, `add` 6, `get_temp` 5 on its
|
||||
output schema, `get_weather` 4 — which is what a server generated from a
|
||||
codebase that spells every nullable field `"type": ["string", "null"]` actually
|
||||
looks like.
|
||||
|
||||
It exists for [#2205](https://github.com/modelcontextprotocol/inspector/issues/2205)
|
||||
rather than for the rules themselves. Broken, selecting any tool here filled the
|
||||
whole detail panel with findings and pushed the argument form off the bottom —
|
||||
not one input field was reachable without scrolling, on every tool switch, and
|
||||
the findings address the server author rather than the caller who is trying to
|
||||
fill the form. Fixed, the section opens collapsed behind its
|
||||
`N error(s), M warning(s)` badge and the form is on screen immediately; the
|
||||
expand choice is global, so opening it once keeps it open across tools.
|
||||
|
||||
|
||||
- **CLI** — `--strict` prints the full report (path, issue, suggested fix) on
|
||||
stderr and exits `6` on an error-severity finding; without it, one summary
|
||||
line. See [Schema portability](../clients/cli/README.md#schema-portability---strict).
|
||||
|
|
|
|||
Loading…
Reference in a new issue