到目前为止,我们已经了解了如何创建服务器,也看过如何通过你自己编写的专用客户端来“消费”(使用)它们。本节将介绍如何使用现有软件(如 Visual Studio Code(VS Code) 或 Claude Desktop)来消费服务器。这里所说的“消费”,指的是安装服务器、进行配置,然后用它们来运行工具或以其他方式与服务器交互。
在本章中,你将学会:
- 了解如何用现有工具消费服务器
- 在 VS Code 中安装与配置服务器
- 使用
mcp.json文件进行服务器管理 - 管理服务器所需的密钥与配置
- 使用 VS Code 测试并与服务器交互
- 消费服务器时应用安全最佳实践
本章涵盖以下主题:
- 使用 Claude Desktop 与 VS Code 等宿主(host)进行消费
- 安装流程
- 添加服务器
- 本地安装与全局安装
- 小贴士与技巧
- 安全要点
- 服务器建议
使用 Claude Desktop 与 VS Code 等宿主进行消费
“消费服务器”是什么意思?要使用 MCP 服务器及其特性,你需要一种与之交互的方式。第 7 章中你已经看到如何创建服务器以及如何编写客户端与之交互——这当然可行,但需要你写代码。
另一种方式是使用现有软件(如 Claude Desktop 或 VS Code)。这些工具天生就能与 MCP 服务器协作,并且内置了大语言模型,让你可以通过提示词以更友好的方式与服务器交互。
我们把这些软件当作宿主(host) :它们内置 MCP 客户端,并使用配置文件来记录已安装的服务器、可用的工具等信息。
它们的工作方式概括如下:
- 通过选定的传输类型(如 STDIO、SSE 或 Streamable HTTP)与 MCP 服务器建立连接
- 提供图形界面让你输入提示词、使用工具、进行配置等
- 借助配置文件记录已安装的服务器、可用工具与其他设置
下面是 VS Code 中的一个界面示例,能代表这类宿主的工作方式:
图 8.1 – VS Code 界面
在该界面中你可以看到:
- 当前通过已安装服务器提供的工具列表
- 一个可输入提示词的聊天界面
接下来我们分别看看具体宿主及其特性。
VS Code 对 MCP 的支持
VS Code 与 GitHub Copilot 一起,对 MCP 服务器提供了广泛支持。它提供多种功能帮助你安装、配置与保护服务器,既适用于你在开发/试用自建服务器的场景,也能把 VS Code 变成一个代理式应用,通过你的提示来运行工具。
VS Code 为 MCP 服务器提供的能力包括:
- 安装服务器:既支持全局安装也支持工作区级安装;同时支持 STDIO、SSE、Streamable HTTP 三种传输类型。
- 工具管理:可为某个服务器启用/禁用工具,确保客户端拥有所需上下文。
- 特性交互:除了工具,还支持**用户提示(prompts)与资源(resources)**等特性。
- 服务器管理:可添加/移除服务器并进行配置。
- 采样(Sampling) :当服务器发送采样请求时,你可以与之交互、微调请求后再返回响应。
- 引导请求(Elicitations) :当服务器需要更多用户信息以继续处理请求时,提供相应支持。
- 日志与调试:便于你在开发服务器或客户端时进行诊断。
新功能会不断加入;若想尽早体验,建议使用 VS Code Insiders(新功能会优先发布在那里)。
Claude Desktop
你也可以用 Claude Desktop 来消费 MCP 服务器。前往下载页(claude.ai/download)安装与你操作系统对应的客户端。与 VS Code 类似,它提供图形界面和一整套与 MCP 服务器交互的功能。
Claude 的能力远不止 MCP——它是一个全功能 AI 助手,可类比 ChatGPT 或 Copilot。完整功能列表可访问:claude.ai/login?retur… 。
安装流程
无论是 Claude 还是 VS Code,安装服务器都依赖一个核心概念:mcp.json 文件。这是你的主配置文件,用于添加服务器地址及其他所需配置。它相当于已安装服务器的清单(manifest) 。所谓“安装服务器”,本质上就是在该文件中新增一条记录。例如:
{
"inputs": [
],
"servers": {
"docs": {
"type": "http",
"url": "https://learn.microsoft.com/api/mcp"
}
}
}
在这个文件里,servers 下有一个指向 https://learn.microsoft.com/api/mcp 的服务器项;此时该 MCP 服务器就被视为已安装。
完整安装与运行特性的流程如下:
- 在
mcp.json的servers字段中添加一条服务器记录; - 启动服务器;
- 在宿主里输入与该服务器某个工具匹配的提示,使用该服务器。
稍后我们会演示一个完整场景。先更深入地看看 mcp.json。
mcp.json 文件
mcp.json 主要有两个顶级属性:
1) inputs
用于定义敏感信息占位符(例如 API Key 或 Token)。定义后,VS Code 的界面会弹出输入框让你填写,并将答案保存到一个变量供后续引用。示例:
[
{
"id": "my_api_key",
"description": "The API key that my MCP server needs",
"type": "promptString",
"password": true
}
]
然后把它与某个服务器项关联起来,例如:
"my_mcp_server": {
"type": "http",
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer ${my_api_key}"
}
}
注意这里把 my_api_key 作为 headers 的一部分传入;这样每次请求 http://localhost:8000/mcp 都会携带该 API Key,从而安全访问 MCP 服务器。通过这种方式,机密信息不会直接写入 mcp.json。
2) servers
用于声明服务器条目的对象。不同传输类型下的配置写法不同。示例如下:
使用 Streamable HTTP:
"my_mcp_server": {
"type": "http",
"url": "http://localhost:8000/mcp"
}
这里 type 为 http,并提供了 url。
使用 SSE:
"my_mcp_server": {
"type": "sse",
"url": "http://localhost:8000/sse"
}
与 Streamable HTTP 一样,SSE 面向远程可访问的服务器,因此也使用 url 指定地址。
使用 STDIO:
"playwright": {
"command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"]
}
STDIO(标准输入/输出)需要指定如何启动该服务器,因而必须提供 command 与 args。而 SSE 与 Streamable HTTP 已经在远端运行,不需要本地启动命令。
添加服务器(Adding a server)
你在上一节已经看到可以用多种方式添加服务器了,这里我们动手完整走一遍添加与使用服务器的流程。以 Playwright(端到端 E2E 测试框架)为例。要把它作为 MCP 服务器安装,通常做法是找到它的 GitHub 仓库并查看安装说明。Playwright 的仓库在:github.com/microsoft/p…。
该服务器功能很多,所以说明也比较长;我们从 Getting started 小节摘取安装指引,如下:
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
可以看出它显然是 STDIO 类型的服务器,因为填写了 command 与 args 字段。
步骤 1:安装服务器
我们通过 VS Code 安装。通常有两种方式:
- 直接在
mcp.json中添加对应条目; - 使用图形界面:在查看
mcp.json时点击 Add Server 按钮,或在命令面板运行 MCP: Add Server。两种方式都会弹出 UI 让你选择传输类型,并根据所选传输填写url或command/args信息。
例如,点击 Add Server 后,你会看到如下界面:
图 8.2 – 安装服务器
可以看到有多种安装选项:不同的传输方式、来自不同包管理器的源,甚至支持 Docker。
如果选择 Browse MCP Servers…,会跳转到一份已审核的 MCP 服务器列表(code.visualstudio.com/insider/mcp),你可以从中选择要安装的服务器。
虽然我们在 GitHub 仓库已经找到 Playwright 的安装说明,但这里也可以从该列表中选择 Install Playwright 来安装:
图 8.3 – 安装 Playwright
此时 VS Code 会弹出一个对话框,提供该服务器的更多信息及安装步骤。之前从仓库获取安装方法是可行的,但通过这里安装也同样方便。
小结:要么手动把需要的配置粘贴进
mcp.json,要么用 VS Code 的多种安装选项完成。
步骤 2:管理服务器
添加完成后,你的 mcp.json 看起来应类似如下(注意已添加 playwright):
{
"servers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
},
"inputs": []
}
接着看看 UI 如何辅助我们。打开 Extensions(扩展)视图,能看到已安装服务器列表:
图 8.4 – 已安装的服务器
在这个视图中点击某个服务器右侧的齿轮按钮,可进行交互:
图 8.5 – 与服务器交互
可以看到多种操作:启动服务器、查看日志,甚至查看 JSON 配置。这些操作也可以直接在 mcp.json 里完成。
步骤 3:与服务器交互
启动服务器后,切换到GitHub Copilot 的聊天界面。确保在下拉框中选中对应的代理(agent),然后输入如下提示词:
Navigate to tfl.gov.uk/. I want to go from Paddington to Heathrow, show me how to get there by underground, important use playwright tool
有时 VS Code 不太“乐意”使用某个工具,因此需要在提示词中强调要使用它。上面的提示里加入了 “important use playwright tool” ,以确保触发该工具。
在聊天界面你应看到类似内容:
图 8.6 – 使用该工具
这表示一个工具被触发,并询问你是否允许运行。你可以看到提示中的 URL 被解析并作为 Playwright 工具的输入。随后 Playwright 会发起一系列工具调用:打开网站、定位输入框、尝试完成你设定的任务。
有时需要重启聊天会话;一旦正常工作,你会看到类似下图,表明 Playwright 已开始正确导航,尝试从 Paddington 到 Heathrow 的路线查询:
图 8.7 – Playwright 查询
完成后,你可以继续与之交互以获取所需内容,甚至让它基于这次互动生成 Playwright 测试——这正是其真正价值所在。
本地安装与全局安装
到目前为止,我们把服务器安装在 .vscode/mcp.json,这意味着它只在当前工作区可用。你也可以在整台机器上全局安装服务器。方法是使用命令面板的 MCP: Add Server,在最后一步选择 Global,这会在 (Settings)/User/mcp/json 位置创建 mcp.json,也就是把服务器写入用户级设置而非某个工作区。这样当你打开另一个 VS Code 工作区时,无需再次安装该服务器。
下面是用户级 mcp.json 在全局安装后可能的样子:
{
"servers": {
"my-mcp-server-6801ea17": {
"url": "https://learn.microsoft.com/api/mcp",
"type": "http"
}
},
"inputs": []
}
可以看到,配置内容本身并无差异,不同之处在于 mcp.json 的存放位置。经验法则是:常用的服务器就全局安装;不常用的就安装在当前工作区的 .vscode/mcp.json。
技巧与提示(Tips and tricks)
到目前为止我们已经走过基础用法,那还有哪些进阶点需要了解?其实有不少可配置项。完整功能清单可见官方文档:code.visualstudio.com/docs/copilo…。
调试(Debugging)
作为开发者,学会调试至关重要。根据文档(code.visualstudio.com/docs/copilo…),目前支持 Node.js 调试:
"server-ts": {
"command": "node",
"args": ["08 - consuming servers/code/build/index.js"],
"dev": {
"watch": "08 - consuming servers/code/build/**/*.js",
"debug": { "type": "node" }
}
}
按上述配置,你需要:
-
在
command与args中设置如何运行服务器; -
添加
dev,包含两个属性:watch:一个 GLOB 模式,用于监听你的 JavaScript 文件变更;debug:指定用哪种进程来调试(此处为node)。
配置好并启动服务器后,界面上方会出现灰色的调试提示文本。记得在合适位置打断点(如服务器启动、运行工具等)。你可以这样测试不同场景:
- 测试启动:在启动代码处打断点,然后从
mcp.json启动服务器,你应看到断点被触发:
图 8.8 – 启动断点
-
测试工具:用 Inspector 的 CLI 模式测试工具。以下命令测试名为
add的工具,输入参数为a与b;请按你服务器的操作与参数调整:npx @modelcontextprotocol/inspector --cli node ./build/index.js --method tools/call --tool-name add --tool-arg a=1 --tool-arg b=2终端会直接返回类似结果:
{ "content": [{ "type": "text", "text": "3" }] }
故障排查(Troubleshooting)
有时你会在聊天区的工具图标上看到错误提示。此时打开终端区域的 Output 面板即可查看问题详情。该区域也很适合日常观察:你能看到 VS Code 与服务器的每一次交互(启动/停止、初始化、列工具等)。
例如我们连接调试器时,Output 输出如下信息(节选):
2025-08-03 19:18:56.856 [info] Connection state: Starting
2025-08-03 19:18:56.857 [info] Connection state: Running
2025-08-03 19:18:56.857 [info] [editor -> server] {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{"roots":{"listChanged":true},"sampling":{},"elicitation":{}},"clientInfo":{"name":"Visual Studio Code - Insiders","version":"1.103.0-insider"}}}
2025-08-03 19:18:56.888 [warning] [server stderr] Debugger listening on ws://127.0.0.1:9230/...
...
2025-08-03 19:19:10.874 [info] [server -> editor] {"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{"listChanged":true}},"serverInfo":{"name":"demo-server","version":"1.0.0"}},"jsonrpc":"2.0","id":1}
2025-08-03 19:19:10.874 [info] [editor -> server] {"method":"notifications/initialized","jsonrpc":"2.0"}
2025-08-03 19:19:10.874 [info] [editor -> server] {"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
2025-08-03 19:19:10.891 [info] [server -> editor] {"result":{"tools":[{"name":"add","title":"Addition Tool","description":"Add two numbers","inputSchema":{"type":"object","properties":{"a":{"type":"number"},"b":{"type":"number"}},"required":["a","b"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]},"jsonrpc":"2.0","id":2}
要点解读:
-
编辑器与服务器握手:编辑器发送其支持的能力(如
roots、sampling、elicitation):[editor -> server] {"method":"initialize", ... "capabilities":{"roots":{"listChanged":true},"sampling":{},"elicitation":{}} ...} -
服务器回应握手:说明它支持
tools:[server -> editor] {"result":{"capabilities":{"tools":{"listChanged":true}}} ...} -
已初始化通知:握手最后一步,客户端(此处为 VS Code)发送
notifications/initialized:[editor -> server] {"method":"notifications/initialized","jsonrpc":"2.0"} -
询问工具:客户端请求工具列表:
[editor -> server] {"method":"tools/list", ...} -
返回工具列表:服务器给出工具清单:
[server -> editor] {"result":{"tools":[{"name":"add", ...}]}}
工具管理(Tool management)
VS Code 在工具管理方面也提供了多种辅助:
-
选择/取消选择工具:添加服务器可能一次带来很多工具。无论你把编辑器当“智能代理”使用,还是需要确保调用的就是正确工具,都可以在聊天界面点击工具图标,在弹出的 UI 中勾选/取消勾选要启用的工具。
-
运行指定工具:通常你会用尽量贴合某工具描述的提示来触发它。如果想强制使用某个工具,可在提示前加
#。例如运行名为add的工具:#add 2 and 7 -
工具数量管理:部分模型对可接受的工具数量有限制。可启用设置
github.copilot.chat.virtualTools.enabled,它会按提示自动筛选匹配的工具,避免“工具过多”导致的错误。请使用最新版 VS Code Insiders;该功能仍在积极演进中。 -
工具授权:VS Code 计划运行工具时会弹出“Continue(继续)”的确认,你可以选择仅此一次、本工作区或始终允许。
示例:#add 2 and 7首次会要求点击 Continue,并选择“允许该工作区”。再次运行:
#add 2 and 9这次会直接运行,因为你已授予本工作区的许可。若要撤销,可在命令面板运行 “Chat: Reset Tool Confirmations” 。
其他设置(Other settings)
Copilot 与 VS Code 的设置还在持续扩展中。建议使用 VS Code Insiders,在命令面板输入 MCP,你会看到大量专用命令与设置:
图 8.9 – MCP 命令
同样也可以搜索 Copilot 相关配置。该领域变化较快;如果你在开发 MCP 服务器,善用编辑器能力是你的“基本功”。
安全要点(Security aspects)
安全话题很大,这里结合编辑器使用给出一些实践建议:
-
将机密信息从配置中剥离:可在
mcp.json中使用inputs来安全注入密钥,例如:{ "mcp": { "inputs": [ { "type": "promptString", "id": "my-key", "description": "Token for my API", "password": true } ], "servers": { "my-server": { "type": "http", "url": "https://my-secure-api/mcp", "headers": { "Authorization": "Bearer ${input:my-key}" } } } } }这样在启动服务器时,UI 会提示你填写
my-key,并安全存储;服务器项通过${input:my-key}引用它。之后对https://my-secure-api/mcp的每个请求都会自动加上Authorization头。 -
运行工具的权限控制:不建议对某工具授予持续性访问,每次确认更安全,也方便你检查被解析的输入。
-
限制服务器权限:例如文件访问型 MCP 服务器,建议仅限单一目录或明确无害的目录。
-
使用可信服务器:GitHub 最近发布了经过审核的 MCP 服务器注册表。在 VS Code Insiders 中输入
@mcp即可查看可安装的服务器列表;或在命令面板选择 MCP: Add Server 后点击 Browse MCP Servers。列表大致如下:
图 8.10 – MCP 注册表
总体原则:确保服务器作者可信(如 Stripe 官方维护的 Stripe MCP)。即便如此,也要配合代码扫描工具,并关注最新安全动态。相同列表也可在 code.visualstudio.com/insider/mcp 查看,但我更推荐 VS Code 内置体验。另外也可查阅服务器的 GitHub 仓库 README(github.com/modelcontex…)以了解更多细节。
服务器推荐(Suggestion for servers)
那么,推荐哪些服务器呢?这取决于你的需求,但就我个人而言,会优先使用下面这些:
- GitHub(github.com/github/gith…):能极大简化日常工作,你可以在编辑器里直接与 Issue、Pull Request(PR)交互,甚至把工作委派给代理等。
- Playwright(github.com/microsoft/p…):不仅适合站点导航,还能把一次导航过程生成为自动化测试,大幅节省时间。
- Microsoft Learn MCP server(github.com/microsoftdo…):微软官方的 Docs/Learn 服务器,在编辑器中直接提供文档资料。
当然还有很多其他选择,但建议先从这些开始,看看哪些适合你的场景。
总结(Summary)
本章介绍了如何消费 MCP 服务器——既包括你自己创建的服务器,也包括外部服务器;同时讲解了服务器安装后的管理、配置与工具使用等内容。
我们还给出了若干安全实践建议。这些仅是最低要求,你应在此基础上做得更多。
下一章我们将讨论 sampling(取样) :这是一个进阶主题,但当服务器需要把工作委托给你(用户)时非常有用。