使用说明
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环境变量管理
安装
-
克隆存储库(或创建自己的项目)。
-
安装依赖项:
pip install PyGithub python-dotenv mcp-server-fastmcp
- 创建一个
.env使用您的GitHub令牌的文件:
GITHUB_TOKEN_1=your_personal_access_token_here
- 运行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的身份验证流程
