参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

在 VS Code 中使用 MCP 服务器

模型上下文协议 (MCP) 是一个开放标准,允许 AI 模型通过统一接口使用外部工具和服务。在 VS Code 中,MCP 服务器为文件操作、数据库或与外部 API 交互等任务添加了工具。

本文将指导您如何在 Visual Studio Code 中设置 MCP 服务器,并在代理模式下使用工具。

MCP 是如何工作的?

MCP 遵循客户端-服务器架构

  • MCP 客户端(如 VS Code)连接到 MCP 服务器,并代表 AI 模型请求操作
  • MCP 服务器提供一个或多个工具,通过定义良好的接口公开特定功能
  • 模型上下文协议定义了客户端和服务器之间通信的消息格式,包括工具发现、调用和响应处理

例如,文件系统 MCP 服务器可能提供读取、写入或搜索文件和目录的工具。GitHub 的 MCP 服务器提供列出仓库、创建拉取请求或管理 issue 的工具。MCP 服务器可以本地运行在您的机器上,也可以远程托管,VS Code 支持这两种配置。

通过标准化这种交互,MCP 消除了每个 AI 模型和每个工具之间进行自定义集成的需要。这使您只需将新的 MCP 服务器添加到工作区,即可扩展 AI 助手的能​​力。了解更多关于模型上下文协议规范的信息。

VS Code 支持的 MCP 功能

VS Code 支持以下 MCP 功能

  • MCP 服务器传输:本地标准输入/输出 (stdio)、HTTP 流 (http) 和服务器发送事件 (sse,旧版支持)。
  • MCP 功能:工具、提示、资源、引出、采样和身份验证。
  • VS Code 使用 roots (规范) 向服务器提供当前工作区文件夹。
注意

VS Code 中的 MCP 支持从 VS Code 1.102 版本开始普遍可用。

先决条件

在 VS Code 中启用 MCP 支持

chat.mcp.access 设置控制了哪些 MCP 服务器可以在 VS Code 中安装和运行。默认情况下,允许所有 MCP 服务器。将此设置配置为 none 以禁用 MCP 支持。

集中管理 MCP 支持

您有两种选择在您的组织中集中管理 MCP 支持

添加 MCP 服务器

注意

MCP 服务器可以在您的机器上运行任意代码。请仅添加来自可信来源的服务器,并在启动前审查发布者和服务器配置。当您首次启动 MCP 服务器时,VS Code 会提示您确认您信任该 MCP 服务器。请阅读关于在 VS Code 中使用 AI 的安全文档以了解其影响。

您有多种方式在 VS Code 中添加 MCP 服务器

直接从网络安装 MCP 服务器

网站可以提供一个链接,直接在 VS Code 中安装 MCP 服务器,这样无需手动配置即可轻松添加服务器。

例如,要从精选 MCP 服务器列表中安装一个 MCP 服务器:

  1. 打开扩展视图并在搜索栏中输入 @mcp

  2. 选择浏览 MCP 服务器以在浏览器中打开 MCP 服务器列表。或者,从命令面板运行 MCP: Browse Servers 命令。

  3. 在任何 MCP 服务器上选择安装,这会打开 VS Code 并显示服务器详细信息页面。

  4. 在服务器详细信息页面上选择安装,将 MCP 服务器添加到您的 VS Code 实例中。

    MCP 服务器安装在您的用户配置中,可以在任何工作区使用。

将 MCP 服务器添加到您的工作区

要为特定工作区配置 MCP 服务器,您可以在工作区文件夹中创建一个 .vscode/mcp.json 文件。项目团队成员随后可以使用相同的服务器配置。

重要

请确保通过使用输入变量或环境文件来避免硬编码 API 密钥和其他凭据等敏感信息。

