Skip to main content
Glama
github-code-rag-mcp

github-code-rag-mcp

In One Sentence

An MCP server that lets your AI search GitHub repositories in real time. Writing auth? Search first. Writing middleware? Search first. Writing payment integration? Search first. Before AI writes any code, it finds the best projects on GitHub — no reinventing the wheel. Also includes a "requirements analysis Agent" methodology so AI researches before answering, no guessing.

Core Capabilities

  • Real-time GitHub repo search — sorted by stars, filterable by language and star count.

  • Read files from any repo — read_github_file fetches file content with automatic source attribution.

  • Dual-channel fallback — GitHub Search API first; auto-degrade to the official search page (free, unlimited) on rate limits.

  • Bonus: Requirements Analysis Agent — the system prompt hardcodes a workflow so AI judges requirement clarity, searches first, and asks one question at a time before concluding.

  • Zero git clone · 1 dependency — all via GitHub REST API; only mcp>=1.0 at runtime; starts in < 1s.

Tools

Tool

Description

search_github

GitHub official API repo search, sorted by stars

web_search_github

GitHub official search page fallback, free unlimited quota

read_github_file

Read file content from a repo, with source attribution

Development

git clone https://github.com/suyu-creator/github-code-rag-mcp.git
cd github-code-rag-mcp
uv sync
uv run --with pytest pytest
uv run github-code-rag

Environment variables:

GITHUB_TOKEN=ghp_xxx           # GitHub API Token (recommended)

参与贡献

  • 发现 Bug → 提 Issue

  • 有新想法 → 先开 Issue 讨论

  • 代码贡献 → Fork + PR

  • 觉得好用 → 点个 star,让更多人看到


Related MCP server: MCP Code Intelligence

中文


一句话介绍

一个让 AI 实时搜 GitHub 仓库的 MCP 服务器。 写认证?搜一下。写中间件?搜一下。写支付?搜一下。 AI 写每一行代码之前,先去 GitHub 找最好的项目参考,禁止从零造轮子。 还内置了一套「需求分析 Agent」方法论,让 AI 先调研再动手,不瞎猜。


核心能力

🔥 实时搜 GitHub 仓库 + 读代码

按 star 排序,优先挑最成熟的项目。支持按语言、star 数筛选(如 python stars:>1000)。 选定仓库后用 read_github_file 读关键文件,实现思路直接抄,来源自动标注。

用户:帮我找个 FastAPI 数据库连接的开源项目
    ↓
AI:search_github("fastapi sqlalchemy database stars:>1000")
    ↓
AI:我找到了这些高 star 项目:
  1. tiangolo/fastapi — Python | ⭐ 80000 | FastAPI framework
  2. sqlalchemy/sqlalchemy — Python | ⭐ 10000 | The Python SQL Toolkit
  ...
↓
AI:read_github_file("tiangolo/fastapi", "docs_src/sql_app/main.py")
    ↓
AI:我参考了 FastAPI 官方示例,给你写好了:

# Source: tiangolo/fastapi/docs_src/sql_app/main.py
from sqlalchemy import create_engine
...

🔄 GitHub API + 官方搜索页双路兜底,不怕限流

  • GitHub Search API:质量最高,按 star 排序(60 次/时免费,配 Token 5000 次/时)

  • GitHub 官方搜索页兜底:免费无限额度,限流自动降级

  • 零 git clone:全部走 REST API,不占本地磁盘

🧠 附赠:需求分析 Agent —— 先调研再动手

系统提示词硬编码了工作流,AI 不会上来就瞎写。 它会先判断需求是否明确,搜同类项目,基于真实项目反问你需求,确认清楚了才给结论。

⚡ 零 git clone · 仅 1 个依赖

  • 全部走 GitHub REST API,不需要 clone 仓库

  • 运行时只依赖 mcp>=1.0,其他全是 Python 标准库

  • 启动 < 1 秒,内存 < 50MB


快速开始

1. 安装

# 推荐:pipx 一键安装(隔离环境)
pipx install github-code-rag

# 或者 uv
uv tool install github-code-rag

# 或者 pip
pip install github-code-rag

2. 配置 Token(可选但推荐)

export GITHUB_TOKEN=ghp_your_token_here

没有 Token 也能用 —— 内置 GitHub 官方搜索页兜底,免费无限额度。 有 Token 的话 GitHub API 额度从 60 次/时 → 5000 次/时。

3. 配置到你的 AI 客户端

见下面的「客户端配置」章节。

