modelcontextprotocol / modelcontextprotocol/inspector
TUI has five exhaustive-deps-suppressed effects with no justification comment
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 10.9k
- Forks
- 1.5k
- Avg merge
- 6h 17m
- Merged PRs (30d)
- 151
Description
Which version line?
v2 — current (@modelcontextprotocol/inspector@latest)
Which client?
TUI
Inspector version
2.7.0 (git tag) — static code-review finding, not run locally
Node version
N/A — static code review, no live run performed
Operating system (and browser, for the web client)
N/A — static code review
Transport
Not applicable / never connected
MCP server under inspection
N/A — this is a static code-review finding against the 2.7.0 tag source (clients/tui/src/App.tsx, HistoryTab.tsx, RequestsTab.tsx), not a live reproduction against a running MCP server.
Steps to reproduce
Found via static review of the 2.7.0 tag source, not a live run.
clients/tui/src/App.tsxhas five effects suppressing exhaustive-deps (lines ~411, ~472, ~1446), plus one each inHistoryTab.tsxandRequestsTab.tsx.- None of these carry a justification comment explaining why the suppression is safe.
- Contrast with
core/react/useServers.tsanduseMcpApps.ts, where every suppression carries a one-line reason.
I have not attempted to trigger a stale-closure bug from one of these effects live; flagging the missing justification as the risk — an unexplained suppression is exactly where a stale-closure bug hides after a later refactor touches only the dependency, not the effect body.
Expected behavior
Every exhaustive-deps suppression in the TUI carries a one-line comment explaining why it's safe (matching the standard already followed in core/react/useServers.ts and useMcpApps.ts), or the effect is refactored so the suppression isn't needed.
Actual behavior
Five effects in App.tsx (~lines 411, 472, 1446) plus one each in HistoryTab.tsx and RequestsTab.tsx suppress exhaustive-deps with no comment explaining why.
Suggested fix: add justification comments to each (or refactor to remove the need for suppression), matching the standard already followed elsewhere in the codebase.
Logs, errors, or screenshots
No response
Already prototyped a fix?
No response
Before you submit
- I searched existing issues and this is not a duplicate.
- This is not a security vulnerability report (those go through the private advisory process).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read the exhaustive-deps suppressions in clients/tui/src/App.tsx, HistoryTab.tsx, and RequestsTab.tsx, then compare them with the justified suppressions in core/react/useServers.ts and useMcpApps.ts. Done means each TUI suppression has a one-line safety rationale, or the effect no longer needs suppression after refactoring.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- cli
- Issue type
- Refactor
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100