要将 MCP 服务器添加到您的工作区:

  1. 在您的工作区中创建一个 .vscode/mcp.json 文件。

  2. 选择添加服务器按钮为新服务器添加一个模板。VS Code 为 MCP 服务器配置文件提供了智能感知功能。

    以下示例展示了如何配置 GitHub 远程 MCP 服务器。了解更多关于 VS Code 中的 MCP 配置格式

    {
      "servers": {
        "github-mcp": {
          "type": "http",
          "url": "https://api.githubcopilot.com/mcp"
        }
      }
    }
    
  3. 或者,从命令面板运行 MCP: Add Server 命令,选择要添加的 MCP 服务器类型并提供服务器信息。接下来,选择工作区设置,如果您的工作区中不存在 .vscode/mcp.json 文件,则会创建该文件。

将 MCP 服务器添加到您的用户配置

要为所有工作区配置 MCP 服务器,您可以将服务器配置添加到您的用户配置中。这使您可以在多个项目中重用相同的服务器配置。

要将 MCP 添加到您的用户配置中,请运行 MCP: Open User Configuration 命令,这会打开您用户配置文件中的 mcp.json 文件。如果文件不存在,VS Code 会为您创建它。

或者,使用命令面板中的 MCP: Add Server 命令,提供服务器信息,然后选择全局将服务器配置添加到您的个人资料中。

当您使用多个 VS Code 配置文件时,这允许您根据当前活动的配置文件在不同的 MCP 服务器配置之间切换。例如,Playwright MCP 服务器可以配置在 Web 开发配置文件中,但不配置在 Python 开发配置文件中。

MCP 服务器在其配置的地方执行。如果您连接到远程环境并希望服务器在远程机器上运行,则应在您的远程设置(MCP: Open Remote User Configuration)或工作区设置中定义它。在您的用户设置中定义的 MCP 服务器总是本地执行。

将 MCP 服务器添加到开发容器

可以通过 devcontainer.json 文件在开发容器中配置 MCP 服务器。这使您可以将 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 服务器配置。

当 VS Code 首次启动 MCP 服务器时,它会发现服务器的功能和工具。然后您可以在代理模式下使用这些工具。VS Code 会缓存 MCP 服务器的工具列表。要清除缓存的工具,请在命令面板中使用 MCP: Reset Cached Tools 命令。

查看已安装的 MCP 服务器

要查看和管理已配置的 MCP 服务器列表:

  • 从命令面板运行 MCP: Show Installed Servers 命令以打开 MCP 服务器视图。

    或者,直接在扩展视图 (⇧⌘X (Windows、Linux 为 Ctrl+Shift+X)) 中打开 MCP SERVERS - INSTALLED 部分。

    Screenshot showing the MCP servers in the Extensions view.

  • 从命令面板运行 MCP: List Servers 命令以查看已安装的 MCP 服务器列表。

在代理模式中使用 MCP 工具

添加 MCP 服务器后,您可以在代理模式下使用它提供的工具。

在代理模式下使用 MCP 工具:

  1. 打开聊天视图 (⌃⌘I (Windows、Linux 为 Ctrl+Alt+I)),然后从下拉菜单中选择代理模式。

    Agent mode dropdown option

  2. 选择工具按钮以查看可用工具列表。

    (可选)选择或取消选择您想使用的工具。您可以通过在搜索框中输入来搜索工具。

    MCP tools list

    重要

    一个聊天请求一次最多可以启用 128 个工具。如果您选择了超过 128 个工具,请在工具选择器中取消选择一些工具以减少工具数量,或确保已启用虚拟工具 (github.copilot.chat.virtualTools.threshold)。

  3. 在聊天输入框中输入一个提示,并注意工具是如何根据需要被自动调用的。例如,安装 GitHub MCP 服务器并提问“列出我的 GitHub 问题”。

    Screenshot of the Chat view, showing an MCP tool invocation in agent mode.

    提示

    您也可以通过输入 # 后跟工具名称来在提示中直接引用工具。您可以在所有聊天模式(提问、编辑和代理模式)中这样做。

  4. 当出现提示时,请在确认前仔细审查工具调用详情。

    注意

    MCP 工具可能会在您的机器上本地运行,并可能执行修改文件或数据的操作。请始终确保您了解该工具操作的影响。

    使用继续按钮下拉选项,可以为当前会话、工作区或所有未来调用自动确认特定工具。

    MCP Tool Confirmation

  5. (可选)在运行工具之前,验证并编辑工具的输入参数。

    MCP Tool Input Parameters

使用 MCP 资源

除了工具,MCP 服务器还可以提供资源,您可以在聊天提示中用作上下文。例如,文件系统 MCP 服务器可能提供对文件和目录的访问,或者数据库 MCP 服务器可能提供对数据库表的访问。

要将来自 MCP 服务器的资源添加到您的聊天提示中:

  1. 在聊天视图中,选择添加上下文 > MCP 资源

  2. 从列表中选择一个资源类型,并提供可选的资源输入参数。

    Screenshot of the MCP resource Quick Pick, showing resource types provided by the GitHub MCP server.

要查看 MCP 服务器的可用资源列表,请使用 MCP: Browse Resources 命令,或使用 MCP: List Servers > Browse Resources 命令查看特定服务器的资源。

MCP 工具可以在其响应中返回资源。您可以通过选择保存或将资源拖放到资源管理器视图中来查看或保存这些资源到您的工作区。

使用 MCP 提示

MCP 服务器可以为常见任务提供预配置的提示,这样您就不必输入复杂的聊天提示了。您可以通过输入 / 后跟提示名称(格式为 mcp.servername.promptname)来直接在聊天输入框中调用这些提示。提示可能会要求您提供额外的输入参数。

Screenshot of the Chat view, showing an MCP prompt invocation and a dialog asking for additional input parameters.

使用 MCP 引出

MCP 服务器可以通过引出(elicitations)向您请求额外输入。当 MCP 服务器需要更多信息来完成任务时,它可以提示您提供具体细节,例如确认、配置值或操作所需的其他参数。

当 MCP 服务器发送引出请求时,VS Code 会向您显示一个对话框或输入字段,您可以在其中提供所请求的信息。这允许 MCP 服务器动态收集必要的数据,而无需预先设置所有配置。

随着您添加更多的 MCP 服务器,工具列表可能会变得很长。这会使得管理单个工具变得繁琐,例如当您想定义一个可重用的提示文件或一个自定义聊天模式时。

为了帮助您管理工具,您可以将相关工具分组到一个工具集中。工具集是单个工具的集合,您可以将其作为一个实体来引用。工具集可以包含内置工具、MCP 工具或扩展提供的工具。

了解更多关于如何在 VS Code 中创建和使用工具集的信息。

管理 MCP 服务器

您可以对已安装的 MCP 服务器执行各种操作,例如启动或停止服务器、查看服务器日志、卸载服务器等。

要对 MCP 服务器执行这些操作,请使用以下任一选项:

  • MCP SERVERS - INSTALLED 部分右键单击服务器或选择齿轮图标

    Screenshot showing the MCP servers in the Extensions view.

  • 打开 mcp.json 配置文件并在编辑器中内联访问操作(CodeLens)

    MCP server configuration with lenses to manage server.

    使用 MCP: Open User ConfigurationMCP: Open Workspace Folder Configuration 命令来访问 MCP 服务器配置。

  • 从命令面板运行 MCP: List Servers 命令并选择一个服务器

    Screenshot showing the actions for an MCP server in the Command Palette.

自动启动 MCP 服务器

当您添加 MCP 服务器或更改其配置时,VS Code 需要(重新)启动服务器以发现其提供的工具。

您可以通过使用 chat.mcp.autostart 设置(实验性)来配置 VS Code 在检测到配置更改时自动重启 MCP 服务器。

或者,从聊天视图中手动重启 MCP 服务器,或从 MCP 服务器列表中选择重启操作。

Screenshot showing the Refresh button in the Chat view.

命令行配置

您也可以使用 VS Code 命令行界面将 MCP 服务器添加到您的用户配置文件或工作区。

