github-code-rag-mcp
This server lets an AI agent search and learn from real GitHub repositories in real time, then reuse code and manage a local code index.
Search GitHub for repositories via the official API (
search_github) or an unlimited HTML fallback (web_search_github), sorted by stars and filterable by language/stars.Browse repository file structure with
list_github_filesto explore directories without cloning.Read file contents from any repo with
read_github_file, automatically attributing the source and indexing the code locally.Search previously read code using
search_codeto find reusable implementations across indexed files (filterable by repo).Check search history by category (
search_history) to see what projects were previously consulted and reuse the knowledge.Inspect the local index with
index_statusanddb_inspectto see what files/tables are stored.Manage the local database with
db_cleanup(stats, purge by category/repo, purge all, vacuum) to keep the index tidy.Follow a built-in methodology that encourages searching before coding, judging requirement clarity, and asking clarifying questions—preventing bad guesses and reinventing the wheel.
Provides tools for searching GitHub repositories, browsing repository files, reading file contents, and indexing code for full-text search, enabling code retrieval and reuse from GitHub.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@github-code-rag-mcp Search GitHub for examples of using SQLite FTS5 in Python"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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_filefetches 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.0at runtime; starts in < 1s.
Tools
Tool | Description |
| GitHub official API repo search, sorted by stars |
| GitHub official search page fallback, free unlimited quota |
| 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-ragEnvironment 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-rag2. 配置 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.jsonWindows 配置文件路径:
%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即可。
工具列表
工具 | 说明 |
| GitHub 官方 API 搜索仓库,按 star 排序 |
| GitHub 官方搜索页兜底,免费无限额度 |
| 读取仓库文件内容,自动标注来源 |
工作原理
┌───────────────────────────────────────────────────────────┐
│ 你的 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 toolsdb_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
Scored across 9 tools
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.
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.
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.
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
Related MCP Connectors
Repository knowledge graph MCP server for codebase understanding and debugging.
An MCP server that gives your AI access to the source code and docs of all public github repos
MCP server for static security analysis of Android source code
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceSelf-hosted MCP server for indexing and searching code repositories via hybrid search and deep code understanding.5 npm19MIT
- AlicenseNot gradedqualityDmaintenanceIntelligent code search MCP server with AST analysis, call graphs, dependency tracking, and semantic embeddings for developers.Apache 2.0
- AlicenseAqualityBmaintenanceMCP server for semantic code search with AST-aware chunking, hybrid vectors, and query syntax.121Apache 2.0
- FlicenseNot gradedqualityBmaintenanceMCP server for indexing source code from repositories into a Neo4j graph database and enabling Graph RAG-based search and traversal of functions via natural language queries.-