Github MCP服务器

通过MCP协议与Github集成,使LLM能够与Github交互的服务。

  • by ParasSolanki
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 ParasSolanki/github-mcp-server

使用说明

Github MCP服务器

A. 模型上下文协议 Github服务器。

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

Github REST Api文档

安装

手动安装

  1. 为您的Github帐户创建或获取访问令牌: 指南

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

    • MacOS:~/库/应用程序支持/Claude/Claude_desktop_config json
    • 窗户: 查看本指南
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "github-mcp-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your_personal_github_access_token"
      }
    }
  }
}

组件

工具

  1. search_repositories:在GitHub上搜索存储库。

    • 所需输入:
      • query (string):用于搜索存储库的查询。
      • page (数字,默认值:30,最大值:100):分页页码。
      • per_page (数字,默认值:30,最大值:100):每页的结果数。
  2. search_issues:从存储库中搜索问题。

    • 所需输入:
      • query (string):用于搜索存储库的查询。
      • page (数字,默认值:1):分页页码。
      • per_page (数字,默认值:30,最大值:100):每页的结果数。
      • order (可选字符串,默认值: desc):排序(asc 或 desc).
      • sort (可选字符串,默认值: best match):排序字段(可以是以下字段之一: comments, reactions, reactions-+1, reactions--1, reactions-smile, reactions-thinking_face, reactions-heart, reactions-tada, interactions, created 或 updated).
  3. search_commits:从存储库中搜索提交。

    • 所需输入:
      • query (string):用于搜索存储库的查询。
      • page (数字,默认值:1):分页页码。
      • per_page (数字,默认值:30,最大值:100):每页的结果数。
      • order (可选字符串,默认值: desc):排序(asc 或 desc).
      • sort (可选字符串,默认值: best match):排序字段(可以是以下字段之一: committer-date 或 author-date).
  4. search_code:从存储库中搜索代码。

    • 所需输入:
      • query (string):用于搜索存储库的查询。
      • page (数字,默认值:1):分页页码。
      • per_page (数字,默认值:30,最大值:100):每页的结果数。
  5. search_users:从存储库中搜索用户。

    • 所需输入:
      • query (string):用于搜索存储库的查询。
      • page (数字,默认值:1):分页页码。
      • per_page (数字,默认值:30,最大值:100):每页的结果数。
      • order (可选字符串,默认值: desc):排序(asc 或 desc).
      • sort (可选字符串,默认值: best match):排序字段(可以是以下字段之一: followers, repositories 或 joined).
  6. search_topics:搜索主题。

    • 所需输入:
      • query (string):用于搜索存储库的查询。
      • page (数字,默认值:1):分页页码。
      • per_page (数字,默认值:30,最大值:100):每页的结果数。
  7. search_labels:在存储库中搜索标签。

    • 所需输入:
      • query (string):用于搜索存储库的查询。
      • page (数字,默认值:1):分页页码。
      • per_page (数字,默认值:30,最大值:100):每页的结果数。
      • order (可选字符串,默认值: desc):排序(asc 或 desc).
      • sort (可选字符串,默认值: best match):排序字段(可以是以下字段之一: created 或 updated).
  8. list_repositories_issues:列出存储库中的问题。

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

    • 所需输入:
      • owner (string):存储库的所有者。
      • repo (string):存储库名称。
      • issue_number (number):发行号。
  10. list_repositories_pull_requests:列出来自存储库的拉取请求。

    • 所需输入:
      • owner (string):存储库的所有者。
      • repo (string):存储库名称。
      • page (可选编号,默认值:1):分页页码。
      • per_page (可选数字,默认值:30,最大值:100):每页的结果数。
      • direction (可选字符串,默认值: desc):排序方向(asc 或 desc).
      • sort (可选字符串,默认值: created):排序字段(可以是以下字段之一: created, popularity, long-running 或 updated).
      • head (可选字符串):过滤器以user:ref name或organization:ref name的格式按头部用户或头部组织和分支名称进行拉取(例如:github:新脚本格式或octocat:测试分支)。
      • base (可选字符串):按基分支名称过滤拉取。(例如:gh页面)。
  11. get_pull_request:从存储库获取拉取请求。

    • 所需输入:
      • owner (string):存储库的所有者。
      • repo (string):存储库名称。
      • pull_request_number (number):拉取请求编号。

使用示例

您可以使用以下示例提示与Github进行交互:

  1. “模型上下文协议”→ 执行 search_repositories 用于查找提到modelcontextprotocol的存储库的工具。
  2. “模型上下文协议服务器仓库上的739问题是什么?”→ 执行 get_issue 该工具从modelcontextprotocol服务器仓库中查找739个问题。
  3. “modelcontextprotocol服务器仓库上的717 PR是什么?”→ 执行 get_pull_request 该工具用于从modelcontextprotocol服务器仓库中查找717 PR。

发展

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