要将 MCP 服务器添加到您的用户配置文件,请使用 --add-mcp 命令行选项,并提供 JSON 服务器配置,格式为 {\"name\":\"server-name\",\"command\":...}

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

URL 处理程序

VS Code 还包含一个 URL 处理程序,您可以用它来安装 MCP 服务器。要构建 URL,请以与提供给 --add-mcp 相同的格式构造一个 obj 对象,然后使用以下逻辑创建链接:

// For Insiders, use `vscode-insiders` instead of `code`
const link = `vscode:mcp/install?${encodeURIComponent(JSON.stringify(obj))}`;

此链接可以在浏览器中使用,或在命令行上打开,例如在 Linux 上通过 xdg-open $LINK

查找 MCP 服务器

MCP 仍然是一个相对较新的标准,其生态系统正在迅速发展。随着越来越多的开发者采用 MCP,您可以期待看到越来越多的服务器和工具可用于与您的项目集成。

VS Code 网站上的精选 MCP 服务器列表是一个很好的起点。您可以从不同类别中选择,并直接在 VS Code 中安装 MCP 服务器。

MCP 的官方服务器仓库提供了官方和社区贡献的服务器,展示了 MCP 的多功能性。您可以探索用于各种功能的服务器,如文件系统操作、数据库交互和 Web 服务。

VS Code 扩展也可以贡献 MCP 服务器,并在扩展的安装过程中配置它们。请查看 Visual Studio Marketplace 中提供 MCP 服务器支持的扩展。

MCP 服务器信任

MCP 服务器可以在您的机器上运行任意代码。请仅添加来自可信来源的服务器,并在启动前审查发布者和服务器配置。请阅读关于在 VS Code 中使用 AI 的安全文档以了解其影响。

当您将 MCP 服务器添加到工作区或更改其配置时,您需要在启动前确认您信任该服务器及其功能。当您首次启动服务器时,VS Code 会显示一个对话框来确认您信任该服务器。选择对话框中的 MCP 服务器链接,可以在一个单独的窗口中审查 MCP 服务器配置。

Screenshot showing the MCP server trust prompt.

如果您不信任该服务器,它将不会启动,聊天请求将继续进行,但不会使用该服务器提供的工具。

您可以通过从命令面板运行 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 Stream 传输,如果不支持 HTTP,则回退到 SSE。

字段 是否必需 描述 示例
type 服务器连接类型 "http", "sse"
url 服务器的 URL "https://:3000", "https://api.example.com/mcp"
headers 用于身份验证或配置的 HTTP 标头 {"Authorization": "Bearer ${input:api-token}"}
远程服务器配置示例

此示例显示了无需身份验证的远程 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 Server Error

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

MCP Server Error Output

调试 MCP 服务器

您可以通过向 MCP 服务器配置添加一个 dev 键来为 MCP 服务器启用开发模式。这是一个具有两个属性的对象:

  • watch: 一个文件 glob 模式,用于监视文件变化,变化时将重启 MCP 服务器。
  • debug: 允许您为 MCP 服务器设置一个调试器。
{
  "servers": {
    "gistpad": {
      "command": "node",
      "args": ["build/index.js"],
     "dev": {
       "watch": "build/**/*.js",
       "debug": { "type": "node" }
     },
注意

我们目前仅支持调试分别由 nodepython 启动的 Node.js 和 Python 服务器。

常见问题

我可以控制使用哪些 MCP 工具吗?

  • 在代理模式下,选择聊天视图中的工具按钮,并根据需要打开/关闭特定工具。
  • 通过使用添加上下文按钮或输入 # 将特定工具添加到您的提示中。
  • 要进行更高级的控制,您可以使用 .github/copilot-instructions.md 来微调工具的使用。

使用 Docker 时 MCP 服务器无法启动

请验证命令参数是否正确,以及容器是否未在分离模式下运行(-d 选项)。您还可以检查 MCP 服务器输出以获取任何错误消息(请参阅故障排除)。

我收到一个错误,提示“每个请求的工具不能超过 128 个。”

由于模型限制,一个聊天请求一次最多可以启用 128 个工具。如果您选择了超过 128 个工具,请通过在聊天视图的工具选择器中取消选择一些工具或整个服务器来减少工具数量,或确保已启用虚拟工具 (github.copilot.chat.virtualTools.threshold)。

Screenshot showing the Chat view, highlighting the Tools icon in the chat input and showing the tools Quick Pick where you can select which tools are active.