MCP 配置参考
本文档提供了 VS Code 中 MCP 服务器配置文件格式、相关命令和设置的参考。有关添加和管理 MCP 服务器的信息,请参阅 添加和管理 MCP 服务器。
配置文件
MCP 服务器配置存储在 mcp.json JSON 文件中。该文件可以位于您的工作区 (.vscode/mcp.json) 或您的 用户配置文件 中。VS Code 为该配置文件提供了 IntelliSense(智能感知)支持。
配置结构
配置文件包含两个主要部分:
-
"servers": {}:一个将服务器名称映射到其配置的对象。每个键都是服务器名称,值是服务器配置对象。根据服务器类型的不同,需要填写的字段也不同。 -
"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" |
sandboxEnabled |
否 | 在沙盒环境中运行服务器。仅支持 macOS 和 Linux。 | true |
sandbox |
否 | 沙盒服务器的文件系统和网络访问规则。仅在 sandboxEnabled 为 true 时适用。请参阅 沙盒配置。 |
{"filesystem": {...}, "network": {...}} |
当对 stdio 服务器使用 Docker 时,请勿使用后台运行选项 (-d)。服务器必须在前台运行才能与 VS Code 通信。
本地服务器配置示例
此示例显示了使用 npx 的基础本地 MCP 服务器的最小配置
{
"servers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
沙盒配置
您可以为本地运行的 stdio MCP 服务器启用沙盒功能,以限制它们对文件系统和网络的访问。沙盒服务器只能访问您明确允许的文件系统路径和网络域。沙盒功能仅在 macOS 和 Linux 上可用。
要为服务器启用沙盒,请在其配置中设置 "sandboxEnabled": true。然后,使用 sandbox 对象定义文件系统和网络访问规则。当沙盒服务器需要当前规则未允许的访问权限时,请检查服务器输出中的错误消息,并相应地更新 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}"} |
除了可通过网络访问的服务器外,VS Code 还可以连接到在 Unix 套接字或 Windows 命名管道上监听 HTTP 流量的 MCP 服务器。通过指定套接字或管道路径(格式为 unix:///path/to/server.sock 或 Windows 上的 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}"
}
}
}
}
开发模式
您可以通过在服务器配置中添加 dev 键来为 MCP 服务器启用 开发模式。这是一个包含两个属性的对象:
watch:一个文件 glob 模式,用于监视文件更改并在发生更改时重启 MCP 服务器。debug:允许您为 MCP 服务器设置调试器。目前,VS Code 支持调试 Node.js 和 Python MCP 服务器。
在 MCP 开发指南中了解有关 MCP 开发模式 的更多信息。
服务器命名规范
定义 MCP 服务器时,请遵循以下命名规范:
- 使用驼峰式命名法 (camelCase) 作为服务器名称,例如 "uiTesting" 或 "githubIntegration"
- 避免使用空格或特殊字符
- 为每个服务器使用唯一名称以避免冲突
- 使用能反映服务器功能或品牌的描述性名称,例如 "github" 或 "database"
命令
下表列出了命令面板中可用的 MCP 相关命令(⇧⌘P (Windows, Linux Ctrl+Shift+P))。
| 命令 | 描述 |
|---|---|
| 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 中使用哪些 MCP 服务器。 |
| chat.mcp.discovery.enabled | 配置从其他应用程序自动发现 MCP 服务器配置。 |
| chat.mcp.autostart (实验性) | 检测到配置更改时自动启动 MCP 服务器。 |
| chat.mcp.serverSampling | 配置哪些模型暴露给 MCP 服务器以进行采样(在后台发出请求)。 |
| chat.mcp.apps.enabled (实验性) | 启用或禁用 MCP 应用,这是由 MCP 服务器提供的丰富用户界面。 |