2.5.0
modelcontextprotocol/inspector2.5.0Sep 2, 2026by cliffhall
AI Summary
Version 2.5.0 focuses on significant code refactoring to improve maintainability by decomposing the main App.tsx file into modular hooks. It also introduces enhanced OAuth support, including token revocation, and fixes various issues related to tool schemas, JSON editing, and resource handling.
Key Highlights
- Refactored the main App.tsx file into smaller, reusable custom hooks such as useSessionRef, useOAuthRecovery, and useConnectionLifecycle.
- Enhanced authentication capabilities by implementing OAuth token revocation on clear (RFC 7009) and adding support for RFC 8414 metadata.
- Improved tool and schema rendering by fixing issues with root-level anyOf/oneOf compositions and restoring the raw-JSON toggle.
- Expanded test coverage by adding Firefox headless web smoke tests and improving the stability of TUI and render smoke tests.
New Features
- OAuth token revocation (RFC 7009) when clearing authorization.
- Support for RFC 8414 metadata endpoints in OIDC discovery.
- Restored raw-JSON toggle for tool argument editing.
- Standardized use of the Ace JSON editor across the application.
- Extracted agent recipes from AGENTS.md into agent skills.
Full Release Notes
## What's Changed * test(smoke): run the headless web smokes in Firefox via the pre-push gate by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2133 * fix: render tool schemas with root-level anyOf/oneOf composition by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2137 * chore(web): move App.tsx's module-level block into files by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2149 * chore(web): extract App.tsx's leaf hooks by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2150 * chore(web): collapse App.tsx's six session refs into useSessionRef by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2152 * fix(scripts): make smoke:tui assert the TUI survives its first frame (#2147) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2158 * ci: run the coverage gate in a parallel job instead of serially after validate by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2160 * chore(web): extract App.tsx's OAuth recovery cluster into useOAuthRecovery by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2162 * chore(web): connected-flow smoke for the Tools, Resources and Prompts tabs by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2164 * chore(web): extract App.tsx's MCP Apps wiring into useMcpApps by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2166 * chore(scripts): rename the local pre-push gate off `ci`, and guard it out of CI (#2146) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2167 * chore(web): extract App.tsx's connection lifecycle into useConnectionLifecycle by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2169 * feat(web): use the Ace JSON editor everywhere, and restore the raw-JSON toggle by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2170 * chore(web): extract App.tsx's server commands into useServerCommands by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2173 * fix: say why a never-acknowledged subscriptions/listen ended, instead of retrying it eight times by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2176 * fix(web): surface failed resource subscribe/unsubscribe by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2179 * fix(web): refuse a raw-JSON tool argument the schema would retype by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2175 * fix(scripts): give the render-smoke overlap test room for process startup by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2178 * test(scripts): anchor the render-smoke overlap paint to the parent's clock by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2181 * chore(web): collapse InspectorView's prop wall into domain bundles by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2182 * fix: cancel a Streamable HTTP call by closing its stream (#2140) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2185 * feat(auth): revoke OAuth tokens at the authorization server on clear (RFC 7009) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2186 * fix(auth): accept RFC 8414 metadata served at the OIDC well-known path by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2184 * fix(core): read state stores during render instead of re-syncing in an effect by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2193 * chore(web): resolve the react-hooks findings App.tsx's decomposition unmasked (#2161) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2191 * fix(web): terminate the five void-discarded OAuth recovery promises by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2190 * chore: lint core/react with eslint-plugin-react-hooks by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2194 * chore: extract AGENTS.md recipes into agent skills by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2189 * chore: consolidate duplicated runtime dependencies into the root package.json by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2200 * chore: consolidate shared toolchain devDependencies into the root package.json by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2199 * docs: tune skill eval cases and document how to write them by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2203 * chore: bump version to 2.5.0 by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2213 * chore: merge v2/main for the v2.5.0 milestone release by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2215 **Full Changelog**: https://github.com/modelcontextprotocol/inspector/compare/2.4.0...2.5.0 Smoke test ledger for milestone branch: [v2/chore/milestone-merge-v2.5.0](https://claude.ai/code/artifact/6f25d292-3623-419f-af7f-26aba57247ef)