GitHub集成服务器

一个简单的自定义MCP服务器,通过多种工具和资源提供GitHub集成功能,适用于开发者管理和访问GitHub数据。

  • by Sami-07
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sami-07/custom-github-mcp-server

使用说明

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"
}