MCP.so
登录
返回博客

VS Code MCP 配置教程:为 GitHub Copilot Chat 添加 MCP 服务器

2026年10月15日MCP.so TeamMCP.so Team

VS Code MCP 配置指南:从 @mcp 画廊安装服务器,编写 .vscode/mcp.json 或 .mcp.json,用 inputs 安全保存密钥,通过 OAuth 登录远程服务器,并排查常见错误。

如何在 VS Code 中添加 MCP 服务器

在 VS Code 中添加 MCP 服务器最快的方式是内置画廊:打开扩展视图,搜索 @mcp,点击 Install。画廊里没有的服务器,可以在命令面板运行 MCP: Add Server,或者自己编辑配置文件:.vscode/mcp.json(服务器写在 servers 下)或可移植的 .mcp.json(服务器写在 mcpServers 下)。之后,服务器的工具就会出现在 GitHub Copilot Chat 的 Agent 中。

本文内容均对照 VS Code 官方文档核实:添加和管理 MCP 服务器以及 MCP 配置参考。想找服务器试试?浏览 MCP 服务器目录。

速查表

任务方法
从画廊安装扩展视图,搜索 @mcp,Install(或右键 Install in Workspace)
引导式配置命令面板,MCP: Add Server
工作区配置(VS Code 格式).vscode/mcp.json,顶层 servers
工作区配置(可移植格式)工作区根目录的 .mcp.json,顶层 mcpServers
用户配置MCP: Open User Configuration
启动、停止、查看日志MCP: List Servers,选择服务器
开关单个工具聊天输入框中的 Configure Tools
通过命令行安装code --add-mcp '...json...'
清除过期工具MCP: Reset Cached Tools

第 1 步:从 MCP 画廊安装

VS Code 在扩展视图中内置了 MCP 服务器画廊:

  1. 打开扩展视图,在搜索框输入 @mcp(例如 @mcp playwright)。
  2. 点击 Install 把服务器添加到用户配置,或右键选择 Install in Workspace 把它写入 .vscode/mcp.json。
  3. 出现提示时,确认你信任该服务器。VS Code 会启动它并发现它的工具。
  4. 打开 Chat 视图,让它做一件服务器能做的事,例如对 Playwright MCP 服务器说"打开 code.visualstudio.com 并截图"。

通过 MCP: Add Server → Browse MCP Servers 也能进入同一个画廊。

第 2 步:手动配置 mcp.json

对于画廊之外的服务器,或者要和团队共享配置,就需要自己写配置文件。VS Code 读取四个位置:

作用域文件顶层键适用场景
工作区根目录的 .mcp.jsonmcpServers与团队及其他 Copilot 工具共享
工作区.vscode/mcp.jsonserversVS Code 专属功能:输入变量、开发模式、沙箱
用户~/.copilot/mcp-config.json(或 $COPILOT_HOME/mcp-config.json)mcpServers与 Copilot CLI 共享的个人服务器
用户配置文件配置文件中的 mcp.json(MCP: Open User Configuration)servers特定于某个配置文件的服务器

文档现在推荐用工作区根目录的 .mcp.json 来共享服务器,因为同一个文件在其他工具里也能用。.vscode/mcp.json 仍然是支持 VS Code 额外功能的格式,所以本文的示例都用它。两种文件都可以提交到版本控制,但不要包含密钥。

一个本地(stdio)服务器和一个远程(HTTP)服务器

{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp"
    },
    "memory": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    }
  }
}

第一个条目是远程的 GitHub MCP 服务器,第二个在本地运行 Memory MCP 服务器。在可移植的 .mcp.json 中,同样的条目放在 mcpServers 而不是 servers 下。

字段一览:

  • stdio: type("stdio")、command、args、cwd、env、envFile,以及 dev 和 sandboxEnabled。
  • HTTP/SSE: type("http" 或 "sse")、url、headers、oauth。使用 "http" 时,VS Code 会先尝试 Streamable HTTP,服务器不支持时再回退到 SSE。

command 必须在 PATH 中或写成完整路径。如果用 Docker 运行服务器,不要加后台运行参数(-d):stdio 服务器必须保持在前台。VS Code 会为这些文件提供 IntelliSense,字段名拼错会立即提示。

第 3 步:用输入变量保护密钥

在已提交的 mcp.json 中硬编码 API Key 是最典型的错误。在 .vscode/mcp.json 中你可以声明 inputs:服务器第一次启动时 VS Code 会提示你输入值,然后安全地保存起来。

{
  "inputs": [
    {
      "type": "promptString",
      "id": "perplexity-key",
      "description": "Perplexity API Key",
      "password": true
    }
  ],
  "servers": {
    "perplexity": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "server-perplexity-ask"],
      "env": {
        "PERPLEXITY_API_KEY": "${input:perplexity-key}"
      }
    }
  }
}

输入类型有 promptString(自由文本;password: true 会隐藏输入内容)、pickString(从 options 列表中选择)和 command(取某个 VS Code 命令的结果)。输入变量也可以用在请求头里,例如 "Authorization": "Bearer ${input:api-token}"。

其他做法:用 "envFile": "${workspaceFolder}/.env" 让 stdio 服务器读取 dotenv 文件,并在路径中使用 ${workspaceFolder} 等预定义变量。注意格式限制:inputs、envFile 和开发模式只在 .vscode/mcp.json 和用户配置文件的 mcp.json 中有效,在可移植的 .mcp.json 中无效。另外,需要 ${input:...} 值的服务器不会被转发给 Copilot harness 会话,后者直接读取可移植格式的文件。

