modelcontextprotocol / modelcontextprotocol/inspector

TUI real-terminal smoke test self-skips in CI — regressions ship with zero CI signal

Open
#2,408 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's source and CI config (docs/quality-gate.md), not a live reproduction against a running MCP server.

Steps to reproduce

Found via static review of the 2.7.0 tag source (docs/quality-gate.md), not a live run.

  1. docs/quality-gate.md states that smoke:tui self-skips under process.env.CI because Ink needs a real TTY.
  2. It only runs "for real" during npm run local:gate on a developer's own machine.
  3. Confirmed this is the documented, intentional behavior — not a flake.

I have not attempted to push a TUI regression through CI to watch it slip through live; flagging based on the documented gap itself.

Expected behavior

The TUI smoke test runs against a real PTY in CI (e.g. via node-pty or a similar terminal emulator driving scripted key sequences), so a TUI regression is caught before merge/release regardless of whether a contributor happened to run local:gate locally.

Actual behavior

smoke:tui self-skips whenever process.env.CI is set, so CI runs currently give zero signal on TUI regressions; the only real execution path is a developer manually running npm run local:gate.

Suggested fix: run the TUI smoke test in CI against a real PTY instead of relying on local:gate as the only real execution path. By the project's own docs, this is the largest gap between what's tested and what ships.

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

Start with docs/quality-gate.md and locate the smoke:tui entry point and its CI behavior. Compare the CI path with local:gate, then investigate the documented real-PTY approach for scripted key sequences. Done means smoke:tui executes against a real PTY in CI instead of self-skipping, providing regression signal before merge or release.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
ci-cd, cli, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.