在 VS Code 中使用 MCP 服务器
模型上下文协议 (MCP) 是一个开放标准,它允许 AI 模型通过统一接口使用外部工具和服务。在 VS Code 中,MCP 服务器为文件操作、数据库或与外部 API 交互等任务添加了工具。
本文将指导你设置 MCP 服务器并在 Visual Studio Code 中以代理模式使用工具。
MCP 如何工作?
MCP 遵循客户端-服务器架构
- MCP 客户端(如 VS Code)连接到 MCP 服务器并代表 AI 模型请求操作
- MCP 服务器提供一个或多个工具,通过定义明确的接口公开特定功能
- 模型上下文协议定义了客户端和服务器之间通信的消息格式,包括工具发现、调用和响应处理
例如,文件系统 MCP 服务器可能提供用于读取、写入或搜索文件和目录的工具。GitHub 的 MCP 服务器提供列出仓库、创建拉取请求或管理问题的工具。MCP 服务器可以在你的机器上本地运行,也可以远程托管,VS Code 支持这两种配置。
通过标准化这种交互,MCP 消除了每个 AI 模型和每个工具之间进行自定义集成的需要。这使你只需向工作区添加新的 MCP 服务器即可扩展 AI 助手的功能。了解更多关于模型上下文协议规范的信息。
VS Code 中支持的 MCP 功能
VS Code 支持以下 MCP 功能
VS Code 中对 MCP 的支持通常从 VS Code 1.102 开始可用。
先决条件
- 安装最新版本的 Visual Studio Code
- 访问 Copilot
在 VS Code 中启用 MCP 支持
chat.mcp.access 设置控制哪些 MCP 服务器可以在 VS Code 中安装和运行
all(默认):允许所有 MCP 服务器registry:只允许来自注册表的 MCP 服务器none:不允许任何 MCP 服务器
集中管理 MCP 支持
你有两种选项可以集中管理组织中的 MCP 支持
-
设备管理:通过组策略或配置配置文件集中启用或禁用组织中的 MCP 支持。了解更多关于通过设备管理管理 VS Code 设置的信息。
-
GitHub Copilot 策略:通过 GitHub Copilot 策略控制组织中 MCP 服务器的可用性。了解更多关于 GitHub Copilot 文档中管理企业中 Copilot 的策略和功能的信息。
添加 MCP 服务器
MCP 服务器可以在你的机器上运行任意代码。只添加来自受信任来源的服务器,并在启动前审查发布者和服务器配置。当你第一次启动 MCP 服务器时,VS Code 会提示你确认你信任该 MCP 服务器。阅读安全文档以了解在 VS Code 中使用 AI 的含义。
你可以在 VS Code 中通过多种方式添加 MCP 服务器
从扩展视图安装 MCP 服务器
扩展视图有一个专门用于 MCP 服务器的部分。VS Code 从 GitHub MCP 服务器注册表检索 MCP 服务器列表。
要从扩展视图安装 MCP 服务器
-
启用
chat.mcp.gallery.enabled设置以在扩展视图中显示 MCP 服务器。 -
打开扩展视图(⇧⌘X (Windows、Linux Ctrl+Shift+X))并在搜索字段中输入
@mcp以显示 MCP 服务器列表。或者,从命令面板运行MCP: 浏览服务器命令。
VS Code 从 GitHub MCP 服务器注册表检索 MCP 服务器列表。
-
可选地,从列表中选择一个 MCP 服务器以查看其详细信息。
-
选择安装以添加 MCP 服务器。
MCP 服务器安装在你的用户配置文件中,可以在该配置文件的任何工作区中使用。
将 MCP 服务器添加到工作区 `mcp.json` 文件
如果你想为特定项目配置 MCP 服务器,你可以将服务器配置添加到工作区的 .vscode/mcp.json 文件中。这允许你与项目团队共享相同的 MCP 服务器配置。
确保通过使用输入变量或环境文件来避免硬编码 API 密钥和其他凭据等敏感信息。
要将 MCP 服务器添加到你的工作区
-
在你的工作区中创建
.vscode/mcp.json文件。 -
选择编辑器中的添加服务器按钮以添加新服务器的模板。VS Code 为 MCP 服务器配置文件提供了智能感知。
以下示例显示了如何配置 GitHub 远程 MCP 服务器。了解更多关于VS Code 中的 MCP 配置格式的信息。
{ "servers": { "github-mcp": { "type": "http", "url": "https://api.githubcopilot.com/mcp" } } } -
或者,从命令面板运行MCP: 添加服务器命令,选择要添加的 MCP 服务器类型并提供服务器信息。接下来,选择工作区将服务器添加到工作区中的
.vscode/mcp.json文件。
将 MCP 服务器添加到你的用户配置
要为所有工作区配置 MCP 服务器,你可以将服务器配置添加到你的用户配置文件。这使你可以在多个项目之间重用相同的服务器配置。
要将 MCP 服务器添加到你的用户配置
-
从命令面板运行MCP: 添加服务器命令,提供服务器信息,然后选择全局将服务器配置添加到你的配置文件。
-
或者,运行MCP: 打开用户配置命令,它会打开你用户配置文件中的
mcp.json文件。然后你可以手动将服务器配置添加到文件中。
当你使用多个 VS Code 配置文件时,这允许你根据你的活动配置文件在不同的 MCP 服务器配置之间切换。例如,Playwright MCP 服务器可以在 Web 开发配置文件中配置,但不能在 Python 开发配置文件中配置。
MCP 服务器在其配置的任何地方执行。如果你连接到远程并希望服务器在远程机器上运行,则应在你的远程设置(MCP: 打开远程用户配置)或工作区设置中定义它。在你的用户设置中定义的 MCP 服务器始终在本地执行。
将 MCP 服务器添加到开发容器
MCP 服务器可以通过 devcontainer.json 文件在开发容器中配置。这允许你将 MCP 服务器配置作为容器化开发环境的一部分。
要在开发容器中配置 MCP 服务器,请将服务器配置添加到 customizations.vscode.mcp 部分
{
"image": "mcr.microsoft.com/devcontainers/typescript-node:latest",
"customizations": {
"vscode": {
"mcp": {
"servers": {
"playwright": {
"command": "npx",
"args": ["-y", "@microsoft/mcp-server-playwright"]
}
}
}
}
}
}
创建开发容器时,VS Code 会自动将 MCP 服务器配置写入远程 mcp.json 文件,使其在容器化开发环境中可用。
自动发现 MCP 服务器
VS Code 可以自动检测和重用来自其他应用程序(如 Claude Desktop)的 MCP 服务器配置。
使用 chat.mcp.discovery.enabled 设置配置自动发现。从这些工具中选择一个或多个工具以发现 MCP 服务器配置。
从命令行安装 MCP 服务器
你还可以使用 VS Code 命令行界面将 MCP 服务器添加到你的用户配置文件或工作区。
要将 MCP 服务器添加到你的用户配置文件,请使用 --add-mcp VS Code 命令行选项,并以 {\"name\":\"server-name\",\"command\":...} 的形式提供 JSON 服务器配置。
code --add-mcp "{\"name\":\"my-server\",\"command\": \"uvx\",\"args\": [\"mcp-server-fetch\"]}"
在代理模式中使用 MCP 工具
添加 MCP 服务器后,你可以在代理模式下使用它提供的工具。
在代理模式下使用 MCP 工具
-
打开聊天视图(⌃⌘I (Windows、Linux Ctrl+Alt+I)),然后从下拉列表中选择代理模式。

-
选择工具按钮以查看可用工具列表。
可选地,选择或取消选择你想要使用的工具。你可以在搜索框中输入以搜索工具。
重要一个聊天请求一次最多可以启用 128 个工具。如果你选择了超过 128 个工具,请通过在工具选择器中取消选择一些工具来减少工具数量,或者确保启用了虚拟工具(
github.copilot.chat.virtualTools.threshold)。 -
在聊天输入框中输入提示,并注意工具如何根据需要自动调用。例如,安装 GitHub MCP 服务器并询问“列出我的 GitHub 问题”。
提示你还可以通过输入
#后跟工具名称来直接在提示中引用工具。你可以在所有聊天模式(询问、编辑和代理模式)中执行此操作。 -
当系统提示时,在确认之前仔细审查工具调用详细信息。
注意MCP 工具可能在你的机器上本地运行,并可能执行修改文件或数据的操作。请务必确保你了解工具操作的含义。
使用继续按钮下拉选项自动确认当前会话、工作区或所有未来调用的特定工具。

-
可选地,在运行工具之前验证和编辑工具输入参数。

清除缓存的 MCP 工具
当 VS Code 第一次启动 MCP 服务器时,它会发现服务器的功能和工具。然后你可以在代理模式下使用这些工具。VS Code 会缓存 MCP 服务器的工具列表。要清除缓存的工具,请在命令面板中使用MCP: 重置缓存工具命令。
使用 MCP 资源
MCP 服务器可以直接访问你可以用作聊天提示上下文的资源。例如,文件系统 MCP 服务器可以让你访问文件和目录,或者数据库 MCP 服务器可能提供对数据库表的访问。
要将 MCP 服务器的资源添加到你的聊天提示
-
在聊天视图中,选择添加上下文 > MCP 资源
-
从列表中选择一个资源类型并提供可选的资源输入参数。

要查看 MCP 服务器的可用资源列表,请使用MCP: 浏览资源命令或使用MCP: 列出服务器 > 浏览资源命令以查看特定服务器的资源。
MCP 工具可以作为其响应的一部分返回资源。你可以通过选择保存或将资源拖放到资源管理器视图来查看或保存这些资源到你的工作区。
使用 MCP 提示
MCP 服务器可以为常见任务提供预配置的提示,你可以通过斜杠命令在聊天中调用这些提示。要在聊天中调用 MCP 提示,请在聊天输入字段中输入 /,后跟提示名称,格式为 mcp.servername.promptname。
可选地,MCP 提示可能会要求你提供额外的输入参数。

将相关工具分组到工具集
随着你添加更多的 MCP 服务器,工具列表可能会变得很长。这使得管理单个工具变得繁琐,例如当你想要定义可重用提示文件或自定义聊天模式时。
为了帮助你管理工具,你可以将相关工具分组到工具集中。工具集是单个工具的集合,你可以将其视为一个实体。工具集可以包含内置工具、MCP 工具或扩展提供的工具。
了解更多关于如何在 VS Code 中创建和使用工具集的信息。
管理已安装的 MCP 服务器
你可以对已安装的 MCP 服务器执行各种操作,例如启动或停止服务器、查看服务器日志、卸载服务器等。
要对 MCP 服务器执行这些操作,请使用以下任一选项
-
右键单击MCP 服务器 - 已安装部分中的服务器或选择齿轮图标

-
打开
mcp.json配置文件并在编辑器中内联访问操作(代码透镜)
使用MCP: 打开用户配置或MCP: 打开工作区文件夹配置命令访问 MCP 服务器配置。
-
从命令面板运行MCP: 列出服务器命令并选择一个服务器

自动启动 MCP 服务器
当你添加 MCP 服务器或更改其配置时,VS Code 需要(重新)启动服务器以发现其提供的工具。
你可以配置 VS Code 在检测到配置更改时自动重启 MCP 服务器,方法是使用 chat.mcp.autostart 设置(实验性)。
或者,从聊天视图手动重启 MCP 服务器,或从MCP 服务器列表中选择重启操作。

查找 MCP 服务器
MCP 仍然是一个相对较新的标准,生态系统正在快速发展。随着越来越多的开发人员采用 MCP,你可以期望看到越来越多的服务器和工具可用于与你的项目集成。
GitHub MCP 服务器注册表是一个很好的起点。你可以直接从 VS Code 中的扩展视图访问注册表。
MCP 的官方服务器仓库提供了官方和社区贡献的服务器,展示了 MCP 的多功能性。你可以探索用于各种功能的服务器,例如文件系统操作、数据库交互和 Web 服务。
VS Code 扩展还可以贡献 MCP 服务器并将其配置为扩展安装过程的一部分。检查 Visual Studio Marketplace 中提供 MCP 服务器支持的扩展。
MCP 服务器信任
MCP 服务器可以在你的机器上运行任意代码。只添加来自受信任来源的服务器,并在启动前审查发布者和服务器配置。阅读安全文档以了解在 VS Code 中使用 AI 的含义。
当你将 MCP 服务器添加到工作区或更改其配置时,你需要在启动服务器之前确认你信任该服务器及其功能。当你第一次启动服务器时,VS Code 会显示一个对话框以确认你信任该服务器。选择对话框中的 MCP 服务器链接以在单独的窗口中审查 MCP 服务器配置。

如果你不信任该服务器,它将不会启动,聊天请求将继续而不使用服务器提供的工具。
你可以通过从命令面板运行MCP: 重置信任命令来重置 MCP 服务器的信任。
如果你直接从 mcp.json 文件启动 MCP 服务器,则不会提示你信任服务器配置。
跨设备同步 MCP 服务器
启用设置同步后,你可以在设备之间同步设置和配置,包括 MCP 服务器配置。这使你可以在所有设备上维护一致的开发环境并访问相同的 MCP 服务器。
要使用设置同步启用 MCP 服务器同步,请从命令面板运行设置同步: 配置命令,并确保MCP 服务器包含在同步配置列表中。
配置格式
MCP 服务器使用 JSON 文件 (mcp.json) 配置,该文件定义两个主要部分:服务器定义和敏感数据的可选输入变量。
MCP 服务器可以使用不同的传输方法连接。根据你的服务器如何通信选择适当的配置。
配置结构
配置文件有两个主要部分
"servers": {}- 包含 MCP 服务器列表及其配置"inputs": []- 用于敏感信息(如 API 密钥)的可选占位符
你可以在服务器配置中使用预定义变量,例如引用工作区文件夹 (${workspaceFolder})。
标准 I/O (stdio) 服务器
将此配置用于通过标准输入和输出流通信的服务器。这是本地运行的 MCP 服务器最常见的类型。
| 字段 | 必需 | 描述 | 示例 |
|---|---|---|---|
type |
是 | 服务器连接类型 | "stdio" |
command |
是 | 启动服务器可执行文件的命令。必须在系统路径中可用或包含其完整路径。 | "npx"、"node"、"python"、"docker" |
args |
否 | 传递给命令的参数数组 | ["server.py", "--port", "3000"] |
env |
否 | 服务器的环境变量 | {"API_KEY": "${input:api-key}"} |
envFile |
否 | 加载更多变量的环境文件路径 | "${workspaceFolder}/.env" |
将 Docker 与 stdio 服务器一起使用时,请勿使用分离选项 (-d)。服务器必须在前台运行才能与 VS Code 通信。
本地服务器配置示例
此示例显示了使用 npx 的基本本地 MCP 服务器的最小配置
{
"servers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
HTTP 和服务器发送事件 (SSE) 服务器
将此配置用于通过 HTTP 通信的服务器。VS Code 首先尝试 HTTP 流传输,如果不支持 HTTP,则回退到 SSE。
| 字段 | 必需 | 描述 | 示例 |
|---|---|---|---|
type |
是 | 服务器连接类型 | "http"、"sse" |
url |
是 | 服务器的 URL | "https://:3000"、"https://api.example.com/mcp" |
headers |
否 | 用于身份验证或配置的 HTTP 头 | {"Authorization": "Bearer ${input:api-token}"} |
除了通过网络可用的服务器之外,VS Code 还可以连接到在 Unix 套接字或 Windows 命名管道上监听 HTTP 流量的 MCP 服务器,方法是在 Windows 上以 unix:///path/to/server.sock 或 pipe:///pipe/named-pipe 的形式指定套接字或管道路径。你可以通过使用 URL 片段指定子路径,例如 unix:///tmp/server.sock#/mcp/subpath。
远程服务器配置示例
此示例显示了无需身份验证的远程 MCP 服务器的最小配置
{
"servers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp"
}
}
}
敏感数据的输入变量
输入变量允许你定义配置值的占位符,避免直接在服务器配置中硬编码 API 密钥或密码等敏感信息。
当你使用 ${input:variable-id} 引用输入变量时,VS Code 会在服务器第一次启动时提示你输入值。然后该值会安全地存储以供后续使用。了解更多关于 VS Code 中的输入变量的信息。
输入变量属性
| 字段 | 必需 | 描述 | 示例 |
|---|---|---|---|
type |
是 | 输入提示类型 | "promptString" |
id |
是 | 在服务器配置中引用的唯一标识符 | "api-key"、"database-url" |
描述 |
是 | 用户友好的提示文本 | "GitHub 个人访问令牌" |
password |
否 | 隐藏输入的文本(默认值:false) | API 密钥和密码为 true |
带输入变量的服务器配置示例
此示例配置了一个需要 API 密钥的本地服务器
{
"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}"
}
}
}
}
服务器命名约定
定义 MCP 服务器时,请遵循以下服务器名称命名约定
- 服务器名称使用驼峰命名法,例如 "uiTesting" 或 "githubIntegration"
- 避免使用空格或特殊字符
- 每个服务器使用唯一的名称以避免冲突
- 使用描述性名称,反映服务器的功能或品牌,例如 "github" 或 "database"
故障排除和调试 MCP 服务器
MCP 输出日志
当 VS Code 遇到 MCP 服务器问题时,它会在聊天视图中显示错误指示器。

