Copilot CLI IDE MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器端,专为 Copilot CLI 与 Visual Studio 的集成而设计。它通过命名管道和基于HTTP的传输实现 MCP 协议,提供工具调用、资源读取、诊断信息推送等能力,并在 VS 中托管会话、状态和事件通知。
-
主要功能点
- MCP 服务器:实现标准的 MCP 请求/响应处理,支持工具调用、读取文件、获取诊断、打开/关闭差异视图等工具。
- 传输与会话:通过 Named Pipe 实现 RPc 通道,提供对 HTTP 的“流式 MCP”传输支持和 SSE 通道用于服务端到客户端的事件推送。
- 工具集合:通过反射扫描程序集中的工具类型,注册与公开工具接口(如 get_selection、read_file、get_diagnostics、open_diff、close_diff、get_vscode_info、update_session_name)。
- 诊断与选择推送:在 VS 的 Error List 与活动编辑器之间建立 debounced、去重的通知推送机制,实时同步给 Copilot CLI。
- 服务器进程管理:负责启动、监控并清理 MCP 服务器进程,以及管理 Copilot CLI 的工作流所需的锁文件。
- 测试覆盖:包含大量单元测试验证 MCP 请求/响应、HTTP 框架、工具输出、序列化等边界和正确性。
-
安装步骤
- 构建 MCP 服务器组件
- 在仓库根目录执行:dotnet build src/CopilotCliIde.Server/CopilotCliIde.Server.csproj
- 构建 Visual Studio 扩展
- 使用 MSBuild:msbuild src/CopilotCliIde/CopilotCliIde.csproj /p:Configuration=Debug
- 安装/调试
- 将生成的 .vsix 安装到 Visual Studio 实例中,或在实验实例中调试
- 构建 MCP 服务器组件
-
服务器配置(供 MCP 客户端使用的 JSON 配置示例) { "server_name": "Copilot CLI IDE MCP Server", "command": "dotnet", "args": [ "src/CopilotCliIde.Server/CopilotCliIde.Server.dll", "--rpc-pipe <RPC_PIPE_NAME>", "--mcp-pipe <MCP_PIPE_NAME>", "--nonce <NONCE>" ], "notes": "以上配置用于启动 MCP 服务器进程。RPC_PIPE_NAME、MCP_PIPE_NAME 与 NONCE 需在实际部署时替换为实际值。MCP 客户端不需要该配置代码,仅在文档中说明连接参数。" }
-
基本使用方法
- 启动 MCP 服务端并保持监听
- Copilot CLI 通过指定的 RPC 管道建立与 VS 的通信
- 通过工具调用(如 get_selection、read_file、get_diagnostics、open_diff)与 VS 交互
- 使用 SSE 通道接收实时的状态与诊断等通知
-
备注
- 项目包含完整的服务器端实现、工具注册、HTTP 传输、SSE 推送、错误列表监控、选区跟踪等功能,具备可运行的 MCP 服务端能力。