MCP 配置参考

本文档提供了 VS Code 中 MCP 服务器配置文件格式、相关命令和设置的参考。有关添加和管理 MCP 服务器的信息,请参阅 添加和管理 MCP 服务器

配置文件

MCP 服务器配置存储在 mcp.json JSON 文件中。此文件可以位于您的工作区 (.vscode/mcp.json) 或您的用户配置文件中。VS Code 为该配置文件提供了 IntelliSense 支持。

配置结构

配置文件包含三个主要部分

  • "servers": {}:一个将服务器名称映射到其配置的对象。每个键是服务器名称,值是服务器配置对象。根据服务器类型的不同,所需的字段也有所差异。

  • "inputs": []:一个可选数组,用于定义 API 密钥等敏感信息的输入变量。

  • "sandbox": {}:一个可选对象,用于定义沙箱化服务器的文件系统和网络访问规则。请参阅 沙箱配置。仅适用于 macOS 和 Linux。

您可以在服务器配置中使用预定义变量,例如引用工作区文件夹 (${workspaceFolder})。

标准输入/输出 (stdio) 服务器

对于通过标准输入和输出流进行通信的服务器,请使用此配置。这是本地运行的 MCP 服务器最常见的类型。

字段 必需 描述 示例
type 服务器连接类型 "stdio"
command 启动服务器可执行文件的命令。必须在您的系统路径中可用或包含其完整路径。 "npx", "node", "python", "docker"
args 传递给命令的参数数组 ["server.py", "--port", "3000"]
cwd 服务器命令的工作目录。在工作区中运行时,默认为工作区文件夹。 "${workspaceFolder}"
env 服务器的环境变量。值可以是字符串、数字或 null。 {"API_KEY": "${input:api-key}"}
envFile 用于加载更多变量的环境文件路径 "${workspaceFolder}/.env"
dev 用于监视文件更改和调试服务器的开发模式设置。请参阅 开发模式 {"watch": "src/**/*.ts"}
sandboxEnabled 在沙箱环境中运行服务器。仅在 macOS 和 Linux 上受支持。 true
注意

将 Docker 与 stdio 服务器一起使用时,请勿使用分离选项 (-d)。服务器必须在前台运行才能与 VS Code 通信。

本地服务器配置示例

此示例展示了使用 npx 的基本本地 MCP 服务器的最小配置

{
  "servers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    }
  }
}

沙箱配置

您可以为本地运行的 stdio MCP 服务器启用沙箱功能,以限制其对文件系统和网络的访问。沙箱化服务器只能访问您明确许可的文件系统路径和网络域。沙箱功能仅在 macOS 和 Linux 上提供。

要为服务器启用沙箱,请在其配置中设置 "sandboxEnabled": true。然后,定义一个顶级 sandbox 对象以指定文件系统和网络访问规则。sandbox 对象是 serversinputs 的同级节点,其规则适用于所有沙箱化服务器。当沙箱化服务器需要当前规则未许可的访问权限时,请查看服务器输出中的错误消息,并相应地更新 sandbox 配置。

注意

启用沙箱后,工具确认会被自动批准,因为服务器是在受控环境中运行的。

sandbox 对象支持以下属性

属性 类型 描述
filesystem.allowWrite string[] 服务器被允许写入的文件路径。
filesystem.denyRead string[] 服务器被禁止读取的文件路径。
filesystem.denyWrite string[] 服务器被禁止写入的文件路径。
network.allowedDomains string[] 服务器被允许访问的域名。支持通配符,例如 *.example.com
network.deniedDomains string[] 服务器被禁止访问的域名。

您可以在文件系统路径值中使用预定义变量,例如 ${workspaceFolder}

沙箱配置示例

此示例启用了沙箱功能,并授予对工作区的写入访问权限,拒绝读取 .ssh 目录的权限,并允许访问特定域名

{
  "servers": {
    "myServer": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@example/mcp-server"],
      "sandboxEnabled": true
    }
  },
  "sandbox": {
    "filesystem": {
      "allowWrite": ["${workspaceFolder}"],
      "denyRead": ["${userHome}/.ssh"]
    },
    "network": {
      "allowedDomains": ["api.example.com", "*.cdn.example.com"]
    }
  }
}

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}"}
oauth 用于与服务器进行身份验证的 OAuth 配置 {"clientId": "example-client-id"}

除了可通过网络访问的服务器外,VS Code 还可以通过在 Windows 上指定 unix:///path/to/server.sockpipe:///pipe/named-pipe 形式的套接字或管道路径,连接到监听 Unix 套接字或 Windows 命名管道上 HTTP 流量的 MCP 服务器。您可以使用 URL 片段指定子路径,例如 unix:///tmp/server.sock#/mcp/subpath

oauth 对象支持以下属性

属性 类型 必需 描述
clientId 字符串 与服务器进行身份验证时使用的 OAuth 客户端 ID。
enterpriseManaged 布尔值 (预览) 使用 OAuth 身份断言授权授予 (ID-JAG),通过 mcp.enterpriseManagedAuth.idp 设置配置的企业单点登录 (SSO) 发行方进行身份验证。完成一次登录后,后续的企业托管服务器将静默连接。默认为 false
注意

当配置了 oauth 时,VS Code 会自动处理 OAuth 流程。首次连接到服务器时,会打开一个浏览器窗口进行授权。

