GitHub MCP Server
通过 GitHub API 实现与 GitHub 的交互,支持文件操作、仓库管理、高级搜索和问题跟踪,并提供全面的错误处理和自动分支创建功能。
Tools
create_or_update_file
Create or update a single file in a GitHub repository
search_repositories
Search for GitHub repositories
create_repository
Create a new GitHub repository in your account
get_file_contents
Get the contents of a file or directory from a GitHub repository
push_files
Push multiple files to a GitHub repository in a single commit
create_issue
Create a new issue in a GitHub repository
create_pull_request
Create a new pull request in a GitHub repository
fork_repository
Fork a GitHub repository to your account or specified organization
create_branch
Create a new branch in a GitHub repository
README
GitHub MCP 服务器
用于 GitHub API 的 MCP 服务器,支持文件操作、仓库管理、搜索功能等。
功能
- 自动分支创建: 在创建/更新文件或推送更改时,如果分支不存在,则自动创建分支
- 全面的错误处理: 针对常见问题提供清晰的错误消息
- Git 历史记录保留: 操作维护正确的 Git 历史记录,无需强制推送
- 批量操作: 支持单文件和多文件操作
- 高级搜索: 支持搜索代码、问题/PR 和用户
工具
-
create_or_update_file- 在仓库中创建或更新单个文件
- 输入:
owner(string): 仓库所有者(用户名或组织)repo(string): 仓库名称path(string): 创建/更新文件的路径content(string): 文件内容message(string): 提交消息branch(string): 在哪个分支中创建/更新文件sha(可选 string): 被替换文件的 SHA(用于更新)
- 返回: 文件内容和提交详情
-
push_files- 在单个提交中推送多个文件
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称branch(string): 推送到的分支files(array): 要推送的文件,每个文件都包含path和contentmessage(string): 提交消息
- 返回: 更新后的分支引用
-
search_repositories- 搜索 GitHub 仓库
- 输入:
query(string): 搜索查询page(可选 number): 分页的页码perPage(可选 number): 每页结果数(最多 100)
- 返回: 仓库搜索结果
-
create_repository- 创建一个新的 GitHub 仓库
- 输入:
name(string): 仓库名称description(可选 string): 仓库描述private(可选 boolean): 仓库是否应为私有autoInit(可选 boolean): 是否使用 README 初始化
- 返回: 创建的仓库详情
-
get_file_contents- 获取文件或目录的内容
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称path(string): 文件/目录的路径branch(可选 string): 从哪个分支获取内容
- 返回: 文件/目录内容
-
create_issue- 创建一个新的 issue
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称title(string): Issue 标题body(可选 string): Issue 描述assignees(可选 string[]): 要分配的用户名labels(可选 string[]): 要添加的标签milestone(可选 number): 里程碑编号
- 返回: 创建的 issue 详情
-
create_pull_request- 创建一个新的 pull request
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称title(string): PR 标题body(可选 string): PR 描述head(string): 包含更改的分支base(string): 合并到的分支draft(可选 boolean): 创建为草稿 PRmaintainer_can_modify(可选 boolean): 允许维护者编辑
- 返回: 创建的 pull request 详情
-
fork_repository- Fork 一个仓库
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称organization(可选 string): Fork 到的组织
- 返回: Fork 的仓库详情
-
create_branch- 创建一个新的分支
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称branch(string): 新分支的名称from_branch(可选 string): 源分支(默认为仓库默认分支)
- 返回: 创建的分支引用
-
list_issues- 列出和过滤仓库 issue
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称state(可选 string): 按状态过滤 ('open', 'closed', 'all')labels(可选 string[]): 按标签过滤sort(可选 string): 按 ('created', 'updated', 'comments') 排序direction(可选 string): 排序方向 ('asc', 'desc')since(可选 string): 按日期过滤 (ISO 8601 时间戳)page(可选 number): 页码per_page(可选 number): 每页结果数
- 返回: issue 详情数组
-
update_issue- 更新现有的 issue
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称issue_number(number): 要更新的 issue 编号title(可选 string): 新标题body(可选 string): 新描述state(可选 string): 新状态 ('open' 或 'closed')labels(可选 string[]): 新标签assignees(可选 string[]): 新受让人milestone(可选 number): 新里程碑编号
- 返回: 更新后的 issue 详情
-
add_issue_comment- 向 issue 添加评论
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称issue_number(number): 要评论的 issue 编号body(string): 评论文本
- 返回: 创建的评论详情
-
search_code- 搜索 GitHub 仓库中的代码
- 输入:
q(string): 使用 GitHub 代码搜索语法的搜索查询sort(可选 string): 排序字段 ('indexed' only)order(可选 string): 排序顺序 ('asc' 或 'desc')per_page(可选 number): 每页结果数(最多 100)page(可选 number): 页码
- 返回: 带有仓库上下文的代码搜索结果
-
search_issues- 搜索 issue 和 pull request
- 输入:
q(string): 使用 GitHub issue 搜索语法的搜索查询sort(可选 string): 排序字段 (comments, reactions, created, etc.)order(可选 string): 排序顺序 ('asc' 或 'desc')per_page(可选 number): 每页结果数(最多 100)page(可选 number): 页码
- 返回: issue 和 pull request 搜索结果
-
search_users- 搜索 GitHub 用户
- 输入:
q(string): 使用 GitHub 用户搜索语法的搜索查询sort(可选 string): 排序字段 (followers, repositories, joined)order(可选 string): 排序顺序 ('asc' 或 'desc')per_page(可选 number): 每页结果数(最多 100)page(可选 number): 页码
- 返回: 用户搜索结果
-
list_commits
- 获取仓库中某个分支的提交
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称page(可选 string): 页码per_page(可选 string): 每页记录数sha(可选 string): 分支名称
- 返回: 提交列表
get_issue
- 获取仓库中 issue 的内容
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称issue_number(number): 要检索的 issue 编号
- 返回: Github Issue 对象 & 详情
get_issue_comments
- 获取 issue 或 pull request 上的评论
- 输入:
owner(string): 仓库所有者repo(string): 仓库名称issue_number(number): 要检索评论的 Issue/PR 编号
- 返回: GitHub 评论对象数组,包含评论 ID、正文文本、作者和时间戳
搜索查询语法
代码搜索
language:javascript: 按编程语言搜索repo:owner/name: 在特定仓库中搜索path:app/src: 在特定路径中搜索extension:js: 按文件扩展名搜索- 示例:
q: "import express" language:typescript path:src/
Issues 搜索
is:issue或is:pr: 按类型过滤is:open或is:closed: 按状态过滤label:bug: 按标签搜索author:username: 按作者搜索- 示例:
q: "memory leak" is:issue is:open label:bug
Users 搜索
type:user或type:org: 按帐户类型过滤followers:>1000: 按关注者过滤location:London: 按位置搜索- 示例:
q: "fullstack developer" location:London followers:>100
有关详细的搜索语法,请参阅 GitHub 的搜索文档。
设置
个人访问令牌
- 转到 个人访问令牌(在 GitHub 设置 > 开发者设置中)
- 选择您希望此令牌访问的仓库(公共、全部或选择)
- 创建一个具有
repo范围(“完全控制私有仓库”)的令牌- 或者,如果仅使用公共仓库,则仅选择
public_repo范围
- 或者,如果仅使用公共仓库,则仅选择
- 复制生成的令牌
与 Claude Desktop 一起使用
要将其与 Claude Desktop 一起使用,请将以下内容添加到您的 claude_desktop_config.json 中:
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
许可证
此 MCP 服务器在 MIT 许可证下获得许可。 这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。 有关更多详细信息,请参阅项目存储库中的 LICENSE 文件。
推荐服务器
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
AIO-MCP Server
🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。
https://github.com/Streen9/react-mcp
react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。
Exa MCP Server
一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。
mcp-perplexity
Perplexity API 的 MCP 服务器。
MCP Web Research Server
一个模型上下文协议服务器,使 Claude 能够通过集成 Google 搜索、提取网页内容和捕获屏幕截图来进行网络研究。
PubMedSearch MCP Server
一个模型内容协议(Model Content Protocol)服务器,提供从 PubMed 数据库搜索和检索学术论文的工具。
mcp-codex-keeper
作为开发知识的守护者,为 AI 助手提供精心策划的最新文档和最佳实践访问权限。
Perplexity Deep Research MCP
一个服务器,它允许 AI 助手使用 Perplexity 的 sonar-deep-research 模型进行网络搜索,并提供引用支持。