🤖 fix: ordinary MCP server label misattributes global disablement to project

Open Beginner friendly
#4,297 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
86/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
frontend

Research direction

Start at src/browser/components/WorkspaceMCPModal/WorkspaceMCPModal.tsx:410–412 and reproduce the global-only disabled ordinary server in the isolated app. Trace how the inherited info.disabled value is used for status copy; done means global disablement no longer receives project-specific wording while global/workspace precedence remains unchanged.

Written by the indexing model from the issue text.

Description

Problem

Workspace MCP Configuration labels an ordinary MCP server “(disabled at project level)” even when the server is disabled only in the global MCP settings. This pre-existing label was observed during remote UAT for #4296; that PR only removes the Agent Plugin subtitle claim.

Reproduction

  1. In an isolated app, add an ordinary stdio server in Settings → MCP.
  2. Disable it globally. Keep the project's MCP configuration absent and use no workspace override.
  3. Open Workspace MCP Configuration.
  4. The server's toggle is off, but its subtitle incorrectly attributes that state to the project layer.

Expected: do not claim a project-specific source when disablement came from the global settings.

The unchanged branch at src/browser/components/WorkspaceMCPModal/WorkspaceMCPModal.tsx:410–412 uses the inherited info.disabled value with project-specific copy. Reproduced at 6b7a1f698cafa6baac46a314bd5b8273ec4e3e5b in a real web dev-server sandbox. No change to enablement logic is proposed.

Follow-up trigger: the next ordinary-MCP status-copy change. Keep the fix separate from #4296 and preserve global/workspace precedence.

Evidence

The uat-plain row was disabled globally, without a project config. The recording also covers plugin override checks from the same UAT run.

Global-only disabled ordinary server labelled project-disabled

Remote UAT recording


Generated with xum • Model: coder:openai/gpt-6-astra • Thinking: xhigh • Cost: $6.68

Dominant language
TypeScript
Stars
2k
Forks
136
Avg merge
18h 49m
Merged PRs (30d)
297

Contributor guide

No contributing guide indexed for this repository

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.

More from coder/xum

All issues in coder/xum

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.