Token导航 LogoToken导航TokenDH.com
GitHub MCP Server Py logo
开发工具stdio官方级别未说明来源级核验

GitHub MCP Server Py

MCP Server

一个本地模型上下文协议(MCP)服务器,连接GitHub API并提供简单的工具,用于Claude Desktop或任何MCP客户端,支持获取GitHub用户信息、递归列出仓库文件、读取文件内容以及创建问题和拉取请求。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
版本控制PythonClaude开发工具Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

JAIS0N

提供方

JAIS0N

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run --project C:\Users\jaiso\PyProj\github-mcp-server-py mcp run main.py

详细介绍

GitHub MCP服务器

本地模型上下文协议(MCP)服务器,连接到GitHub API,并为Claude Desktop(或任何MCP客户端)公开简单工具。它可以获取GitHub用户信息,递归列出存储库文件,读取文件内容,创建问题和拉取请求。

此服务器可以做什么

暴露的工具

获取GitHub用户简介

  • 输入:GitHub用户名
  • 输出:用户个人信息字符串(或回退消息)

获取GitHub存储库文件树(递归)

  • 输入:所有者、存储库名称、起始路径(例如。 "" 根)
  • 输出:表示文件夹和文件的嵌套字典

从存储库获取文件内容

  • 输入:所有者、存储库名称、文件路径
  • 输出:原始文件内容(文本)

创建分支并打开拉取请求

  • 输入:仓库、基础分支、新分支名称、拉取请求标题/正文、可提交的可选文件
  • 输出:拉取请求URL或错误

创建GitHub问题

  • 输入:存储库、标题、正文、可选标签和受让人
  • 输出:问题URL或错误

项目结构

文件目的
main.pyMCP服务器入口点(此处定义了工具)
.env / .env.example环境变量(令牌)
pyproject.toml紫外线依赖性
uv.lock锁定文件(由uv生成)
README.md文件

需求

  • Windows、macOS或Linux
  • uv 安装
  • GitHub个人访问令牌(PAT)可作为 GITHUB_TOKEN

最小推荐范围:

  • 公共存储库:通常可以使用默认权限
  • 私有仓库:需要私有仓库访问权限
  • 创建问题和拉取请求:需要存储库写入权限

设置

1) 创建并配置GitHub令牌

在GitHub设置中创建GitHub个人访问令牌,然后创建 .env 项目根目录中的文件:

GITHUB_TOKEN=your_token_here

2) 使用uv添加依赖项

uv add "mcp[cli]" PyGithub python-dotenv requests
uv sync
PyGithub 提供 from github import Github, python-dotenv 负载 .env,以及 requests 被使用 get_file_content 工具。

在本地运行

uv run --project C:\Users\jaiso\PyProj\github-mcp-server-py mcp run main.py

Claude桌面配置

{
  "mcpServers": {
    "Github": {
      "command": "C:\\Users\\jaiso\\.local\\bin\\uv.EXE",
      "args": [
        "run",
        "--project",
        "C:\\Users\\jaiso\\PyProj\\github-mcp-server-py",
        "mcp",
        "run",
        "C:\\Users\\jaiso\\PyProj\\github-mcp-server-py\\main.py"
      ]
    }
  }
}
重要提示: 不要使用 --with mcp[cli] --它不包括 PyGithub 以及其他依赖关系。

使用示例

获取用户简介

  • username: JAIS0N
  • 返回bio字符串,或返回“No bio available”消息。

从根目录列出存储库文件

  • owner: JAIS0N
  • repo: netflix-clone-mern
  • path: "" (空字符串)
  • 返回文件夹和文件的嵌套字典。

读取文件

  • owner: JAIS0N
  • repo: netflix-clone-mern
  • path: README.md
  • 返回原始文本内容。

创建问题

  • repo_name: JAIS0N/netflix-clone-mern
  • title: Bug: Login page crashes
  • body:复制步骤。..
  • 返回问题URL。

创建分支并拉取请求

  • repo_name: JAIS0N/netflix-clone-mern
  • base_branch: main
  • new_branch: feature/readme-update
  • pr_title: Update README
  • files_to_commit:可选词典 { "README.md": "new content" }
  • 返回拉取请求URL。

注意事项和限制

文件读取中的默认分支假设

get_file_content 当前使用以下方式获取文件:

https://raw.githubusercontent.com/{owner}/{repo}/main/{path}

这假设默认分支为 main.使用的存储库 master 否则另一个分支将返回错误。

建议改进: 通过GitHub API获取存储库默认分支,并动态构建原始URL。

大型存储库

递归文件列表对于大型存储库来说可能很慢,并且可能会达到GitHub API的速率限制。

建议改进:

  • 添加可选深度限制
  • 添加分页和缓存
  • 使用GitHub Git Tree API以加快上市速度

故障排除

问题原因修复
Claude Desktop中的“服务器已断开连接”缺少依赖项,缺少 GITHUB_TOKEN中的权限不足或运行时错误 main.py使用 uv run --project ...;检查日志并从终端运行以进行全面追溯
“没有名为github的模块”PyGithub 未安装在活动环境中运行 uv add PyGithub && uv sync;确保Claude配置使用 --project
“获取文件时出错:404”原始URL分支错误、文件路径错误或文件不存在确认文件路径;更新 get_file_content 使用存储库的默认分支

安全

  • 永不承诺 .env 源代码控制。
  • 使用 .env.example 出于记录目的。
  • 对待 GITHUB_TOKEN 就像密码一样。

目录标签

目录标签

版本控制PythonClaude开发工具GitHubAPI集成本地部署MCP服务器

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP