fix: stop advertising desktop MCP servers as launched (#4501) - #4517
Conversation
…4501) The desktop settings registry described MCP servers as launched over stdio and offered an enable switch, but engine/server.py load_mcp() has no client consumer: _get_agent builds Agent(tools=_builtin_tools()) and never spawns a server. The text claimed a live capability that does not exist. Apply the honest-text fix to all three synced registry copies and the Manage panel, and add a registry-drift guard asserting the hint no longer claims a launch the engine never performs. Co-authored-by: MervinPraison <MervinPraison@users.noreply.github.com>
|
@coderabbitai review |
|
/review |
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Greptile SummaryThe PR corrects the desktop UI so configured MCP servers are described as stored configuration rather than active integrations.
Confidence Score: 5/5The PR appears safe to merge, with no concrete changed-code defect identified. The changes are limited to accurate static UI copy and a regression test, preserve synchronized registry content, and introduce no reachable behavioral or security failure.
|
| Filename | Overview |
|---|---|
| src/praisonai-desktop/frontend/src/settings-registry.js | Updates the frontend registry’s MCP description to accurately state that configured servers are not launched. |
| src/praisonai-desktop/frontend/tests/registry-drift.test.mjs | Adds a focused regression assertion that the shipped MCP hint describes storage-only behavior. |
| src/praisonai-desktop/ui/index.html | Updates the shipped inline registry and adds a static explanatory note to the MCP management panel. |
| src/praisonai-desktop/ui/settings-registry.js | Keeps the standalone UI registry synchronized with the corrected MCP description. |
Reviews (1): Last reviewed commit: "fix: stop advertising MCP servers as lau..." | Re-trigger Greptile
|
@claude You are the FINAL architecture reviewer. If the branch is under MervinPraison/PraisonAI (not a fork), you are able to make modifications to this branch and push directly. SCOPE: Review changes in this PR. Python SDK: praisonaiagents, praisonai. TypeScript SDK: src/praisonai-ts/. Do NOT modify src/praisonai-rust. Read ALL comments above from Gemini, Qodo, CodeRabbit, and Copilot carefully before responding. Phase 1: Review per AGENTS.md
Phase 2: FIX Valid Issues Phase 3: Final Verdict |
|
Claude finished @MervinPraison's task —— View job Final Architecture Review — PR #4517 ✅ Approve
Phase 1 — Architecture review (AGENTS.md)
Independent verification of the premiseThe PR claims MCP servers are stored but never launched. Confirmed:
The old copy "Tool servers launched over stdio. Each is disabled until you enable it." advertised a live capability with no consumer. The replacement is accurate. Change quality notes
Phase 2 — FixesNone required. No valid bugs raised by prior reviewers (Greptile 5/5, Qodo paused). I independently reviewed the changed code and found no defects, gaps, or scope creep. Nothing pushed. Phase 3 — Verdict✅ Approve. Minimal, backward-compatible, honesty-improving UI fix with a regression guard. Ships the accurate sentence instead of an unimplemented promise. Ready to merge.
|
|
Merge gate scan — eligible for assessment. Claude merge gate will assess and may auto-merge if |
|
Merged by Claude PR merge gate ( |
Fixes #4501
Problem
The desktop settings registry described MCP servers as "Tool servers launched over stdio. Each is disabled until you enable it." and offered an enable switch that persists across restarts — but the capability does not exist.
Verified against current code:
engine/server.pyload_mcp()(:631) has exactly two consumers:GET /mcp(:1517) and thePOST /mcpeditor (:1685)._get_agent(:1143) buildsAgent(..., tools=_builtin_tools())(:1152–1158) and never spawns an MCP server or passes MCP tools.The text advertised a live capability with no consumer. Building a real MCP client is out of scope for a minimal fix, so this ships the honest sentence instead.
Change
ui/settings-registry.js,frontend/src/settings-registry.js, inline inui/index.html) with: "Saved for a future release. Servers listed here are stored only — the engine does not launch them yet, so the model cannot use them."registry-drift.test.mjsguard asserting the hint no longer claims a launch the engine never performs.The existing
sync-registry.mjs --checkguarantees the three copies stay identical (verified passing).Test
node --test frontend/tests/registry-drift.test.mjs→ 3 pass.Generated with Claude Code