在 VS Code 中使用 MCP 服务器
模型上下文协议 (MCP) 是一项开放标准,允许 AI 模型通过统一的接口使用外部工具和服务。在 VS Code 中,MCP 服务器提供 工具 来处理文件操作、数据库或与外部 API 交互等任务。
MCP 服务器是扩展 VS Code 中聊天工具的三种方式之一,另外两种是内置工具和扩展贡献的工具。详细了解 工具的类型。
本文档将指导您如何在 Visual Studio Code 中设置 MCP 服务器并使用其功能。
MCP 如何工作?
MCP 遵循客户端-服务器架构
- MCP 客户端(如 VS Code)连接到 MCP 服务器,并代表 AI 模型请求操作
- MCP 服务器提供一个或多个工具,通过明确定义的接口公开特定功能
- 模型上下文协议定义了客户端和服务器之间通信的消息格式,包括工具发现、调用和响应处理
例如,一个文件系统 MCP 服务器可以提供读取、写入或搜索文件和目录的工具。GitHub 的 MCP 服务器提供列出存储库、创建拉取请求或管理问题的工具。MCP 服务器可以在本地机器上运行,也可以远程托管,VS Code 支持这两种配置。
通过标准化这种交互,MCP 消除了每个 AI 模型和每个工具之间定制集成的需求。这使您能够通过简单地将新的 MCP 服务器添加到您的工作区来扩展 AI 助手的能力。详细了解 模型上下文协议规范。
VS Code 中支持的 MCP 功能
VS Code 支持以下 MCP 功能
MCP 对 VS Code 的支持从 VS Code 1.102 版本开始普遍可用。
先决条件
- 安装最新版本的 Visual Studio Code
- 访问 Copilot
添加 MCP 服务器
本地 MCP 服务器可以在您的计算机上运行任意代码。请仅添加来自受信任源的服务器,并在启动服务器之前查看发布者和服务器配置。首次启动 MCP 服务器时,VS Code 会提示您确认 信任 MCP 服务器。阅读 使用 VS Code 中的 AI 的安全文档,以了解相关影响。
从 GitHub MCP 服务器注册表添加 MCP 服务器
您可以通过 VS Code 中的“扩展”视图直接从 GitHub MCP 服务器注册表 安装 MCP 服务器。您可以选择将 MCP 服务器安装在您的 用户配置文件 或当前工作区中。
从“扩展”视图安装 MCP 服务器
-
使用 chat.mcp.gallery.enabled 设置启用 MCP 服务器库。
-
打开“扩展”视图(⇧⌘X (Windows、Linux Ctrl+Shift+X))
-
在搜索字段中输入
@mcp以显示 MCP 服务器列表,或从命令面板运行 **MCP: Browse Servers** 命令。VS Code 从 GitHub MCP 服务器注册表检索 MCP 服务器列表。
-
安装 MCP 服务器
-
在您的用户配置文件中:选择 **Install**
-
在您的工作区中:右键单击 MCP 服务器,然后选择 **Install in Workspace**
-
-
要查看 MCP 服务器详细信息,请在列表中选择该 MCP 服务器。
添加 MCP 服务器的其他选项
您还有其他几种在 VS Code 中添加 MCP 服务器的选项
将 MCP 服务器添加到工作区的 `mcp.json` 文件
如果您想为特定项目配置 MCP 服务器,可以将服务器配置添加到工作区中的 .vscode/mcp.json 文件。这样,您就可以与项目团队共享相同的 MCP 服务器配置。
请确保通过使用输入变量或环境文件来避免硬编码敏感信息,如 API 密钥和其他凭据。
将 MCP 服务器添加到工作区
-
在您的工作区中创建一个
.vscode/mcp.json文件。 -
在编辑器中选择 **Add Server** 按钮以添加新服务器的模板。VS Code 为 MCP 服务器配置文件提供 IntelliSense。
以下示例显示了如何配置 GitHub 远程 MCP 服务器。详细了解 VS Code 中 MCP 的配置格式。
{ "servers": { "github-mcp": { "type": "http", "url": "https://api.githubcopilot.com/mcp" } } } -
或者,从命令面板运行 **MCP: Add Server** 命令,选择要添加的 MCP 服务器类型,并提供服务器信息。然后,选择 **Workspace** 将服务器添加到工作区中的
.vscode/mcp.json文件。
将 MCP 服务器添加到用户配置
要为所有工作区配置 MCP 服务器,您可以将服务器配置添加到用户 配置文件。这样,您就可以在多个项目中重复使用相同的服务器配置。
将 MCP 服务器添加到用户配置
-
从命令面板运行 **MCP: Add Server** 命令,提供服务器信息,然后选择 **Global** 将服务器配置添加到您的配置文件。
-
或者,运行 **MCP: Open User Configuration** 命令,该命令会在您的用户配置文件中打开
mcp.json文件。然后,您可以手动将服务器配置添加到该文件中。
当您使用多个 VS Code 配置文件时,这允许您根据活动配置文件在不同的 MCP 服务器配置之间切换。例如,可以在 Web 开发配置文件中配置 Playwright MCP 服务器,但在 Python 开发配置文件中不配置。
MCP 服务器在其配置的位置执行。如果您连接到 远程并且希望服务器在远程计算机上运行,它应该在您的远程设置(**MCP: Open Remote User Configuration**)或工作区的设置中定义。在用户设置中定义的 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 工具的工作方式与其他 VS Code 工具类似:在调用代理时可以自动调用它们,或者在提示中显式引用它们。
在聊天中使用 MCP 工具
-
打开 **Chat** 视图(⌃⌘I (Windows、Linux Ctrl+Alt+I))。
-
打开工具选择器以选择代理可以使用哪些工具。MCP 工具按 MCP 服务器进行分组。
-
使用代理时,工具会根据您的提示按需自动调用。
例如,安装 GitHub MCP 服务器,然后询问“列出我的 GitHub 问题”。

