mcpField
G
GitHub MCP Server

GitHub MCP Server

本地服务
github.com/Sami-07版本控制077 周前更新

关于 GitHub MCP Server

GitHub MCP Server 向 MCP 客户端提供 GitHub 账户、仓库、议题和提交状态操作。它同时提供可调用工具和基于 URI 的资源,并使用 GitHub token 进行访问。

主要功能

  1. 01获取用户和所有者信息
  2. 02列出仓库与关注者
  3. 03读取并创建仓库议题
  4. 04查询提交状态
  5. 05通过资源访问 GitHub 数据

适用场景

  1. 01查看用户公开资料和仓库
  2. 02列出仓库议题
  3. 03从 MCP 客户端创建议题
  4. 04检查提交状态

MCP 相关

通过工具和基于 URI 的资源向 MCP 客户端提供 GitHub 操作。需在 `.env` 文件中配置 GitHub token。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

GitHub MCP 服务

一个简单的自定义 MCP 服务,可通过各种工具和资源提供 GitHub 集成功能。

演示

https://github.com/user-attachments/assets/63b92a95-56f3-4290-9c73-acc4ad407246

功能

  • 获取用户信息和个人资料详情
  • 列出用户的仓库和关注者
  • 获取仓库议题
  • 创建新议题
  • 获取提交状态
  • 获取所有者信息
  • 基于资源访问 GitHub 数据

设置

  1. 安装依赖:
pip install -r requirements.txt
  1. 在项目根目录中创建 .env 文件,并添加你的 GitHub 令牌:
GITHUB_TOKEN=your_github_token_here

你可以在此处创建 GitHub 令牌:https://github.com/settings/personal-access-tokens,并授予以下权限:

  • repo(完全控制私有仓库)
  • read:user(读取用户个人资料数据)
  • user:follow(关注和取消关注用户)

可用工具

  • owner_info():获取已通过身份验证的 GitHub 用户信息
  • get_user_info(username):获取 GitHub 用户信息
  • list_followers(username, limit=10):列出 GitHub 用户的关注者
  • list_repositories(username, limit=5):列出 GitHub 用户的仓库
  • get_repo_issues(owner, repo, state="open"):获取仓库的议题
  • create_issue(owner, repo, title, body, labels=None):创建新议题
  • get_commit_statuses(owner, repo, sha):获取指定提交 SHA 的状态

可用资源

  • github://user/{username}:获取用户的 GitHub 个人资料
  • github://followers/{username}:列出用户的关注者
  • github://repos/{username}:列出用户的仓库
  • github://issues/{owner}/{repo}:获取仓库的议题
  • github://commit-status/{owner}/{repo}/{sha}:获取指定提交的状态

运行服务

python server.py

使用示例

# Get authenticated user information
user_info = owner_info()

# Get user information
user_info = get_user_info("octocat")

# List followers
followers = list_followers("octocat", limit=5)

# List repositories
repos = list_repositories("octocat", limit=3)

# Get repository issues
issues = get_repo_issues("octocat", "Hello-World")

# Create a new issue
new_issue = create_issue(
    "octocat",
    "Hello-World",
    "Bug Report",
    "Found a bug in the code",
    labels=["bug"]
)

# Get commit statuses
statuses = get_commit_statuses("octocat", "Hello-World", "abc123")

响应格式示例

用户信息
{
    "name": "The Octocat",
    "login": "octocat",
    "bio": "GitHub's mascot",
    "public_repos": 8,
    "followers": 1000,
    "following": 9
}
仓库信息
{
    "name": "Hello-World",
    "description": "My first repository",
    "stars": 100,
    "forks": 50,
    "language": "Python"
}
议题信息
{
    "number": 1,
    "title": "Bug Report",
    "state": "open",
    "created_at": "2024-05-04T14:35:40.784Z",
    "user": "octocat"
}

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。