Closed
Description
Currently servers in User MCP.json are in the form
{
"servers": {
"github": {
"id": "github",
"name": "github",
"version": "0.0.1",
"config": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_tokenz}"
},
"type": "stdio"
}
},
This presents a few problems:
- This is a setting the users are expected to author. They should not need to manually configure
id
andname
, which are duplicative. Theversion
is pretty much a dummy data and having it just confusing to users writing their configs. - This deviates from the standard server configuration that users use across other tools (Windsurf, Cursor, Claude desktop, etc) which we previously followed. This makes it harder for users and developers who are used to and have tooling for other AI products to interoperate with VS Code.
- Like MCP servers added to user settings are not picked up/migrated in real-time #252905 and User mcp.json is not easily accessible #252906, hundreds of existing server repo's instruct users to use the standard schema and telling all those authors that they need to update their instructions will annoy them and be a signficiant amount of work.
- It's different from workspace mcp.json configs and we don't want to have to tell users how to author both kinds of configs unless there's a strong reason for them to be different.
I suggest swapping the declaration around so that there is an optional source
in the server config which contains the registry pointer, if one exists.