mcpField
G
GitHub Hot Board

GitHub Hot Board

远程服务
github.com/JKWY01版本控制3今天更新
代码仓库

关于 GitHub Hot Board

GitHub Hot Board 提供 GitHub 热门与趋势仓库的只读排行榜,包含快照、排名变化和历史名次。它基于公开数据,为跟踪开源项目的用户提供榜单和结构化数据,也可通过 MCP 服务访问。

主要功能

  1. 01查看十种排行与趋势榜
  2. 02浏览周榜、月榜和总榜
  3. 03追踪仓库名次与 Star 历史
  4. 04搜索仓库并查看详情
  5. 05查看排名变化和里程碑候选

适用场景

  1. 01发现近期热门的开源仓库
  2. 02追踪仓库排名随时间的变化
  3. 03比较仓库的周度和月度趋势

MCP 相关

其无状态 Streamable HTTP MCP 服务提供只读工具,用于列出和获取榜单、排名变化、仓库详情、库内搜索及仓库历史。请求使用服务存储的数据,不消耗 GitHub 配额。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://git.vaiox.xyz/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

来自项目 README

GitHub 火线榜 · GitHub Hot Board

English

GitHub 排行榜 · 趋势榜 · 飙升榜(周榜 / 月榜 / 总榜 / 黑马 / 里程碑),中英文双语界面,每小时自动更新:https://git.vaiox.xyz

十个视角的 GitHub 开源热榜。数据只有公开数据一种来源,口径贴在每一页上,中英文双语,站点刷新每 60 秒一次。

本周飙升 Top 10 · 打开完整榜单 →

#项目累计 Star本周新增 Star
1cloudflare/security-audit-skill44.2k11.2k
2morluto/rea378.1k88.2k
3anthropics/claude-plugins-official44.3k4.3k
4ruvnet/ruflo79.0k3.3k
5stablyai/orca104.9k9.5k
6anomalyco/opencode221.0k6.8k
7cursor/plugins13.9k1.9k
8android/skills9.6k1.5k
9anthropics/knowledge-work-plugins32.6k2.6k
10heygen-com/hyperframes71.4k5.6k

本月飙升 Top 10 · 打开完整榜单 →

#项目累计 Star本月新增 Star
1debpalash/VoiceStudio84.8k48.3k
2heygen-com/hyperframes71.4k18.3k
3cloudflare/security-audit-skill44.2k20.6k
4paperclipai/paperclip106.9k25.5k
5anthropics/knowledge-work-plugins32.6k6.6k
6NVIDIA/OpenShell19.4k9.7k
7vectorize-io/hindsight53.4k28.1k
8mksglu/context-mode32.1k8.1k
9cursor/plugins13.9k5.3k
10NationalSecurityAgency/ghidra93.9k14.2k

累计 Star Top 10 · 打开完整榜单 →

#项目累计 Star新增
1codecrafters-io/build-your-own-x556.0k—
2sindresorhus/awesome524.1k—
3public-apis/public-apis491.9k—
4freeCodeCamp/freeCodeCamp457.9k—
5EbookFoundation/free-programming-books400.0k—
6openclaw/openclaw393.0k—
7morluto/rea378.1k—
8donnemartin/system-design-primer375.5k—
9nilbuild/developer-roadmap370.3k—
10jwasham/coding-interview-university363.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 API90 天新仓 Star 30–1500 区间,按斜率取前 100
7被忽视榜 · 活跃冷清Search API近 30 天持续 push、Star 100–800,升序
8黑红榜 · 争议指数Search API 衍生(Fork×2 + Issue)÷Star,候选池 = 总榜前 300 中 ≥3000 星者。结构化启发式,不是情感分析
9Fork 之王Search API累计 Fork 降序
10实时里程碑 · 破星直播Search API × 41k / 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。

部署

  1. 在 Neon 建个项目,拿 Pooled connection 连接串。
  2. Vercel 导入仓库,配四个环境变量(上表 + CRON_SECRET 自定义一个长随机串)。
  3. 仓库 Actions secrets 配 SYNC_URL(你的域名 /api/sync)和 CRON_SECRET,30 分钟一次的同步就转起来了。
  4. 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 命令已处理。

如何新增一个榜

  1. lib/boards.ts:写一个 getXxxData(),在 getBoardData 分发,BOARD_META 登记排行与排序语义。
  2. app/[lang]/dictionaries.ts:补 BoardCopy(名称 / 口径 / FAQ,中英都要)。
  3. 想有语言分面就在 BOARD_META 开 facets。
  4. 路由、导航、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 无官方关系,榜单仅为研究参考。

评论

支持 Markdown

第一次接触 MCP?

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

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