GitHub MCP 服务器
GitHub API 的 MCP 服务器,支持文件操作、存储库管理、搜索功能等。
特征
自动创建分支:创建/更新文件或推送更改时,如果分支不存在,则会自动创建分支
全面的错误处理:针对常见问题的清晰错误消息
Git 历史记录保存:操作无需强制推送即可维护正确的 Git 历史记录
批量操作:支持单文件和多文件操作
高级搜索:支持搜索代码、问题/PR 和用户
工具
create_or_update_file在存储库中创建或更新单个文件
输入:
owner(字符串):存储库所有者(用户名或组织)repo(字符串):存储库名称path(字符串):创建/更新文件的路径content(字符串):文件的内容message(字符串):提交消息branch(字符串):创建/更新文件的分支sha(可选字符串):被替换文件的 SHA(用于更新)
返回:文件内容和提交详细信息
push_files在一次提交中推送多个文件
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称branch(字符串):要推送到的分支files(数组):要推送的文件,每个文件都有path和contentmessage(字符串):提交消息
返回:更新的分支参考
search_repositories搜索 GitHub 存储库
输入:
query(字符串):搜索查询page(可选数字):分页的页码perPage(可选数字):每页结果数(最多 100 条)
返回:存储库搜索结果
create_repository创建一个新的 GitHub 存储库
输入:
name(字符串):存储库名称description(可选字符串):存储库描述private(可选布尔值):repo 是否应为私有autoInit(可选布尔值):使用 README 初始化
返回:创建的存储库详细信息
get_file_contents获取文件或目录的内容
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称path(字符串):文件/目录的路径branch(可选字符串):从中获取内容的分支
返回:文件/目录内容
create_issue创建新问题
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称title(字符串):问题标题body(可选字符串):问题描述assignees(可选字符串[]):要分配的用户名labels(可选字符串[]):要添加的标签milestone(可选数字):里程碑编号
返回:创建问题详情
create_pull_request创建新的拉取请求
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称title(字符串):PR 标题body(可选字符串):PR 描述head(字符串):包含更改的分支base(字符串):要合并到的分支draft(可选布尔值):创建为 PR 草稿maintainer_can_modify(可选布尔值):允许维护者编辑
返回:创建的拉取请求详细信息
fork_repository派生一个存储库
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称organization(可选字符串):要分叉的组织
返回:分叉存储库详细信息
create_branch创建新分支
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称branch(字符串):新分支的名称from_branch(可选字符串):源分支(默认为 repo default)
返回:创建的分支引用
list_issues
列出并过滤存储库问题
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称state(可选字符串):按状态过滤('打开','关闭','全部')labels(可选字符串[]):按标签过滤sort(可选字符串):按('创建','更新','评论')排序direction(可选字符串):排序方向('asc','desc')since(可选字符串):按日期过滤(ISO 8601 时间戳)page(可选数字):页码per_page(可选数字):每页结果数
返回:问题详细信息数组
update_issue
更新现有问题
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称issue_number(数字):要更新的问题编号title(可选字符串):新标题body(可选字符串):新的描述state(可选字符串):新状态(“打开”或“关闭”)labels(可选字符串[]):新标签assignees(可选字符串[]):新受让人milestone(可选数字):新的里程碑编号
返回:更新的问题详情
add_issue_comment
向问题添加评论
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称issue_number(数字):要评论的问题编号body(字符串):评论文本
返回:创建的评论详情
search_code
在 GitHub 存储库中搜索代码
输入:
q(字符串):使用 GitHub 代码搜索语法的搜索查询sort(可选字符串):排序字段(仅限“索引”)order(可选字符串):排序顺序('asc' 或 'desc')per_page(可选数字):每页结果数(最多 100 条)page(可选数字):页码
返回:带有存储库上下文的代码搜索结果
search_issues
搜索问题和拉取请求
输入:
q(字符串):使用 GitHub 问题搜索语法的搜索查询sort(可选字符串):排序字段(评论、反应、创建等)order(可选字符串):排序顺序('asc' 或 'desc')per_page(可选数字):每页结果数(最多 100 条)page(可选数字):页码
返回:问题和拉取请求搜索结果
search_users
搜索 GitHub 用户
输入:
q(字符串):使用 GitHub 用户搜索语法的搜索查询sort(可选字符串):排序字段(关注者、存储库、加入)order(可选字符串):排序顺序('asc' 或 'desc')per_page(可选数字):每页结果数(最多 100 条)page(可选数字):页码
返回:用户搜索结果
list_commits
获取存储库中分支的提交
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称page(可选字符串):页码per_page(可选字符串):每页记录数sha(可选字符串):分支名称
返回:提交列表
get_issue
获取存储库中问题的内容
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称issue_number(数字):要检索的问题编号
返回:Github Issue 对象和详细信息
get_issue_comments
获取问题或拉取请求的评论
输入:
owner(字符串):存储库所有者repo(字符串):存储库名称issue_number(数字):用于检索评论的问题/PR 编号
返回:包含评论 ID、正文、作者和时间戳的 GitHub 评论对象数组
Related MCP server: GitHub MCP Server
搜索查询语法
代码搜索
language:javascript:按编程语言搜索repo:owner/name:在特定存储库中搜索path:app/src:在特定路径中搜索extension:js:按文件扩展名搜索例如:
q: "import express" language:typescript path:src/
问题搜索
is:issue或is:pr:按类型过滤is:open或is:closed:按状态过滤label:bug:按标签搜索author:username:按作者搜索例如:
q: "memory leak" is:issue is:open label:bug
用户搜索
type:user或type:org:按帐户类型过滤followers:>1000:按关注者过滤location:London:按地点搜索例如:
q: "fullstack developer" location:London followers:>100
有关详细的搜索语法,请参阅GitHub 的搜索文档。
设置
个人访问令牌
转到个人访问令牌(在 GitHub 设置 > 开发人员设置中)
选择您希望此令牌可以访问的存储库(公共、全部或选择)
创建具有
repo范围的令牌(“完全控制私有存储库”)或者,如果仅使用公共存储库,则仅选择
public_repo范围
复制生成的token
与 Claude Desktop 一起使用
要将其与 Claude Desktop 一起使用,请将以下内容添加到您的claude_desktop_config.json中:
执照
此 MCP 服务器采用 MIT 许可证。这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。