Github助理MCP服务器
    
An MCP Server written using Java and Spring AI which exposes tools to allow common AI agents to perform various Github related tasks.
Introduction • Architecture • Setup • Usage
介绍
模型上下文协议(MCP) 是一个标准的开源协议 用于允许通用AI代理以标准方式与外部工具交互。
这个项目是使用Spring AI编写的MCP服务器的实现,它公开了允许通用AI代理的工具 例如Copilot来执行各种与Github相关的任务。通常,这些AI代理无法访问存储库, 特别是私有存储库,并执行诸如列出问题、列出PR等操作。此服务器允许这些 代理通过公开它们可以调用的工具来执行此类操作。
MCP服务器当前公开的工具包括:
- list_issues_limited:列出给定所有者在给定存储库中的特定数量的问题。
- list_issues_default:在给定的存储库中为给定的所有者列出5个问题。
- get_issue:获取特定问题的详细信息。
- list_pull_requests:列出所有PR的一般详细信息(目前打开PR)。
- get_pull_request:获取特定PR的详细信息。
MCP工具的设计理念是:“代理友好型,而非API型”
建筑
设置
设置Github令牌
对应于 github.token=${GITHUB_TOKEN} 在 application.properties一 环境变量命名 GITHUB_TOKEN 必须进行设置。这应该是一个有效的Github个人访问令牌(PAT) 它拥有在Github上执行所需操作的必要权限。此令牌将由 MCP服务器,用于验证对Github的API请求。
将MCP服务器添加到Github Copilot
转到工具->Github复制品->编辑设置。..并单击“模型上下文协议(MCP)”,然后单击“配置” 打开 mcp.json.
将以下内容添加到此json文件中:
"github-assistant": {
"type": "streamable-http",
"url": "http://localhost:8080/mcp"
}对于开发者
在将代码推送到远程之前,在本地运行以下命令。
代码格式化
mvnw spotless:check如果存在格式问题,请运行以下命令进行修复。
mvnw spotless:apply静态分析
mvnw spotbugs:check风格/复杂性分析
mvnw pmd:check单元测试和代码覆盖率
始终确保为任何新代码/功能添加或更新单元测试,并在推送到远程之前运行所有测试。
运行以下命令以执行单元测试并生成代码覆盖率报告(如果需要,用于本地分析)。
mvn clean test -Pcoverage代码覆盖率报告可以是 发现于 {project.basedir}/code_coverage.
SonarCloud还集成了 静态代码分析和代码覆盖率报告。本自述顶部的SonarCloud徽章反映了当前 SonarCloud上项目的状态。所有SonarCloud集成都已由Github CI处理。
用法
跑
mvn clean package -DskipTests构建项目并生成jar文件。
流程:
- 通过\`java-jar/path/to/mcp_seerver.jar启动mcp服务器
- 转到Copilot并确保其处于代理模式。点击扳手,确保您的mcp工具已列出并处于活动状态
- 问这个问题。有时我们可能需要为副驾驶指定mcp工具名称才能使用它
注意:我们可以使用以下命令测试MCP服务器 npx @modelcontextprotocol/inspector 其充当MCP客户端。更多 详情 看这个.
