Skip to content

Connect VS Code to a remote MCP server

VS Code reaches your tunnel over Streamable HTTP, but it is the one client whose config does not use the mcpServers block everything else accepts. Pasting the standard snippet here will not work.

VS Code nests the server map under mcp:

{
"mcp": {
"servers": {
"notes-via-tunnel": {
"url": "https://notes--acme.mcppipe.dev/mcp"
}
}
}
}

A flat, dotted key at the top level is also accepted:

{
"mcp.servers": {
"notes-via-tunnel": { "url": "https://notes--acme.mcppipe.dev/mcp" }
}
}

mcppipe’s auto-detect reads both shapes. mcppipe up prints the generic mcpServers block and then a reminder line that VS Code wants "mcp": { "servers": { … } } — so if you copy the block verbatim into VS Code, re-nest it first.

ScopePath
User settings%APPDATA%\Code\User\settings.json · ~/Library/Application Support/Code/User/settings.json · ~/.config/Code/User/settings.json
User MCP filethe same directory, mcp.json
Workspace<project>/.vscode/mcp.json

Both user-level files are scanned. The workspace file is opt-in — pass --scan-workspace, for the same reason as Cursor: a repository you just cloned should not silently contribute server definitions.

settings.json is JSONC in practice — people keep // comments and trailing commas in it, and VS Code accepts that. mcppipe’s detection strips both before parsing, so a heavily-commented settings file does not defeat auto-detect.

VS Code runs on your machine, so the relevant allowlist entry is your own egress IP. Vendor presets are for cloud-hosted agents, not for editors.