2.3.0
modelcontextprotocol/inspector2.3.0Aug 19, 2026by cliffhall
AI Summary
Focuses on OAuth enhancements, container sandboxing improvements, and stability fixes for the web UI and TUI.
Key Highlights
- Per-server custom OAuth authorization-request parameters and id_token decoding.
- Container sandbox improvements including loopback binding and port pinning.
- Web UI fixes for nullable/union fields, schema defaults, and accessibility.
- TUI fixes for Windows SIGINT handling and input settling issues.
New Features
- Per-server custom OAuth authorization-request parameters
- Surface and decode OAuth id_token in Connection Info
- Auth URL and Token URL overrides in Server Settings
Full Release Notes
## What's Changed * fix: bind loopback by address and pin the sandbox port for containers by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2009 * chore: sync v2/main to 2.2.0 + guidance to bump on v2/main before the milestone merge by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2011 * fix: gate the connect-time logging/setLevel on the negotiated era (#1990) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2017 * fix: add eol=lf policy to .gitattributes so Windows checkouts stay clean by @olaservo in https://github.com/modelcontextprotocol/inspector/pull/1994 * chore(deps): Bump the npm_and_yarn group across 4 directories with 6 updates by @dependabot[bot] in https://github.com/modelcontextprotocol/inspector/pull/2004 * fix: render nullable and union argument fields correctly in the web form and the TUI by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2014 * build(deps): bump the github-actions group across 1 directory with 5 updates by @dependabot[bot] in https://github.com/modelcontextprotocol/inspector/pull/1976 * fix: gate submission on unsendable field text, and on required tool arguments by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2024 * feat: per-server custom OAuth authorization-request parameters by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2022 * feat: surface and decode the OAuth id_token in Connection Info by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2023 * fix: salvage a list result's valid entries when one is malformed (#1909) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2016 * test(web): pin the JSON editor's reported escaping reproductions (#1853, #1856, #1885) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2025 * fix(web): stop a schema default from reverting the edit in progress by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2027 * chore(scripts): derive dep-lockstep candidates from what enters each tsc program by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2029 * fix: settle ink input handlers after frame waits so TUI coverage runs stop flaking on Windows by @olaservo in https://github.com/modelcontextprotocol/inspector/pull/1996 * fix: stop emitting a process-wide SIGINT in run-method.test so the CLI suite passes on Windows by @olaservo in https://github.com/modelcontextprotocol/inspector/pull/1995 * fix(web): read modern tasks support from the extension map by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2032 * fix(web): accept CRLF-delimited SSE frames on the servers events stream by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2036 * chore(lint): enable @typescript-eslint/no-floating-promises in all five ESLint scopes by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2039 * feat(auth): Auth URL and Token URL overrides in Server Settings by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2037 * fix(web): name an empty tool result instead of "No results yet" (#1860) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2034 * fix(web): correct the Custom Headers OAuth hint, name key/value rows for a11y (#2040) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2038 * fix: resolve node bins via package.json instead of spawning npx .cmd shims so verify/smoke scripts run on Windows by @olaservo in https://github.com/modelcontextprotocol/inspector/pull/1997 * fix(web): expand resource templates per RFC 6570 by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2035 * fix(web): key tool selection by row identity so duplicate tool names are individually inspectable by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2041 * chore: ignore the web client's tsup build output in ESLint by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2044 * fix: register SSE abort cleanup before the priming write by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2045 * fix: surface list-fetch failures in paginated mode (#1998) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2047 * fix: handle background command rejections in App (#2049) by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2050 * chore: bump version to 2.3.0 by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2052 * chore(deps): sync the security fixes that landed on main by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2059 * chore(deps): bump nanoid to 3.3.18 to clear the high-severity advisory by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2061 * chore: merge v2/main for the v2.3.0 milestone release by @cliffhall in https://github.com/modelcontextprotocol/inspector/pull/2054 **Full Changelog**: https://github.com/modelcontextprotocol/inspector/compare/2.2.0...2.3.0 Smoke test ledger for milestone branch: [v2/chore/milestone-merge-v2.3.0](https://claude.ai/code/artifact/d488330e-1b83-43d4-b854-09e0bec7d05a)