第 4 步:远程服务器认证

大多数托管服务器使用 OAuth。当服务器需要认证时,VS Code 会在第一次连接时打开浏览器窗口并自动完成流程。如果服务商要求使用预先注册的客户端,添加一个 oauth 对象:

{
  "servers": {
    "slack": {
      "type": "http",
      "url": "https://mcp.slack.com/mcp",
      "oauth": {
        "clientId": "example-client-id"
      }
    }
  }
}

对于使用 API Key 的服务器,用输入变量把 Key 放进 headers。企业还可以设置 "enterpriseManaged": true(预览版),通过 SSO 身份提供方登录。MCP OAuth 的底层原理见我们的 MCP 认证指南。

第 5 步:在 Copilot Chat 中使用工具

服务器运行后,它的工具就能在 Chat 视图中被 Agent 使用。你可以:

  • 让 Agent 自己选择。 它会按需调用工具并显示审批提示;展开工具详情检查输入后点击 Allow。
  • 直接引用工具:在聊天输入框中输入 # 并选择工具。
  • 开关工具:使用聊天输入框中的 Configure Tools,让 Agent 只看到当前任务需要的工具。

128 个工具的上限。 一次聊天请求最多只能启用 128 个工具。如果看到"Cannot have more than 128 tools per request",在工具选择器中取消勾选部分工具或整个服务器,或者通过 github.copilot.chat.virtualTools.threshold 设置开启虚拟工具,自动对大量工具进行分组。工具越少、越相关,Agent 的选择也越准确;参见 MCP 工具发现。

VS Code 中的 MCP 服务器不只提供工具,还可以提供 resources、prompts 和交互式的 MCP Apps。

添加服务器的其他方式

命令行:

code --add-mcp "{\"name\":\"my-server\",\"command\": \"uvx\",\"args\": [\"mcp-server-fetch\"]}"

安装链接。 服务器作者可以发布 vscode:mcp/install?... 链接:把 JSON 配置(name、command、args 等)进行 URL 编码后拼接在后面。点击链接会打开 VS Code 的安装流程。

复用其他应用的配置。 chat.mcp.discovery.enabled 设置可以让 VS Code 读取已在 Claude Desktop、Cursor、Windsurf 或 Copilot CLI 中配置好的服务器。Copilot CLI 的发现默认开启,其他默认关闭。

Dev Container。 把服务器写在 devcontainer.json 的 customizations.vscode.mcp.servers 下,VS Code 会把它们写入容器内的配置。

设置同步。 运行 Settings Sync: Configure 并勾选 MCP Servers,即可在多台设备间同步配置。

信任与沙箱

本地 MCP 服务器能以你的权限运行任意代码。VS Code 提供了两道防线:

  • 信任提示。 工作区服务器继承工作区信任(Workspace Trust),在受限模式下不会启动;来自其他来源的服务器在首次启动或配置变更时会请求信任。MCP: Reset Trust 可以清除这些决定。
  • 沙箱(macOS 和 Linux)。 在 stdio 服务器上设置 "sandboxEnabled": true,并用 sandbox 对象只允许写入特定文件夹、只允许访问特定域名。

更完整的清单见 MCP 安全最佳实践。

VS Code MCP 故障排查

服务器出错时,Chat 视图会显示错误标记。点击它并选择 Show Output,或者运行 MCP: List Servers,选中服务器后选择 Show Output 查看日志。

现象解决办法
服务器始终不启动工作区处于受限模式,或你拒绝了信任提示。信任该工作区,或运行 MCP: Reset Trust。
command not found 或 ENOENT命令不在 VS Code 的 PATH 中。使用 npx、uvx 或 python 的完整路径。
基于 Docker 的服务器卡住从 docker run 参数中去掉 -d;stdio 需要容器在前台运行。
工具缺失或已过期在 MCP: List Servers 中重启服务器,然后运行 MCP: Reset Cached Tools。
"Cannot have more than 128 tools per request"在 Configure Tools 中取消勾选工具,或开启虚拟工具。
服务器在聊天中可用,但在 Copilot harness 会话中不可用它使用了 ${input:...}。把它移到 .mcp.json,并换一种方式传递密钥。
远程服务器返回 401未登录或请求头的值错误。查看服务器的输出日志,完成 OAuth 提示,或修正 headers 中的 Token。

如果日志看不出问题,用 MCP Inspector 单独测试服务器。

下一步

常见问题

VS Code 的 MCP 配置文件在哪里?

工作区服务器写在 .vscode/mcp.json(servers 下)或工作区根目录的可移植 .mcp.json(mcpServers 下)。用户级服务器在配置文件的 mcp.json 中,可以用「MCP: Open User Configuration」打开。

VS Code 能直接使用我在 Claude Desktop 或 Cursor 中配置好的 MCP 服务器吗?

可以。开启 chat.mcp.discovery.enabled 设置并选择来源,例如 Claude Desktop、Cursor、Windsurf 或 Copilot CLI。Copilot CLI 的发现默认开启,其他默认关闭。

如何在 VS Code 中给 MCP 服务器传 API Key 而不硬编码?

在 .vscode/mcp.json 中声明一个 type 为 promptString、password 为 true 的 input,然后在 env 或 headers 中用输入变量语法(input: 加上该 input 的 id)引用它。VS Code 只会提示一次,并安全地保存该值。

VS Code 一次最多能使用多少个 MCP 工具?

一次聊天请求最多可启用 128 个工具。达到上限时,可在「Configure Tools」中取消勾选部分工具,或通过 github.copilot.chat.virtualTools.threshold 设置开启虚拟工具。