Github助手MCP服务

一个基于Java和Spring AI的MCP服务器,提供工具允许常见AI代理执行各种Github相关任务。

  • by DivyenduDutta
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 DivyenduDutta/Github-Assistant-MCP-Server

使用说明

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文件。

流程:

  1. 通过`java-jar/path/to/mcp_seerver.jar启动mcp服务器
  2. 转到Copilot并确保其处于代理模式。点击扳手,确保您的mcp工具已列出并处于活动状态
  3. 问这个问题。有时我们可能需要为副驾驶指定mcp工具名称才能使用它

注意:我们可以使用以下命令测试MCP服务器 npx @modelcontextprotocol/inspector 其充当MCP客户端。更多 详情 看这个.