modelcontextprotocol / modelcontextprotocol/inspector

TUI has five exhaustive-deps-suppressed effects with no justification comment

Open Beginner friendly
#2,414 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

chore v2
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.

  1. clients/tui/src/App.tsx has five effects suppressing exhaustive-deps (lines ~411, ~472, ~1446), plus one each in HistoryTab.tsx and RequestsTab.tsx.
  2. None of these carry a justification comment explaining why the suppression is safe.
  3. Contrast with core/react/useServers.ts and useMcpApps.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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.