Skip to content

MCP Tool Picker UX Improvements #245721

@hawkticehurst

Description

@hawkticehurst

Cataloging a list of various UX improvements to VS Code's MCP support that we should discuss / implement for the April 2025 milestone.

Use custom theme-able checkboxes in tool picker

Switch out native checkboxes with custom checkboxes found in the Settings page.

  • Goal: Reduce visual noise and better match editor theming
Image Image

Lowercase server location

The text "From {location}" should be changed to align with other quick picks across VS Code. This means changing "From" to "from."

Image

Remove product names from server location text

Currently when displaying the locations of MCP servers we sometimes show the product name (i.e. "Claude Desktop") and other times show the file/path where the MCP server(s) are configured.

I propose we remove all cases of product names and always to show the file/path that contributes a server. This removes the need to keep track of the names of products that contribute MCP servers that may come and go over time. Also, if tools are contributed via an extension we should just say "from extension".

Edge case: Displaying full absolute file paths will get verbose/untenable very quickly, so I propose we display opinionated versions of contributing files since we'll be manually detecting these files anyway. For example, just displaying "claude_desktop_config.json" should be descriptive enough for folks to understand where it's coming from. But in cases where mcp.json is used we'll need to be a bit more prescriptive (i.e. ".vscode/mcp.json" vs ".cursor/mcp.json").

Bonus: This fixes an issue that will be caused by the lowercase server location proposal where we would otherwise have a weird mix of lowercase and capitalized text. Aka "from Claude Desktop" turns into "from claude_desktop_config.json".

Image

Remove server status from tool picker

I'm leaning towards suggesting that we remove the server status (i.e. "Stopped" / "Running") from the tool picker. As @connor4312 mentioned in another thread:

tools are still available to the model and the server will be started on-demand when a model want to use one of those tools

Given that reality, I think displaying server status leads to more confusion / unnecessary work (i.e. starting a server when you don't need to) than is needed.

Additionally, server status information and the affordance to manually stop/start servers is still available via the "MCP: List Server" command.

  • Goal: Clean up the UI a tiny bit and reduce the density of information that needs to be parsed
Image

Add settings gear to server menu items

Currently, you must go through a multi-step process to access and configure MCP server settings via the "MCP: List Servers" command. While we should certainly keep that command, we should also introduce an easy way to access these server settings via the tool picker.

We should align with the existing quick pick UX pattern of rendering the settings-gear icon on selection/hover. Clicking or tabbing to this icon should take you to the server settings you'll find while using the List Servers command.

Image

MCP Tool Dropdown / Confirmation UI Updates

Coming soon... It's what I'm working on this week and will have more to share in this issue thread next week.

See: #246287

Metadata

Metadata

Labels

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions