网站首页 > 精选文章 正文
作者:Sebastian Petrus | 编译:小兰
模型上下文协议 (Model Context Protocol, MCP) 是一种新的开放标准,它帮助 AI 模型使用通用接口与外部工具、数据源和服务进行交互。当与 VSCode 和 智能体(Agent)模式下的 GitHub Copilot 结合使用时,它允许你的 AI 助手执行真实世界的任务,例如读取文件、调用 API 或与 GitHub 交互——所有这些都通过 MCP 服务器完成。
MCP 在 VSCode 中如何工作?
MCP 遵循 客户端-服务器模型:
- 客户端:VSCode 充当 MCP 客户端。
- 服务器:任何通过 MCP 兼容服务器暴露的工具或服务。
- 通信:客户端向服务器发送结构化消息,服务器以操作或数据进行响应。
真实世界示例:
- 文件系统 MCP 服务器可以读/写文件。
- GitHub 的 MCP 服务器可以创建拉取请求、管理问题和列出仓库。
- 服务器可以在本地运行,也可以远程托管。
分步指南:在 VSCode 中设置 MCP 服务器
第 1 步:向 VSCode 添加 MCP 服务器
有几种方法可以将 MCP 服务器添加到 VSCode 中:
使用工作区配置文件:
- 在你的工作区中创建一个 .vscode/mcp.json 文件
- 选择“添加服务器”(Add Server)按钮为新服务器添加模板
- VSCode 为 MCP 服务器配置提供 IntelliSense 支持
使用命令面板:
- 运行 MCP: Add Server 命令
- 选择“工作区设置”(Workspace Settings)在你的工作区中创建 .vscode/mcp.json 文件
使用用户设置为全局访问:
- 打开命令面板并运行 MCP: Add Server
- 选择“用户设置”(User Settings)以全局添加 MCP 服务器配置
第 2 步:理解 VSCode MCP 服务器配置格式
MCP 服务器配置遵循特定的 JSON 格式:
{
"inputs": [
{
"type": "promptString",
"id": "api-key",
"description": "API Key",
"password": true
}
],
"servers": {
"MyServer": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-example"],
"env": {
"API_KEY": "${input:api-key}"
}
}
}
}
关键元素是:
- inputs: 定义配置值的自定义占位符
- servers: 包含 MCP 服务器列表
- type: 连接类型(“stdio” 或 “sse”)
- command: 启动服务器可执行文件的命令
- args: 传递给命令的参数数组
- env: 服务器的环境变量
VSCode MCP 服务器连接类型和配置选项
VSCode MCP 服务器的 STDIO 连接
对于标准输入/输出连接:
"MyServer": {
"type": "stdio",
"command": "npx",
"args": ["server.js", "--port", "3000"],
"env": {"API_KEY": "${input:api-key}"}
}
VSCode MCP 服务器的 SSE 连接
对于服务器发送事件(server-sent events)连接:
"MyRemoteServer": {
"type": "sse",
"url": "http://api.example.com/sse",
"headers": {"VERSION": "1.2"}
}
在 VSCode MCP 服务器配置中使用变量
你可以在配置中使用预定义变量:
"MyServer": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/server.js"]
}
高级 VSCode MCP 服务器配置示例
这是一个更全面的示例,展示了多个服务器和输入变量:
{
"inputs": [
{
"type": "promptString",
"id": "perplexity-key",
"description": "Perplexity API Key",
"password": true
}
],
"servers": {
"Perplexity": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "PERPLEXITY_API_KEY", "mcp/perplexity-ask"],
"env": {
"PERPLEXITY_API_KEY": "${input:perplexity-key}"
}
},
"Fetch": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"RemoteServer": {
"type": "sse",
"url": "http://api.contoso.com/sse",
"headers": {"VERSION": "1.2"}
}
}
}
在智能体模式下使用 VSCode MCP 工具
配置好 MCP 服务器后,你可以在 Copilot 的智能体模式下使用它们的工具:
- 打开聊天视图(Windows, Linux: Ctrl+Alt+I, Mac: I)
- 从下拉菜单中选择“智能体”(Agent)模式
- 点击“工具”(Tools)按钮查看可用工具
- 根据需要选择或取消选择工具
- 在聊天输入框中输入你的提示词
当调用工具时,你需要先确认操作才能运行。你可以使用“继续”(Continue)按钮下拉菜单配置 VSCode,为当前会话、工作区或所有未来的调用自动确认特定工具。
管理 VSCode MCP 服务器和工具
查看和管理服务器
从命令面板运行 MCP: List Servers 命令来查看你配置的 MCP 服务器。在此视图中,你可以:
- 启动、停止或重启服务器
- 查看服务器配置
- 访问服务器日志进行故障排除
VSCode MCP 服务器中的工具直接引用
你可以在你的提示词中通过输入 # 后跟工具名称来直接引用工具。这在所有聊天模式(提问、编辑和智能体模式)下都有效。
VSCode MCP 服务器的命令行配置
你可以使用 VSCode 命令行添加 MCP 服务器:
code --add-mcp "{\"name\":\"my-server\",\"command\":\"uvx\",\"args\":[\"mcp-server-fetch\"]}"
VSCode MCP 服务器的问题故障排除
当 VSCode 遇到 MCP 服务器问题时,它会在聊天视图中显示一个错误指示器。要诊断问题:
点击聊天视图中的错误通知 选择“显示输出”(Show Output)查看服务器日志 或者,从命令面板运行 MCP: List Servers,选择服务器,然后选择“显示输出”
常见问题包括:
- 服务器配置不正确
- 缺少依赖项
- 远程服务器的网络连接问题
- 本地可执行文件的权限问题
创建你自己的 VSCode MCP 服务器
如果你想开发自己的 MCP 服务器,可以使用任何能够处理标准输出(stdout)的编程语言。有几个官方 SDK 可用:
- TypeScript SDK
- Python SDK
- Java SDK
- Kotlin SDK
- C# SDK
你的服务器应该实现 MCP 标准,该标准定义了如何发现、调用工具以及如何格式化响应。
VSCode MCP 服务器自动发现和集成
VSCode 可以自动检测并重用在其他工具(如 Claude Desktop)中定义的 MCP 服务器。你可以在 VSCode 设置中使用
chat.mcp.discovery.enabled 设置来启用自动发现。
结论:在 VSCode 中释放 MCP 的力量
模型上下文协议 让你的 AI 助手在 VSCode 内部拥有了在真实世界中的能力——例如运行脚本、管理文件或与 API 交互——所有这些都通过聊天界面完成。
现在你可以:
- 设置和配置 MCP 服务器
- 在智能体模式下使用工具
- 管理和调试服务器
- 甚至构建你自己的 MCP 兼容工具
探索不同的服务器,调整你的设置,并利用 MCP 的力量改进你的开发工作流程。你的 AI 助手变得更加智能了。
- 上一篇: Cursor入门教程-JetBrains过度
- 下一篇: 谈谈GUI编程
猜你喜欢
- 2025-04-24 vscode运行Python的两种方法,及无法运行的原因
- 2025-04-24 谈谈GUI编程
- 2025-04-24 Cursor入门教程-JetBrains过度
- 2025-04-24 python进阶-Day 3:异常处理与调试
- 2025-04-24 10个最常用的 VSCode 快捷键,提升你的编码速度
- 2025-04-24 vscode列编辑
- 2025-04-24 Debug无忧!清华校友打造编程神器:反向追踪变量、数据流等
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)