弃用通知: 该项目的开发已移至 GitHub 的 http://github.com/github/github-mcp-server 仓库。
GitHub API 的 MCP 服务器,支持文件操作、仓库管理、搜索功能等。
create_or_update_file
owner
(字符串):仓库所有者(用户名或组织)repo
(字符串):仓库名称path
(字符串):创建/更新文件的路径content
(字符串):文件内容message
(字符串):提交信息branch
(字符串):创建/更新文件的分支sha
(可选字符串):被替换文件的 SHA(用于更新)push_files
owner
(字符串):仓库所有者repo
(字符串):仓库名称branch
(字符串):推送到的分支files
(数组):要推送的文件,每个文件包含 path
和 content
message
(字符串):提交信息search_repositories
query
(字符串):搜索查询page
(可选数字):分页的页码perPage
(可选数字):每页结果数(最多 100)create_repository
name
(字符串):仓库名称description
(可选字符串):仓库描述private
(可选布尔值):仓库是否私有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
(可选布尔值):是否创建为草稿 PRmaintainer_can_modify
(可选布尔值):是否允许维护者编辑fork_repository
owner
(字符串):仓库所有者repo
(字符串):仓库名称organization
(可选字符串):要分叉到的组织create_branch
owner
(字符串):仓库所有者repo
(字符串):仓库名称branch
(字符串):新分支的名称from_branch
(可选字符串):源分支(默认为仓库默认分支)list_issues
owner
(字符串):仓库所有者repo
(字符串):仓库名称state
(可选字符串):按状态过滤('open', 'closed', 'all')labels
(可选字符串数组):按标签过滤sort
(可选字符串):按排序('created', 'updated', 'comments')direction
(可选字符串):排序方向('asc', 'desc')since
(可选字符串):按日期过滤(ISO 8601 时间戳)page
(可选数字):页码per_page
(可选数字):每页结果数update_issue
owner
(字符串):仓库所有者repo
(字符串):仓库名称issue_number
(数字):要更新的问题编号title
(可选字符串):新标题body
(可选字符串):新描述state
(可选字符串):新状态('open' 或 'closed')labels
(可选字符串数组):新标签assignees
(可选字符串数组):新分配者milestone
(可选数字):新里程碑编号add_issue_comment
owner
(字符串):仓库所有者repo
(字符串):仓库名称issue_number
(数字):要评论的问题编号body
(字符串):评论文本search_code
q
(字符串):使用 GitHub 代码搜索语法的搜索查询sort
(可选字符串):排序字段(仅 'indexed')order
(可选字符串):排序顺序('asc' 或 'desc')per_page
(可选数字):每页结果数(最多 100)page
(可选数字):页码search_issues
q
(字符串):使用 GitHub 问题搜索语法的搜索查询sort
(可选字符串):排序字段(评论、反应、创建时间等)order
(可选字符串):排序顺序('asc' 或 'desc')per_page
(可选数字):每页结果数(最多 100)page
(可选数字):页码search_users
q
(字符串):使用 GitHub 用户搜索语法的搜索查询sort
(可选字符串):排序字段(关注者、仓库、加入时间)list_commits
owner
(string): 代码库所有者repo
(string): 代码库名称page
(可选 string): 页码per_page
(可选 string): 每页记录数sha
(可选 string): 分支名称get_issue
owner
(string): 代码库所有者repo
(string): 代码库名称issue_number
(number): 要检索的 issue 编号get_pull_request
owner
(string): 代码库所有者repo
(string): 代码库名称pull_number
(number): pull request 编号list_pull_requests
owner
(string): 代码库所有者repo
(string): 代码库名称state
(可选 string): 按状态筛选 ('open', 'closed', 'all')head
(可选 string): 按 head 用户/组织和分支筛选base
(可选 string): 按 base 分支筛选sort
(可选 string): 按排序 ('created', 'updated', 'popularity', 'long-running')direction
(可选 string): 排序方向 ('asc', 'desc')per_page
(可选 number): 每页结果数 (最大 100)page
(可选 number): 页码create_pull_request_review
owner
(string): 代码库所有者repo
(string): 代码库名称pull_number
(number): 拉取请求编号body
(string): 评审评论文本event
(string): 评审操作 ('APPROVE', 'REQUEST_CHANGES', 'COMMENT')commit_id
(optional string): 待评审提交的 SHA 值comments
(optional array): 行内评论,每个评论包含:
path
(string): 文件路径position
(number): diff 中的行号body
(string): 评论文本merge_pull_request
owner
(string): 代码库所有者repo
(string): 代码库名称pull_number
(number): 拉取请求编号commit_title
(optional string): 合并提交的标题commit_message
(optional string): 合并提交的额外信息merge_method
(optional string): 合并方法 ('merge', 'squash', 'rebase')get_pull_request_files
owner
(string): 代码库所有者repo
(string): 代码库名称pull_number
(number): 拉取请求编号get_pull_request_status
owner
(string): 代码库所有者repo
(string): 代码库名称pull_number
(number): 拉取请求编号update_pull_request_branch
owner
(string): 仓库所有者repo
(string): 仓库名称pull_number
(number): 拉取请求编号expected_head_sha
(optional string): 拉取请求 HEAD ref 的预期 SHA 值get_pull_request_comments
owner
(string): 仓库所有者repo
(string): 仓库名称pull_number
(number): 拉取请求编号get_pull_request_reviews
owner
(string): 仓库所有者repo
(string): 仓库名称pull_number
(number): 拉取请求编号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
权限要在 Claude Desktop 中使用此功能,请将以下内容添加到您的 claude_desktop_config.json
文件中:
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"mcp/github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}

{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}

快速安装,请使用以下任一键:
手动安装:在 VS Code 的用户设置 (JSON) 文件中添加以下 JSON 代码块。您可以按 Ctrl + Shift + P
并输入 Preferences: Open User Settings (JSON)
来完成此操作。
或者,您可以将其添加到工作区中的 .vscode/mcp.json
文件。这允许您与他人共享配置。
请注意,
.vscode/mcp.json
文件中不需要mcp
键。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub 个人访问令牌",
"password": true
}
],
"servers": {
"github": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp/github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
}

{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub 个人访问令牌",
"password": true
}
],
"servers": {
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
}

Docker 构建:
docker build -t mcp/github -f src/github/Dockerfile .
此 MCP 服务器采用 MIT 许可证授权。这意味着您可以自由使用、修改和分发此软件,但须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。