GitHub仓库管理服务

GitHub MCP Server是一个通过JSON-RPC工具使AI代理和大型语言模型能够以编程方式与GitHub仓库交互的服务,提供仓库元数据检索、提交查询和问题管理等功能。

  • by Megh-Zyke
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 megh-zyke/github-mcp-server

使用说明

GitHub MCP服务器

GitHub的模型上下文协议(MCP)服务器实现,使AI代理和LLM能够通过标准化的JSON-RPC工具以编程方式与GitHub存储库交互。


概述

此MCP服务器通过一组工具提供对GitHub存储库关键功能的访问,包括:

  • 检索存储库元数据(星号、叉号等)
  • 查询提交和比较提交
  • 管理GitHub问题:列出、创建、评论、标记、分配和关闭

通过在MCP上公开这些功能,任何兼容MCP的客户端或大型语言模型(LLM)都可以无缝地将GitHub用作上下文数据源和工具。


特性

工具名称 描述
get_repo_info 获取基本存储库信息(星、叉、名称)
get_total_number_of_commits 获取存储库中的提交总数
get_commit_numbers 列出提交SHA哈希值
get_commit_details 检索特定提交的详细信息
compare_commits 比较两次提交并返回文件级更改
get_all_issues 列出所有问题及其详细信息
get_issue_by_number 获取特定问题的详细信息
create_issue 创建新问题
comment_on_issue 向问题添加评论
get_issue_comments 检索对某个问题的所有评论
add_issue_labels 为问题添加标签
remove_issue_labels 从问题中删除标签
assign_issue 为用户分配问题
unassign_issue 从问题中删除指定人员
close_issue 关闭问题

设置和使用

先决条件

  • Python 3.8+
  • GitHub个人访问令牌(PAT),具有回购和发行范围
  • FastMCP
  • PyGithub 图书馆
  • python-dotenv 环境变量管理

安装

  1. 克隆存储库(或创建自己的项目)。

  2. 安装依赖项:

pip install PyGithub python-dotenv mcp-server-fastmcp
  1. 创建一个 .env 使用您的GitHub令牌的文件:
GITHUB_TOKEN_1=your_personal_access_token_here
  1. 运行MCP服务器:
python github_mcp_server.py

默认情况下,这将启动MCP服务器监听标准输入/输出(stdio)。


认证

此服务器使用从环境变量加载的GitHub个人访问令牌 GITHUB_TOKEN_1。请确保令牌具有足够的权限来读取存储库和管理问题。


运作原理

  • 每个工具功能都装饰着 @mcp.tool() 通过MCP对其进行曝光。
  • 服务器监听来自MCP客户端的JSON-RPC请求。
  • 在收到请求后,它会调用相应的工具并返回结果。
  • API调用期间的错误将作为错误字符串返回(未来版本将改进错误处理)。

未来改进

  • 结构化JSON响应,用于更好的LLM解析
  • 使用MCP标准错误增强错误处理
  • 权限和费率限制处理
  • 扩展的GitHub API覆盖范围:拉取请求、分支、贡献者
  • 基于OAuth的身份验证流程