当前位置: 首页 > news >正文

Github Copilot 是怎么识别到 MCP server 的

GitHub Copilot 本身不会自动扫描或发现 MCP(Model Context Protocol)Server。它是通过MCP Client(例如 VS Code 中的 GitHub Copilot Chat 扩展)读取配置文件,然后建立连接的。

整个过程可以分为四步:

┌──────────────────────┐ │ GitHub Copilot Chat │ │ (MCP Client) │ └──────────┬───────────┘ │ 读取配置 ▼ mcp.json / settings.json │ ▼ ┌──────────────────────┐ │ 启动 MCP Server │ │ stdio / SSE / HTTP │ └──────────┬───────────┘ │ ▼ MCP 协议握手 │ ▼ 获取 tools/resources/prompts │ ▼ Copilot Chat 中显示可用工具

第一步:Copilot 读取 MCP 配置

VS Code 安装最新版 GitHub Copilot 后,会读取 MCP 配置,例如:

{ "servers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "D:\\workspace" ] } } }

这里告诉 Copilot:

有一个 MCP Server 叫 filesystem,
使用 npx 启动。

如果没有这个配置,Copilot 根本不知道 Server 存在。


第二步:启动 MCP Server

Copilot 相当于执行:

npx -y @modelcontextprotocol/server-filesystem D:\workspace

或者

python server.py

或者

node server.js

取决于配置。

Server 启动以后:

stdin <-------- Copilot stdout --------> Copilot

如果是 stdio 模式,就是通过标准输入输出通信。


第三步:MCP 握手

连接以后,Copilot 会发送 MCP 初始化请求。

类似(简化):

{ "method": "initialize" }

Server 返回:

{ "capabilities": { "tools": {}, "resources": {}, "prompts": {} } }

随后 Copilot 会继续询问:

tools/list

Server 返回:

[ { "name": "read_file", "description": "Read file" }, { "name": "write_file", "description": "Write file" } ]

Copilot 就知道:

哦,这个 Server 提供两个 Tool。


第四步:显示到 Chat

于是聊天窗口里会看到:

Filesystem MCP ✓ read_file ✓ write_file ✓ list_directory

当你问:

帮我读取 config.json

Copilot 会自动调用:

tools/call

发送:

{ "name": "read_file", "arguments": { "path":"config.json" } }

Server 返回:

{ "content":"......" }

然后 Copilot 再把内容交给大模型生成回答。


Copilot 是怎么知道有哪些 Tool 的?

关键就在于MCP 协议中的动态发现(Discovery)机制

Server 会实现:

tools/list resources/list prompts/list

Copilot 启动时会调用这些接口。

例如:

initialize ↓ tools/list ↓ resources/list ↓ prompts/list

所以不需要在 Copilot 里手工注册每个 Tool,只要 Server 返回新的工具:

create_issue git_commit search_code deploy

Copilot 就会立即识别。


Copilot 如何识别是哪个 MCP Server?

它并不是通过协议识别,而是根据配置文件中的服务器名称(键名)来区分。例如:

{ "servers": { "filesystem": {...}, "github": {...}, "database": {...} } }

Copilot 会分别启动三个进程:

filesystem github database

每个 Server 都会独立完成初始化和能力发现。


总结

GitHub Copilot 识别 MCP Server 的流程如下:

  1. 读取 MCP 配置(例如mcp.json),获取所有已配置的 Server。
  2. 启动每个 MCP Server(通过commandargs,或连接到 HTTP/SSE 端点)。
  3. 执行 MCP 初始化握手initialize)。
  4. 动态发现能力(调用tools/listresources/listprompts/list)。
  5. 将发现的工具注册到 Copilot Chat,在需要时自动调用tools/call

因此,Copilot 并不是“扫描电脑上有哪些 MCP Server”,而是依据配置文件建立连接,再通过 MCP 协议动态发现该 Server 提供的能力。这也是 MCP 的核心设计之一:Client 无需预先了解 Server 的具体工具,只需遵循统一协议即可完成集成。

http://www.jsqmd.com/news/1230764/

相关文章:

  • 2026 年更新:天津靠谱的吊车租赁公司哪家专业,别再自费!揭秘高效吊车租赁的隐形成本 - 领域鉴赏官
  • 鸿蒙原生开发手记:徒步迹 - 自定义组件开发规范
  • EDA的本质是问‘数据想说什么’,而非‘怎么画图’
  • (2026最新)抚顺防水补漏本地人必选的正规靠谱公司推荐-房屋漏水检测维修师傅上门-卫生间厨房阳台房顶外墙漏水检测精准测漏 - 固漏匠防水科技
  • 2026年Python环境配置全攻略:从零搭建稳定开发环境
  • DRF框架深度解析与高效API开发实战
  • Unity UGUI日历系统开发:从Scroll View到数据驱动交互的实战指南
  • 2026年指标数据仪表盘系统测评:指标管理与可视化解析 - 科技焦点
  • Java反射机制详解:原理、应用与性能优化
  • 日本IT职场必备:专业日语术语全解析
  • (2026最新)白城防水补漏本地人必选的正规靠谱公司推荐-房屋漏水检测维修师傅上门-卫生间厨房阳台房顶外墙漏水检测精准测漏 - 固漏匠防水科技
  • 多维聚合实战:GROUPING SETS、ROLLUP与CUBE高效应用指南
  • C++俄罗斯方块实现:从游戏循环到碰撞检测的完整项目解析
  • AI技术日报:蛋白质预测与多模态模型突破
  • Codex 实战指南:从定位认知到工作流集成,提升开发效率
  • Pytest+Tox构建可审计的Python质量流水线
  • STM32软件模拟SPI驱动SSD1306 OLED显示屏实战
  • 2026年7月最新百达翡丽上海莘庄维璟印象城维修保养服务电话 - 百达翡丽官方售后中心
  • Unity TextMeshPro中文字体资产制作:告别“口口口”乱码
  • 还在为位图放大失真而烦恼?SVGcode帮你一键实现无损矢量化
  • 2026 年现阶段安康有实力的木纹漆供应厂家哪家专业,揭秘:这层漆如何让老家具焕发新生? - 企业推荐管【认证】
  • AM263x ePWM与缓冲DAC协同设计:实现高精度实时模拟控制
  • AI智能体工程师:核心能力与10步学习路线
  • Claude API密钥获取与高可用架构设计指南
  • Ubuntu命令行操作基础与高效管理技巧
  • (2026最新)东营防水补漏本地人必选的正规靠谱公司推荐-房屋漏水检测维修师傅上门-卫生间厨房阳台房顶外墙漏水检测精准测漏 - 固漏匠防水科技
  • 大语言模型在《我的世界》中的行为分析与优化
  • 长鑫上市或浮盈万亿,这座当年被嘲笑的小城,赌赢了中国芯片
  • Spring Cloud Gateway微服务网关实战与优化
  • Om AI联汇发布倡议并上线社区,端侧原生技术推动AI硬件产业爆发