GitHub Copilot - 尝试一下在VSCode GitHub Copilot去使用MCP Server tool

1.简单介绍

MCP是Model Context Protocol的缩写,是Anthropic开源的一个标准协议。MCP使得大语言模型可以和外部的数据源,工具进行集成。MCP也可以与GitHub Copilot Agent Mode进行结合为其提供可用的外部数据源或者工具。

这边将尝试一下在VS Code GitHub Copilot窗口中去配置和使用MCP Server提供的工具。

2.具体说明

2.1 准备阶段

假定已经制作好了一个MCP Server,使用的是.NET9技术。这个项目是一个Asp.NET Core WebApi项目,它能够从Microsoft 365 Planner中查到Plan, Task和Group的信息。

同时使用的MCP nuget package是 ModelContextProtocal.AspNetCore(当前最新版本是1.2.0)

Microsoft 365 Planner的界面如下图所示,

2.2 运行并测试MCP Server

2.2.1 运行项目
2.2.2 测试项目

假定使用的是MCP Inspector进行一下检测,

  1. 可以运行如下命令启动MCP Inspector,

npx @modelcontextprotocol/inspector

  1. 启动之后,设置Transport Type, URL,界面如下图所示,

2)点击Connect按钮,之后可以点击界面中的List Tools按钮,

3)最后发现确实有MCP Server提供的工具出现,

note, 这些工具其实对应了MCP Server项目是标注了MCPServerTool attribute的方法

2.3 在GitHub Copilot使用

这边打开的是Visual Studio Code Insiders,

  1. 使用自己的GitHub帐户进行登录同时打开一下GitHub Copilot窗口,如下图所示,
  1. 设定GitHub Copilot 为 Agent mode,模型这边选择的是GPT-4o,也可以选择别的模型

3)在VSCode当中,添加mcp.json配置文件

  1. 在mcp.json中,对用的MCP server的配置如下,
复制代码
"my-mcp-server-922eb259": {
	"type": "sse",
	"url": "http://localhost:5266/sse"
}

5)在VS Code GitHub Copilot窗口中,点击如下图标

  1. 在弹出的MCP Server tools下拉框中,选中对应的tool,点击OK按钮
  1. 最后在GitHub Copilot界面中,输入和Microsoft 365 Planner相关的问题

发现在GitHub Copilot Agent模式下,能准确定位到要执行的tool

  1. 点击上图中的Continue按钮,发现能够从Microsoft 365中正确查到M365 group
  1. 如果要找出Microsoft 365 Planer特定Plan中处于In Progress状态的Task,发现能够准确找到的

2.4 其他

对于控制台程序,也可以对其进行配置,然后添加到GitHub Copilot中,

通过MCP与GitHub Copilot Agent Mode的配合,确实能够提供很多的便利

3.总结

本文简单记录了一下在Visual Studio Code中的GitHub Copilot Agent模式下,如何通过添加MCP Server提供的外部工具让GitHub Copilot的能力变得更强。更多的MCP详细内容也可以参考MCP网站。mcp SDK(.NET)的GitHub repo地址是csharp-sdk,感觉更新挺快的。

如果本文哪里有错误,麻烦告之,谢谢谢谢!