选择聊天视图中的错误通知,然后选择显示输出选项以查看服务器日志。或者,从命令面板运行MCP: 列出服务器,选择服务器,然后选择显示输出。

调试 MCP 服务器
你可以通过在 MCP 服务器配置中添加 dev 键来启用 MCP 服务器的开发模式。这是一个包含两个属性的对象
watch:一个文件 glob 模式,用于监视文件更改以重新启动 MCP 服务器。debug:使你能够使用 MCP 服务器设置调试器。目前,VS Code 支持调试 Node.js 和 Python MCP 服务器。
在 MCP 开发指南中了解更多关于MCP 开发模式的信息。
常见问题
我能控制使用哪些 MCP 工具吗?
- 在代理模式下,在聊天视图中选择工具按钮,并根据需要打开/关闭特定工具。
- 通过使用添加上下文按钮或输入
#将特定工具添加到你的提示。 - 为了更高级的控制,你可以使用
.github/copilot-instructions.md来微调工具使用。
使用 Docker 时 MCP 服务器未启动
验证命令参数是否正确,并且容器是否未在分离模式下运行 (-d 选项)。你还可以检查 MCP 服务器输出中是否有任何错误消息(参见故障排除)。
我收到一条错误消息,指出“每个请求不能有超过 128 个工具。”
由于模型限制,一个聊天请求一次最多可以启用 128 个工具。如果你选择了超过 128 个工具,请通过在聊天视图中的工具选择器中取消选择一些工具或整个服务器来减少工具数量,或者确保启用了虚拟工具(github.copilot.chat.virtualTools.threshold)。
