网站首页 > java教程 正文
作者: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 助手变得更加智能了。
猜你喜欢
- 2025-08-01 为什么VSCode是代码编辑器而不是IDE?
- 2025-08-01 十分钟搞定C/C++项目自动化构建——Xmake入门指南
- 2025-08-01 最简单的Python入门教程3-IDE的安装
- 2025-08-01 VS Code使用Git可视化管理源代码详细教程
- 2025-08-01 mac环境中vscode安装和简单使用
- 2025-08-01 云编程,这是我见过最优雅的Web云端集成开发IDE——Cloud Studio
- 2025-08-01 IDEA"吃内存"的真相:我用这5个JVM调优参数,让它比VSCode还流畅
- 2025-08-01 手把手教你在VSCode下如何使用Jupyter
- 2025-08-01 VScode部署Go语言的编程实践
- 2025-08-01 AutoDev for VSCode 预览版:精准 AI 编程提示词与编辑器的完美融合
你 发表评论:
欢迎- 08-05深入理解 Spring 设计模式:从实现原理到思想精髓
- 08-05工作中最常用的 8 种设计模式
- 08-05一文读懂设计模式,看这篇就够了
- 08-05java设计模式之责任链模式
- 08-05从复杂到优雅:用建造者和责任链重塑代码架构
- 08-05带你读Effective系列:创建对象-Builder构建器
- 08-05面试官:JDK中都用了哪些设计模式?
- 08-05工厂、建造者、装饰器、适配器:解密JDK设计模式的实战妙用
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)