mcpField
G
Github MCP Server

Github MCP Server

本地服务
github.com/ParasSolanki版本控制586 周前更新

关于 Github MCP Server

Github MCP Server 是面向 LLM 的 GitHub API MCP 服务,适合需要在 MCP 客户端中搜索 GitHub 内容或读取议题与拉取请求的用户。它通过一组搜索、列表和详情工具覆盖代码托管协作中的常见查询。

主要功能

  1. 01搜索仓库、议题和提交
  2. 02搜索代码、用户、主题与标签
  3. 03列出仓库议题和拉取请求
  4. 04获取议题与拉取请求详情

适用场景

  1. 01按关键词查找 GitHub 仓库
  2. 02检索仓库代码或提交
  3. 03查看指定仓库的议题和拉取请求
  4. 04读取指定议题或拉取请求详情

MCP 相关

该 MCP 服务通过 GitHub REST API 向 MCP 客户端提供搜索、列表和详情查询工具。使用时需配置 GitHub Personal Access Token。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"github-mcp-server-parassolanki": {
"command": "npx",
"args": [
"-y",
"github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<GITHUB_PERSONAL_ACCESS_TOKEN>"
}
}
}
}
启动命令npx -y github-mcp-server
需要配置的环境变量
GITHUB_PERSONAL_ACCESS_TOKEN密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgithub-mcp-server

工具

还没有获取到工具列表

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

详细介绍

Github MCP 服务

用于 Github 的模型上下文协议服务。

通过 MCP 提供与 Github 的集成,让大模型能够与其交互。

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):排序顺序(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(字符串):用于搜索仓库的查询。
      • page(数字,默认值:1):分页页码。
      • per_page(数字,默认值:30,最大值:100):每页结果数量。
      • order(可选字符串,默认值:desc):排序顺序(asc 或 desc)。
      • sort(可选字符串,默认值:best match):排序字段(可以是:committer-date 或 author-date)。
  4. search_code:搜索仓库中的代码。

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

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

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

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

    • 必填输入:
      • owner (string):仓库所有者。
      • repo (string):仓库名称。
      • page (optional number, default: 1):分页页码。
      • per_page (optional number, default: 30, max: 100):每页结果数。
      • direction (optional string, default: desc):排序方向(asc 或 desc)。
      • sort (optional string, default: created):排序字段(可选值:created、comments 或 updated)。
      • since (optional string):获取指定时间之后最后更新的结果(ISO 8601 格式:YYYY-MM-DDTHH:MM:SSZ.)。
      • labels (optional string):以逗号分隔的标签名称。例如:bug,ui,@high。
      • milestone (optional string):里程碑编号。
      • assignee (optional string):受指派用户的名称(* 表示全部)。
      • creator (optional string):创建此议题的用户(* 表示全部)。
      • mentioned (optional string):在此议题中被提及的用户。
  9. get_issue:从仓库获取一个议题。

    • 必填输入:
      • owner (string):仓库所有者。
      • repo (string):仓库名称。
      • issue_number (number):议题编号。
  10. list_repositories_pull_requests:列出仓库的拉取请求。

    • 必填输入:
      • owner (string):仓库所有者。
      • repo (string):仓库名称。
      • page (optional number, default: 1):分页页码。
      • per_page (optional number, default: 30, max: 100):每页结果数。
      • direction (optional string, default: desc):排序方向(asc 或 desc)。
      • sort (optional string, default: created):排序字段(可选值:created、popularity、long-running 或 updated)。
      • head (optional string):按头部分支的用户或组织以及分支名称筛选拉取请求,格式为 user:ref-name 或 organization:ref-name(例如:github:new-script-format 或 octocat:test-branch)。
      • base (optional string):按基准分支名称筛选拉取请求。(例如:gh-pages)。
  11. get_pull_request:从仓库获取一个拉取请求。

    • 必填输入:
      • owner (string):仓库所有者。
      • repo (string):仓库名称。
      • pull_request_number (number):拉取请求编号。

使用示例

以下是一些可用于与 Github 交互的提示词示例:

  1. “modelcontextprotocol” → 执行 search_repositories 工具,查找提及 modelcontextprotocol 的仓库。
  2. “modelcontextprotocol servers 仓库中的第 739 个议题是什么?” → 执行 get_issue 工具,从 modelcontextprotocol servers 仓库获取第 739 个议题。
  3. “modelcontextprotocol servers 仓库中的第 717 个 PR 是什么?” → 执行 get_pull_request 工具,从 modelcontextprotocol servers 仓库获取第 717 个 PR。

开发

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

评论

支持 Markdown

第一次接触 MCP?

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

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