返回市场
GitHub-MCP-服务器

GitHub-MCP-服务器

作者:ParasSolanki2 星标更新:2025-03-06

项目介绍

Github MCP Server

一个与Github集成的Model Context Protocol服务器。

通过MCP提供与Github的集成,允许LLMs与其交互。

Github REST API 文档

安装

手动安装

  1. 创建或获取你的Github账户访问令牌:指南

  2. 将服务器配置添加到Claude Desktop中:

    • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: 查看此指南
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "github-mcp-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your_personal_github_access_token"
      }
    }
  }
}

组件

工具

  1. search_repositories: 在GitHub中搜索仓库。

    • 必需输入:
      • query (字符串): 要搜索的仓库查询。
      • page (数字,默认: 30, 最大: 100): 分页的页码。
      • per_page (数字,默认: 30, 最大: 100): 每页的结果数量。
  2. search_issues: 从仓库中搜索问题。

    • 必需输入:
      • query (字符串): 要搜索的仓库查询。
      • page (数字,默认: 1): 分页的页码。
      • per_page (数字,默认: 30, 最大: 100): 每页的结果数量。
      • order (可选字符串,默认: desc): 排序顺序 (ascdesc)。
      • sort (可选字符串,默认: best match): 排序字段 (可以是以下之一: comments, reactions, reactions-+1, reactions--1, reactions-smile, reactions-thinking_face, reactions-heart, reactions-tada, interactions, createdupdated)。
  3. search_commits: 从仓库中搜索提交记录。

    • 必需输入:
      • query (字符串): 要搜索的仓库查询。
      • page (数字,默认: 1): 分页的页码。
      • per_page (数字,默认: 30, 最大: 100): 每页的结果数量。
      • order (可选字符串,默认: desc): 排序顺序 (ascdesc)。
      • sort (可选字符串,默认: best match): 排序字段 (可以是以下之一: committer-dateauthor-date)。
  4. search_code: 从仓库中搜索代码。

    • 必需输入:
      • query (字符串): 要搜索的仓库查询。
      • page (数字,默认: 1): 分页的页码。
      • per_page (数字,默认: 30, 最大: 100): 每页的结果数量。
  5. search_users: 从仓库中搜索用户。

    • 必需输入:
      • query (字符串): 要搜索的仓库查询。
      • page (数字,默认: 1): 分页的页码。
      • per_page (数字,默认: 30, 最大: 100): 每页的结果数量。
      • order (可选字符串,默认: desc): 排序顺序 (ascdesc)。
      • sort (可选字符串,默认: best match): 排序字段 (可以是以下之一: followers, repositoriesjoined)。
  6. search_topics: 搜索主题。

    • 必需输入:
      • query (字符串): 要搜索的仓库查询。
      • page (数字,默认: 1): 分页的页码。
      • per_page (数字,默认: 30, 最大: 100): 每页的结果数量。
  7. search_labels: 搜索仓库中的标签。

    • 必需输入:
      • query (字符串): 要搜索的仓库查询。
      • page (数字,默认: 1): 分页的页码。
      • per_page (数字,默认: 30, 最大: 100): 每页的结果数量。
      • order (可选字符串,默认: desc): 排序顺序 (ascdesc)。
      • sort (可选字符串,默认: best match): 排序字段 (可以是以下之一: createdupdated)。
  8. list_repositories_issues: 列出仓库中的问题。

    • 必需输入:
      • owner (字符串): 仓库的所有者。
      • repo (字符串): 仓库名称。
      • page (可选数字,默认: 1): 分页的页码。
      • per_page (可选数字,默认: 30, 最大: 100): 每页的结果数量。
      • direction (可选字符串,默认: desc): 排序方向 (ascdesc)。
      • sort (可选字符串,默认: created): 排序字段 (可以是以下之一: created, commentsupdated)。
      • since (可选字符串): 结果最后更新时间在给定时间之后 (ISO 8601 格式: YYYY-MM-DDTHH:MM:SSZ.)。
      • labels (可选字符串): 逗号分隔的标签名称。例如: bug,ui,@high。
      • milestone (可选字符串): 里程碑编号。
      • assignee (可选字符串): 分配人的用户名 (* 表示所有人)。
      • creator (可选字符串): 创建问题的用户 (* 表示所有人)。
      • mentioned (可选字符串): 在问题中提到的用户。
  9. get_issue: 获取仓库中的问题。

    • 必需输入:
      • owner (字符串): 仓库的所有者。
      • repo (字符串): 仓库名称。
      • issue_number (数字): 问题编号。
  10. list_repositories_pull_requests: 列出仓库中的拉取请求。

    • 必需输入:
      • owner (字符串): 仓库的所有者。
      • repo (字符串): 仓库名称。
      • page (可选数字,默认: 1): 分页的页码。
      • per_page (可选数字,默认: 30, 最大: 100): 每页的结果数量。
      • direction (可选字符串,默认: desc): 排序方向 (ascdesc)。
      • sort (可选字符串,默认: created): 排序字段 (可以是以下之一: created, popularity, long-runningupdated)。
      • head (可选字符串): 按头用户或头组织及分支名称过滤拉取请求,格式为 user:ref-name 或 organization:ref-name (例如: github:new-script-format 或 octocat:test-branch)。
      • base (可选字符串): 按基础分支名称过滤拉取请求 (例如: gh-pages)。
  11. get_pull_request: 获取仓库中的拉取请求。

    • 必需输入:
      • owner (字符串): 仓库的所有者。
      • repo (字符串): 仓库名称。
      • pull_request_number (数字): 拉取请求编号。

使用示例

一些你可以用来与Github交互的例子提示:

  1. "modelcontextprotocol" → 执行 search_repositories 工具以查找提及modelcontextprotocol的仓库。
  2. "What is the 739 issue on modelcontextprotocol servers repo" → 执行 get_issue 工具以查找modelcontextprotocol服务器仓库中的739号问题。
  3. "What is the 717 PR on modelcontextprotocol servers repo" → 执行 get_pull_request 工具以查找modelcontextprotocol服务器仓库中的717号拉取请求。

开发

  1. 安装依赖:
pnpm install
  1. .env中配置Github访问令牌:
GITHUB_PERSONAL_ACCESS_TOKEN=<your_personal_github_access_token>
  1. 使用watch本地运行:
pnpm dev
  1. 构建服务器:
pnpm build
  1. 使用inspector进行本地调试:
pnpm inspector