-
您还可以通过键入
#后跟工具名称来显式引用 MCP 工具。 -
在提示时,审查并批准工具调用。

详细了解 在聊天中使用工具,包括如何管理工具批准、使用工具选择器以及创建工具集。
清除缓存的 MCP 工具
当 VS Code 首次启动 MCP 服务器时,它会发现服务器的功能和工具。然后,您可以在聊天中使用 这些工具。VS Code 会缓存 MCP 服务器的工具列表。要清除缓存的工具,请在命令面板中使用 **MCP: Reset Cached Tools** 命令。
使用 MCP 资源
MCP 服务器可以直接访问资源,您可以使用这些资源作为聊天提示的上下文。例如,文件系统 MCP 服务器可以允许您访问文件和目录,或者数据库 MCP 服务器可以提供对数据库表的访问。
将 MCP 服务器中的资源添加到聊天提示
-
在“聊天”视图中,选择 **Add Context** > **MCP Resources**
-
从列表中选择一种资源类型,并提供可选的资源输入参数。

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

将相关工具分组到工具集中
随着您添加更多 MCP 服务器,工具列表可能会变得很长。您可以将相关工具分组到工具集中,以便于管理和引用。
详细了解如何 创建和使用工具集。
管理已安装的 MCP 服务器
您可以对已安装的 MCP 服务器执行各种操作,例如启动或停止服务器、查看服务器日志、卸载服务器等。
要对 MCP 服务器执行这些操作,请使用以下任一选项
-
右键单击 **MCP SERVERS - INSTALLED** 部分中的服务器,或选择齿轮图标

-
打开
mcp.json配置文件,并在编辑器中(代码透镜)内联访问操作
运行 **MCP: Open User Configuration** 或 **MCP: Open Workspace Folder Configuration** 命令以访问 MCP 服务器配置。
-
从命令面板运行 **MCP: List Servers** 命令并选择一个服务器

自动启动 MCP 服务器
添加 MCP 服务器或更改其配置时,VS Code 需要(重新)启动服务器以发现其提供的工具。
您可以通过使用 chat.mcp.autostart 设置(实验性)来配置 VS Code 在检测到配置更改时自动重启 MCP 服务器。
或者,手动从“聊天”视图重启 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: Reset Trust** 命令来重置 MCP 服务器的信任。
如果直接从 mcp.json 文件启动 MCP 服务器,则不会提示您信任服务器配置。
跨设备同步 MCP 服务器
通过启用 设置同步,您可以跨设备同步设置和配置,包括 MCP 服务器配置。这使您能够在所有设备上维护一致的开发环境并访问相同的 MCP 服务器。
要启用 MCP 服务器与设置同步,请从命令面板运行 **Settings Sync: Configure** 命令,并确保 **MCP Servers** 包含在同步配置列表中。
配置格式
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 Personal Access Token" |
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 服务器问题时,它会在“聊天”视图中显示一个错误指示器。

在“聊天”视图中选择错误通知,然后选择 **Show Output** 选项以查看服务器日志。或者,从命令面板运行 **MCP: List Servers**,选择服务器,然后选择 **Show Output**。

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