远程服务器配置示例

此示例展示了无需身份验证的远程 MCP 服务器的最小配置

{
  "servers": {
    "context7": {
      "type": "http",
      "url": "https://mcp.context7.com/mcp"
    }
  }
}
带有 OAuth 的 HTTP 服务器示例

此示例展示了使用 OAuth 进行身份验证的 MCP 服务器的配置。首次使用时,VS Code 会打开一个浏览器窗口来完成 OAuth 流程。

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

用于敏感数据的输入变量

输入变量允许您为配置值定义占位符,避免直接在服务器配置中硬编码 API 密钥或密码等敏感信息。

当您使用 ${input:variable-id} 引用输入变量时,VS Code 会在服务器首次启动时提示您输入该值。然后,该值将被安全地存储以供后续使用。在 VS Code 中详细了解输入变量

每个输入变量都有一个 type,决定了 VS Code 如何提示输入该值。支持以下输入类型

  • promptString:打开一个输入框,要求用户输入自由文本值。
  • pickString:显示一个选项列表供用户选择。
  • command:运行命令并将结果用作输入值。

常用属性

字段 必需 描述 示例
type 输入提示类型:promptStringpickStringcommand "promptString"
id 在服务器配置中引用的唯一标识符 "api-key", "database-url"

promptString 属性

字段 必需 描述 示例
描述 用户友好的提示文本 "GitHub Personal Access Token"
default 输入的默认值 "https://"
password 隐藏键入的输入 (默认:false) 对于 API 密钥和密码设为 true

pickString 属性

字段 必需 描述 示例
描述 用户友好的提示文本 "Select an environment"
options 供选择的选项数组。每个选项都是一个字符串,或包含 labelvalue 属性的对象。 ["dev", "prod"]
default 输入的默认值 "dev"

command 属性

字段 必需 描述 示例
command 用于获取输入值的命令 ID "myExtension.getApiKey"
args 传递给命令的参数。可以是字符串、数组或对象。 { "scope": "global" }
带有输入变量的服务器配置示例

此示例配置了一个需要 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}"
      }
    }
  }
}

开发模式

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

  • watch:一个 glob 模式或 glob 模式数组,用于监视文件更改以重启 MCP 服务器。适用于所有服务器类型。
  • debug:使您能够使用 MCP 服务器设置调试器。目前,VS Code 支持调试 Node.js 和 Python MCP 服务器。仅适用于 stdio 服务器。

在 MCP 开发指南中了解有关 MCP 开发模式的更多信息。

服务器命名规范

定义 MCP 服务器时,请遵循以下服务器命名规范

  • 使用驼峰式命名法 (camelCase) 命名服务器,例如 "uiTesting" 或 "githubIntegration"
  • 避免使用空格或特殊字符
  • 每个服务器使用唯一名称以避免冲突
  • 使用能够反映服务器功能或品牌的描述性名称,例如 "github" 或 "database"

命令

下表列出了命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中可用的 MCP 相关命令。

命令 描述
MCP: Add Server (添加服务器) 将新的 MCP 服务器添加到您的工作区或用户配置文件中。
MCP: Browse MCP Servers (浏览 MCP 服务器) 在扩展视图中打开 MCP 服务器库。
MCP: Browse Resources (浏览资源) 浏览 MCP 服务器提供的资源。
MCP: Install Server from Manifest (从清单安装服务器) 从 MCP 清单文件安装 MCP 服务器。
MCP: List Servers (列出服务器) 列出所有已配置的 MCP 服务器,并执行诸如启动、停止、重启或显示输出等操作。
MCP: Open Remote User Configuration (打开远程用户配置) 打开远程环境的 mcp.json 文件。
MCP: Open User Configuration (打开用户配置) 打开您用户配置文件中的 mcp.json 文件。
MCP: Open Workspace Folder MCP Configuration (打开工作区文件夹 MCP 配置) 打开工作区中的 .vscode/mcp.json 文件。
MCP: Reset Cached Tools (重置缓存的工具) 清除 MCP 服务器的缓存工具列表。当服务器的工具发生变化时使用此项。
MCP: Reset Trust (重置信任) 重置 MCP 服务器的信任决策,在下次启动时需要重新确认。
MCP: Show Installed Servers (显示已安装的服务器) 显示所有已安装 MCP 服务器的列表。

设置

有关 VS Code AI 设置的完整列表,请参阅 AI 设置参考。以下设置是 MCP 服务器特有的。

设置 描述
chat.mcp.access 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置由组织级别管理。请联系您的管理员进行更改。 管理可以在 VS Code 中使用的 MCP 服务器。
chat.mcp.discovery.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 配置从其他应用程序自动发现 MCP 服务器配置。
chat.mcp.autostart 在 VS Code 中打开 在 VS Code Insiders 中打开 (实验性) 检测到配置更改时自动启动 MCP 服务器。
chat.mcp.serverSampling 在 VS Code 中打开 在 VS Code Insiders 中打开 配置哪些模型向 MCP 服务器公开以进行采样(在后台发出请求)。
chat.mcp.apps.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 (实验性) 启用或禁用 MCP 应用程序,即 MCP 服务器提供的丰富用户界面。
© . This site is unofficial and not affiliated with Microsoft.