About GitHub Hot Board
GitHub Hot Board provides read-only leaderboards for popular and trending GitHub repositories, with snapshots, movers, and rank history. It serves public-data rankings and structured data for people tracking open-source projects, including through an MCP server.
Key features
- 01View ten ranking and trend boards
- 02Browse weekly, monthly, and all-time lists
- 03Track repository rank and star history
- 04Search repositories and inspect details
- 05See movers and milestone candidates
Use cases
- 01Discover recently popular open-source repositories
- 02Track a repository's ranking over time
- 03Compare weekly and monthly repository trends
MCP support
Its stateless Streamable HTTP MCP server exposes read-only tools for listing and retrieving boards, movers, repository details, library search, and repository history. Requests use the service's stored data and do not consume GitHub quota.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://git.vaiox.xyz/api/mcpclaude mcp add --transport http jkwy01-github-hot-board https://git.vaiox.xyz/api/mcp{"mcpServers":{"jkwy01-github-hot-board":{"type":"http","url":"https://git.vaiox.xyz/api/mcp"}}}Open in Cursor{"servers":{"jkwy01-github-hot-board":{"type":"http","url":"https://git.vaiox.xyz/api/mcp"}}}Open in VS Code{"mcpServers":{"jkwy01-github-hot-board":{"type":"http","url":"https://git.vaiox.xyz/api/mcp"}}}{"mcpServers":{"jkwy01-github-hot-board":{"serverUrl":"https://git.vaiox.xyz/api/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEGitHub 火线榜 · GitHub Hot Board
GitHub 排行榜 · 趋势榜 · 飙升榜(周榜 / 月榜 / 总榜 / 黑马 / 里程碑),中英文双语界面,每小时自动更新:https://git.vaiox.xyz
十个视角的 GitHub 开源热榜。数据只有公开数据一种来源,口径贴在每一页上,中英文双语,站点刷新每 60 秒一次。
本周飙升 Top 10 · 打开完整榜单 →
| # | 项目 | 累计 Star | 本周新增 Star |
|---|---|---|---|
| 1 | cloudflare/security-audit-skill | 44.2k | 11.2k |
| 2 | morluto/rea | 378.1k | 88.2k |
| 3 | anthropics/claude-plugins-official | 44.3k | 4.3k |
| 4 | ruvnet/ruflo | 79.0k | 3.3k |
| 5 | stablyai/orca | 104.9k | 9.5k |
| 6 | anomalyco/opencode | 221.0k | 6.8k |
| 7 | cursor/plugins | 13.9k | 1.9k |
| 8 | android/skills | 9.6k | 1.5k |
| 9 | anthropics/knowledge-work-plugins | 32.6k | 2.6k |
| 10 | heygen-com/hyperframes | 71.4k | 5.6k |
本月飙升 Top 10 · 打开完整榜单 →
| # | 项目 | 累计 Star | 本月新增 Star |
|---|---|---|---|
| 1 | debpalash/VoiceStudio | 84.8k | 48.3k |
| 2 | heygen-com/hyperframes | 71.4k | 18.3k |
| 3 | cloudflare/security-audit-skill | 44.2k | 20.6k |
| 4 | paperclipai/paperclip | 106.9k | 25.5k |
| 5 | anthropics/knowledge-work-plugins | 32.6k | 6.6k |
| 6 | NVIDIA/OpenShell | 19.4k | 9.7k |
| 7 | vectorize-io/hindsight | 53.4k | 28.1k |
| 8 | mksglu/context-mode | 32.1k | 8.1k |
| 9 | cursor/plugins | 13.9k | 5.3k |
| 10 | NationalSecurityAgency/ghidra | 93.9k | 14.2k |
累计 Star Top 10 · 打开完整榜单 →
| # | 项目 | 累计 Star | 新增 |
|---|---|---|---|
| 1 | codecrafters-io/build-your-own-x | 556.0k | — |
| 2 | sindresorhus/awesome | 524.1k | — |
| 3 | public-apis/public-apis | 491.9k | — |
| 4 | freeCodeCamp/freeCodeCamp | 457.9k | — |
| 5 | EbookFoundation/free-programming-books | 400.0k | — |
| 6 | openclaw/openclaw | 393.0k | — |
| 7 | morluto/rea | 378.1k | — |
| 8 | donnemartin/system-design-primer | 375.5k | — |
| 9 | nilbuild/developer-roadmap | 370.3k | — |
| 10 | jwasham/coding-interview-university | 363.3k | — |
先说三件不掺假的事:
- 不伪造数据。榜单页面写的是哪种口径,数出来就是哪种口径;口径失效时页面明示,不悄悄换数。
- 不碰付费数据。只用 GitHub Search API 和官方 trending 页,不需要任何特殊权限。
- 不装没有的历史。往日榜从 2026-10-18 起积累,之前的日期不提供。
十个榜
| # | 榜单 | 来源 | 口径 |
|---|---|---|---|
| 1 | 总榜 · 史上最强 | Search API | 累计 Star 降序(排除 fork) |
| 2 | 周榜 · 本周点火 | 官方 Trending 周页 | 官方顺序 + 官方标注的本周新增星数 |
| 3 | 月榜 · 本月风潮 | 官方 Trending 月页 | 同上,月窗口 |
| 4 | 年度新星榜 | Search API | 今年创建,按累计 Star 排 |
| 5 | 潜力榜 · 90 天斜率 | Search API | 近 90 天创建、星数前 300 的工作集内,按 星/天 均速 |
| 6 | 黑马榜 · 被雪藏候选 | Search API | 90 天新仓 Star 30–1500 区间,按斜率取前 100 |
| 7 | 被忽视榜 · 活跃冷清 | Search API | 近 30 天持续 push、Star 100–800,升序 |
| 8 | 黑红榜 · 争议指数 | Search API 衍生 | (Fork×2 + Issue)÷Star,候选池 = 总榜前 300 中 ≥3000 星者。结构化启发式,不是情感分析 |
| 9 | Fork 之王 | Search API | 累计 Fork 降序 |
| 10 | 实时里程碑 · 破星直播 | Search API × 4 | 1k / 10k / 50k / 100k 阈值 ±80 星的冲刺者,前端 60 秒轮询,跨线撒彩带 |
总榜、周榜、月榜有语言分榜(javascript / typescript / python / go / rust / java / c / c++),URL 形如 /zh/boards/weekly/python。c++ 在路径里写成 /cpp,因为 + 进路径段会在路由匹配层直接死掉——查询时仍用 GitHub 原生语言名,旧链接由 proxy.ts 在路由前 308 归一。
站点语言(16 种)
/en /zh /zh-TW /ja /ko /de /fr /es /pt /it /ru /uk /pl /tr /vi /id,根路径默认进英文(带 Accept-Language 时按浏览器语言挑)。全部 UI 文案逐语种成套(app/[lang]/dict/),SEO 每页带全语 hreflang + canonical,sitemap 覆盖 16 语 × 全榜。
行描述与抽屉 README 按站点语言取仓库自身的本地化版本(切换器解析 + 命名候选两级),读不到就诚实回退仓库原文。描述缓存在 repo_desc 表(仓库粒度),两条填充通道:浏览行为驱动(访客打开哪个语言就近补上,60 秒轮询自动送达)与同步期主动收割(每轮同步尾部按热度序扫描全部榜头仓库,一次拿齐 15 种语言,探测结论 30 天免重试;站点读取路径依旧只查库)。
The site ships in 16 languages (default English). UI copy is fully translated per locale; row descriptions and the in-drawer README follow the repo's own localized files when available, falling back to the original text. Descriptions are cached per repo (
repo_desc) and filled two ways — on demand by visitors, and proactively at the tail of every sync run (one sweep per repo covers all 15 locales; resolved probes are skipped for 30 days). The serving path always reads from the database only.
数据架构
一句话:卖货的通道不进货。
GitHub ──(只有同步任务碰)──> Postgres(Neon 或自托管)──(站点只 SELECT)──> 访客
- 同步任务(
lib/sync.ts)顺序抓全部 34 个键(10 榜 + 语言分面),写两张表:board_head:每个键的最新一拍,站点读它。插新的,前拍自然被覆盖。board_snapshots:逐仓逐名次的明细行,本次同步是历史事实的存档。
- 触发方式:
npm run sync(本地,需站点在跑)、POST /api/sync(带 CRON_SECRET)、 GitHub Actions 每 30 分钟一轮(.github/workflows/sync.yml)。 - 站点渲染路径对 GitHub 零请求。降级链:数据库 → 磁盘快照(本地
.data/,重建时不打 GitHub)→ 现场拉取。同步停太久时数据会旧,但不会假。 - Trending 页被风控挡住时,周榜/月榜内部自行换到 Search 口径补命,页面上如实标注,不糊弄。
往日榜
每次同步把完整榜单拍进 board_snapshots,所以任意一天切任意名字都能回看:
/zh/history/overall/2026-10-19
入口在 footer(往日榜 → 总榜)。历史拍只存排名、仓库和数字,不存实时简介;数据保留 SNAPSHOT_RETENTION_DAYS(默认 60 天)。页面 noindex,属工具页,不在 sitemap 里占道。
本地跑起来
npm install
cp .env.example .env.local
# 填 GITHUB_TOKEN / NEXT_PUBLIC_SITE_URL / DATABASE_URL(见下表)
npm run dev
| 环境变量 | 必填? | 说明 |
|---|---|---|
GITHUB_TOKENS | 可选 | 多账号池:GITHUB_TOKENS=ghp_a,ghp_b,ghp_c(逗号/空白分隔),一枚烧完自动换下一枚,取数节奏随池子规模等比放宽;不填则回落单枚 GITHUB_TOKEN,都没有走匿名降速 |
GITHUB_TOKEN | 建议填 | classic PAT(不勾任何权限)或多枚时令其作为单枚兜底。Search API 从 60 次/时升到 5000 次/时 |
NEXT_PUBLIC_SITE_URL | 部署时填 | canonical / sitemap / OG 用的最终域名 |
DATABASE_URL | 部署时填 | Neon Postgres 连接串。表首次写入时自动建 |
CRON_SECRET | 部署必填 | /api/sync /api/snapshot /api/refresh /api/dbcheck 的门锁,只认 Authorization: Bearer <secret> 头(常数时间比较;不再支持 ?secret= query,密钥不该进访问日志)。不配置时这些端点仅本地回环可用——公网部署务必配上;?only=榜名 单榜重灌、?boards=0 只跑描述收割照旧 |
本地调试开关:GHB_FILL_DEBUG=1 看读路(数据库命中还是水合),GHB_SQL_DEBUG=1 看发往库的 SQL。
部署
- 在 Neon 建个项目,拿 Pooled connection 连接串。
- Vercel 导入仓库,配四个环境变量(上表 +
CRON_SECRET自定义一个长随机串)。 - 仓库 Actions secrets 配
SYNC_URL(你的域名/api/sync)和CRON_SECRET,30 分钟一次的同步就转起来了。 https://域名/robots.txt里已有 sitemap 指向;搜索引擎控制台提交一次即可。
自托管也成立(本项目生产即此形态):npm run build && npm run start,数据面只要求能连上 Postgres——Neon 托管或自建实例(Docker/1Panel 等)均可,对 Host/Vercel 无偏好。自建库建议配每日 pg_dump 滚动备份,参考 scripts/ghb-backup.sh(每日一备、保留最近 7 份,cron 挂机即可)。
诊断与运维
npm run sync # 本地手动拉一轮(30 榜,~4 分钟,一次重试)
curl -H "Authorization: Bearer $CRON_SECRET" https://域名/api/dbcheck # 库状态:head 键数、明细行数
gh run watch # 看 Actions 同步跑完没有
同步是顺序慢跑(为控边界与限流),一轮约 4 分钟;30 分钟一次绰绰有余。明细行过 60 天自动清,board_head 只留最新,不需要人手干预。
徽章 · 状态页 · 跨线提醒
- 上榜徽章:
https://域名/api/badge/{owner}/{repo}.svg—— shields 风格三态(现役名次 / 曾上榜 / 未上榜),档案页有现成的 Markdown 嵌入代码,作者贴进 README 即回链档案页。 - 数据健康页:
/{lang}/status(footer 入口)—— 34 个键各自的来源、新鲜度、降级状态,与站点读路径同一张表,不涂脂抹粉。 - 跨线提醒(可选):配置
VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY后,关注页出现"跨线提醒"开关 —— 无账号 Web Push,关注的仓库向上跨过 1k/10k/50k/100k 时推送;未配置则整条链路静默不存在。订阅只存推送端点与关注列表,退订即刻删除。
市场分析(可选,与站点无关)
站点只服务榜单本身;历史维度的深挖走独立脚本 scripts/market.mjs,数据来自 GH Archive 公共镜像(约 10% 抽样,看形状用):
node scripts/market.mjs repo vercel/next.js --days 60 # 单仓库爆发日/拐点(自动兼容改名)
node scripts/market.mjs track agent --months 12 # 赛道趋势(新星数/活跃仓库数)
node scripts/market.mjs risers --days 30 --limit 15 # 涨星火箭榜
顺带一个探明的平台事实(2026-10):GitHub 已把 REST stargazers/subscribers 明细端点平台级撤下,逐星时间线只存在于事件归档里。仓库改名后归档仍按旧名存,查询需新旧名都算——repo 命令已处理。
如何新增一个榜
lib/boards.ts:写一个getXxxData(),在getBoardData分发,BOARD_META登记排行与排序语义。app/[lang]/dictionaries.ts:补BoardCopy(名称 / 口径 / FAQ,中英都要)。- 想有语言分面就在
BOARD_META开facets。 - 路由、导航、footer、sitemap 随
BOARD_ORDER自动生效,不手改。
MCP server(agent-native 数据口)
榜单数据以 MCP 协议直供 agent,不依赖爬虫路径:
- URL:
https://git.vaiox.xyz/api/mcp(Streamable HTTP,无状态 JSON,最新 protocolVersion 2026-07-28,老客户端自动降档) - 工具(只读 + 结构化输出):
list_boards/get_board/get_board_movers/get_repo/search_library(库内关键词搜索)/get_repo_history(仓库级小时名次 + 星数时间线,自有无一物快照序列独供,别的服务拿不出这份数) - 全部零 GitHub 配额消耗;限流 60 次/分钟/IP;数据一小时一拍,别连点
- 接入示例:Claude Code
claude mcp add --transport http github-hot-board https://git.vaiox.xyz/api/mcp
已知限制,如实说
- Trending 数字在缓存期内(同步后 ≤30 分钟)可能与官方页面存在偏差。
- Search API 单查询 1000 条上限;总榜展示 Top 500,头部故事全覆盖。
- 潜力榜(90 天斜率)的候选池先按星数取 90 天新仓的前 300 名,再按斜率重排——Search API 工作集内的排序,不是全量扫描;斜率本身也天然偏爱更年轻的仓库。
- 黑红榜的候选池是总榜(前 300)中 ≥3000 星的仓库,即"明星仓内部"的争议对比;
open_issues口径含 PR(GitHub 字段如此,页面已明示)。请勿读成"情感评分"。 - 黑马榜按斜率取前 100(页面口径文案同此)。
- 里程碑跨线检测发生在页面停留期间,服务器不留历史状态;想看"历史上谁跨过 1k",等往日榜攒几天再回看。
- 往日榜当前只存基准口径(全语言),语言分面的历史拍在库里,页面上还没有入口。
- 本项目与 GitHub 无官方关系,榜单仅为研究参考。
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.