**Short version:** VS Code reads MCP servers from `.vscode/mcp.json`, under a root key called `servers`. Local servers are `stdio` with a command; remote ones are `http` with a URL. You use their tools from Copilot Chat. The examples below follow the VS Code MCP documentation.

The one detail that breaks most setups
VS Code's root key is servers. Claude Desktop, Cursor and many READMEs use mcpServers. Paste a config from another tool without renaming the key and nothing loads, with no obvious error.
A local (stdio) server
{
"servers": {
"myServer": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@example/mcp-server"],
"env": {}
}
}
}A remote (HTTP) server
GitHub's official server is a good first one:
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp"
}
}
}Keeping keys out of the file
.vscode/mcp.json is meant to be committed, so never hardcode a key in it. Reference an input variable instead and VS Code prompts for the value:
"env": { "API_KEY": "${input:apiKey}" }
Workspace or user level?
- Project tools:
.vscode/mcp.json, committed, shared with the team. - Personal tools: user configuration, opened with "MCP: Open User Configuration" from the Command Palette.
- First start: VS Code asks you to confirm you trust the server.
- Changed your mind: run "MCP: Reset Trust".
Using the tools
Open Copilot Chat and ask for something the server can do. Copilot Free includes a monthly allowance of chat requests, enough to try this without paying. If you also use Claude Code, the Claude Code MCP guide covers the equivalent commands, and our MCP directory has install details for 110 servers.