4. 试试这个

装好后跟你的 AI 说:

"帮我找个 React 管理后台的开源项目,先去 GitHub 搜一下"

看看它会不会先搜 GitHub,再基于搜到的项目给你推荐。


客户端配置

以下配置均为 stdio 模式。配置完成后重启客户端即可使用。 不确定安装路径?运行 which github-code-rag(macOS/Linux)或 where github-code-rag(Windows)查看。

Claude Code

编辑 ~/.claude.json,添加:

{
  "mcpServers": {
    "github-code-rag": {
      "command": "github-code-rag",
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

Claude Desktop

打开设置 → Developer → Edit Config,添加:

{
  "mcpServers": {
    "github-code-rag": {
      "command": "github-code-rag"
    }
  }
}
  • macOS 配置文件路径:~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows 配置文件路径:%APPDATA%\Claude\claude_desktop_config.json

Cursor

项目级配置(仅当前项目):在项目根目录创建 .cursor/mcp.json:

{
  "mcpServers": {
    "github-code-rag": {
      "command": "github-code-rag"
    }
  }
}

全局配置:设置 → MCP → Add new server → Stdio → 填入 github-code-rag

Codex CLI

编辑 ~/.codex/config.toml,添加:

[mcp_servers.github-code-rag]
command = "github-code-rag"

所有支持 MCP 协议的客户端都能用。如果你用的客户端不在上面列表里,配置方式基本一样 —— 把 command 指向 github-code-rag 即可。


工具列表

工具

说明

search_github

GitHub 官方 API 搜索仓库,按 star 排序

web_search_github

GitHub 官方搜索页兜底,免费无限额度

read_github_file

读取仓库文件内容,自动标注来源


工作原理

┌───────────────────────────────────────────────────────────┐
│                    你的 AI 客户端                         │
│  (Claude Code / Cursor / Codex / Claude Desktop / ...)   │
└───────────────────────────┬───────────────────────────────┘
                            │ MCP protocol (stdio)
┌───────────────────────────▼───────────────────────────────┐
│                                                           │
│  ┌─────────────────────────────────────────────────┐     │
│  │  系统提示词(需求分析 Agent 方法论)             │     │
│  │    · 先判断需求清晰度 · 先搜再问                 │     │
│  └───────────────────────┬─────────────────────────┘     │
│                          │ 指导 AI 怎么用工具             │
│  ┌───────────────────────▼─────────────────────────┐     │
│  │  3 个 MCP 工具                                   │     │
│  │  search_github / web_search_github / read_file  │     │
│  └───────────┬───────────────────────────┬─────────┘     │
│              │                           │               │
│ ┌────────────▼───────────┐   ┌───────────▼──────────┐    │
│ │  GitHub Search API     │   │  GitHub 官方搜索页    │    │
│ │  按 star 排序           │   │  免费无限兜底         │    │
│ │  零 git clone          │   │                      │    │
│ └────────────────────────┘   └──────────────────────┘    │
│                                                           │
└───────────────────────────────────────────────────────────┘

项目结构

├── server/
│   ├── mcp_server.py          # MCP 服务器 + 系统提示词(3 个工具)
│   └── __main__.py
├── github/
│   └── connector.py           # GitHub API 封装(纯 urllib,零依赖)
├── core/
│   └── models.py              # 数据模型
├── tests/
│   └── test_search.py         # 两个搜索工具的测试
├── .well-known/mcp.json       # SSE 模式配置
└── pyproject.toml

开发

# 克隆
git clone https://github.com/suyu-creator/github-code-rag-mcp.git
cd github-code-rag-mcp

# 安装依赖
uv sync

# 运行测试
uv run --with pytest pytest

# 手动启动(stdio 模式)
uv run github-code-rag

环境变量:

GITHUB_TOKEN=ghp_xxx           # GitHub API Token(推荐)

FAQ

支持哪些 MCP 客户端?

所有支持 MCP 协议的 —— Claude Code、Claude Desktop、Cursor、Windsurf、Cline、Codex、Gemini CLI、OpenCode… 只要能配 MCP server 就能用。

我的代码会上传吗?

不会。本工具只做仓库搜索,GitHub API 只用来查询公开仓库元数据,你的代码不会发出去。

为什么不直接用 gh CLI?

因为 MCP 工具要对 AI 透明 —— AI 不需要知道你装了什么 CLI,它只需要调用工具就行。而且纯 Python 实现,零系统依赖。

GitHub API 限流了怎么办?

自动降级到 GitHub 官方搜索页,免费无限额度,不需要额外配置。


Available Tools

9 tools
db_cleanupA

整理数据库表,清理不需要的历史数据。

当 db_inspect 发现数据太多或过时了,用这个工具清理。

Args: action: 操作类型 - "stats" 查看各表数据量(默认) - "purge_category" 删除指定类别的搜索历史(需传 category) - "purge_repo" 删除指定仓库的所有数据(需传 repo,格式 owner/repo) - "purge_all" 清空所有数据(慎重!) - "vacuum" 压缩数据库,回收空间 repo: 仓库名,格式 "owner/repo",配合 action="purge_repo" 使用 category: 类别名,配合 action="purge_category" 使用

Inputs: repo, action, category. Returns: result

db_inspectA

查看数据库表结构和内容概况(所有表、字段、记录数、最近记录)。

想看当前索引了哪些数据时用这个。比 index_status 更详细,展示完整表结构。

Inputs: no named parameters. Returns: result

index_statusA

查看当前本地索引了哪些代码文件。

Inputs: no named parameters. Returns: result

list_github_filesA

浏览 GitHub 仓库的文件列表。

找到仓库后,用本工具看目录结构。找到文件后再用 read_github_file 读内容。 禁止用 gh CLI 或 curl 代替。

Args: url: 仓库 URL (来自 search_github 的结果,如 https://github.com/owner/repo) path: 子目录路径(留空看根目录)

Inputs: url (required), path. Returns: result

read_github_fileA

读取 GitHub 仓库中某个文件的内容。

读到的代码可以直接复用,需要在代码中标注来源。 文件内容会自动索引到本地,之后可用 search_code 搜索。

Args: url: 仓库 URL (如 https://github.com/owner/repo) path: 文件路径 (如 "src/main.py")

Inputs: url (required), path (required). Returns: result

search_codeA

在已读过的代码中搜索关键词。

写代码前先搜一下有没有现成的实现,有就直接复用,禁止从零编写。 只能搜到之前用 read_github_file 读过的文件。

Args: query: Search keywords repo: Optional filter by repository name top_k: Number of results (default: 5, max: 20)

Inputs: query (required), repo, top_k. Returns: result

search_githubA

在 GitHub 搜索仓库,返回仓库 URL。

这是搜索 GitHub 的唯一途径,禁止使用 gh CLI 或 curl。 找到仓库后,用 list_github_files 浏览文件,read_github_file 读代码。

Args: query: Search keywords (中文或英文均可) limit: Maximum results (default: 10, max: 30)

Inputs: query (required), limit. Returns: result

search_historyA

查询某个类别之前读过什么项目。

用户说"做个XX"时,第一步调本工具查历史记录。 有记录 → search_code 搜代码,无记录 → search_github 搜新仓库。

Args: category: Search category (e.g. "电商web", "点餐小程序")

Inputs: category (required). Returns: result

web_search_githubA

通过 GitHub 官方搜索页搜索开源项目(免费,无需 API Key,无限额度)。

当 search_github 限流时用这个替代。搜索 GitHub 上的仓库。 解析 github.com/search 的 HTML 结果页,不依赖第三方搜索引擎。

Args: query: 搜索关键词 (如 "电商网站 React") limit: 返回结果数 (default: 10, max: 20)

Inputs: query (required), limit. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 9 tools

    Disambiguation3/5

    Most tools have clear, distinct roles in the fetch-index-search workflow, but search_github and web_search_github both search for repositories and differ mainly in backend/fallback behavior, which can cause misselection. index_status and db_inspect also overlap as inspection tools, though descriptions clarify that db_inspect is more detailed.

    Naming Consistency4/5

    The majority of tools follow a clear verb_noun pattern: list_github_files, read_github_file, search_code, search_history, and search_github. A few outliers like db_inspect and db_cleanup put the object first, but the overall convention is still readable and predictable.

    Tool Count5/5

    Nine tools is well-scoped for a GitHub code retrieval and RAG workflow. Each tool covers a meaningful step in the pipeline—discovery, browsing, reading, indexing, searching, history lookup, and maintenance—without unnecessary bloat.

    Completeness4/5

    The tool surface covers the full workflow from GitHub repo discovery to file browsing, content reading, local indexing, code search, and database maintenance. Minor gaps exist, such as no direct GitHub-wide code search and some redundancy between search_github and web_search_github, but agents can complete the intended workflow without dead ends.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers