GitHub Hot Board
GitHub hot-repo leaderboards: snapshots, movers, rank history. Read-only JSON, hourly batches.
Should I use this
Quality & Safety
Findings (1)
- LOWin list_boards
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"github-hot-board": {
"url": "https://git.vaiox.xyz/api/mcp"
}
}
}Remote endpoints
https://git.vaiox.xyz/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢list_boards
The 10 leaderboards on GitHub Hot Board: what each ranks, its canonical page URL and its JSON API endpoint.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"site": {
"type": "string"
},
"boards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"metric": {
"type": "string"
},
"url": {
"type": "string"
},
"jsonApi": {
"type": "string"
}
},
"required": [
"slug",
"title",
"metric",
"url",
"jsonApi"
]
}
}
},
"required": [
"site",
"boards"
]
}🟢get_board(slug, language, limit)
Top-N rows of one leaderboard (rank, stars, forks, issues, language, description). Refreshes every ~6 hours; generatedAt is the batch stamp (fetch once per sync cycle).
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"enum": [
"overall",
"weekly",
"monthly",
"annual",
"rising",
"dark",
"overlooked",
"controversial",
"forks",
"milestone"
],
"description": "one of the 10 board slugs"
},
"language": {
"type": "string",
"description": "optional source-language facet; supported only for overall / weekly / monthly"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}
},
"required": [
"slug"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"language": {
"type": [
"string",
"null"
]
},
"generatedAt": {
"type": "string"
},
"batchSize": {
"type": "integer"
},
"source": {
"type": "string",
"description": "github-search | github-trending | github-search-fallback — which upstream produced this batch"
},
"degraded": {
"type": "boolean",
"description": "true = the official Trending scrape failed and a Search-based fallback methodology was served; cite with care (HTML pages show the same warning)"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rank": {
"type": "integer"
},
"fullName": {
"type": "string"
},
"htmlUrl": {
"type": "string"
},
"stars": {
"type": "integer"
},
"forks": {
"type": "integer"
},
"issues": {
"type": "integer"
},
"language": {
"type": [
"string",
"null"
]
},
"desc": {
"type": "string"
},
"pushedAt": {
"type": "string"
},
"gained": {
"type": "integer"
},
"sincePeriod": {
"type": "string"
},
"slope": {
"type": "number"
},
"score": {
"type": "number"
},
"milestoneTarget": {
"type": "integer"
}
},
"required": [
"rank",
"fullName",
"htmlUrl",
"stars",
"forks",
"issues",
"language"
]
}
}
},
"required": [
"slug",
"language",
"generatedAt",
"batchSize",
"source",
"degraded",
"items"
]
}🟢get_board_movers(slug, limit)
Repositories that genuinely moved rank on a board within the last 24 hours, from our own snapshot series (the same data as the on-site movers strip). Positive climb = went up.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"enum": [
"overall",
"weekly",
"monthly",
"annual",
"rising",
"dark",
"overlooked",
"controversial",
"forks",
"milestone"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10
}
},
"required": [
"slug"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"window": {
"type": "string"
},
"count": {
"type": "integer"
},
"movers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"repo": {
"type": "string"
},
"wasRank": {
"type": "integer"
},
"nowRank": {
"type": "integer"
},
"climb": {
"type": "integer"
},
"url": {
"type": "string"
}
},
"required": [
"repo",
"wasRank",
"nowRank",
"climb",
"url"
]
}
}
},
"required": [
"slug",
"window",
"count",
"movers"
]
}🟢get_repo(full, lg)
Library record for one repository: stars, forks, description in up to 16 UI languages (keys are locale codes), current overall-board rank if listed, pushedAt, and asOf freshness stamps. Served from our own dataset (no live GitHub API call); repos outside the library return not-in-library.
Input Schema
{
"type": "object",
"properties": {
"full": {
"type": "string",
"description": "owner/name, e.g. vercel/next.js"
},
"lg": {
"type": "string",
"enum": [
"en",
"zh",
"zh-TW",
"ja",
"ko",
"de",
"fr",
"es",
"pt",
"it",
"ru",
"uk",
"pl",
"tr",
"vi",
"id"
],
"description": "optional: also return descText in this UI language"
}
},
"required": [
"full"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"fullName": {
"type": "string"
},
"stars": {
"type": "integer"
},
"forks": {
"type": "integer"
},
"pushedAt": {
"type": "string"
},
"desc": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"overallRank": {
"type": "integer"
},
"asOf": {
"type": "string"
},
"source": {
"type": "string"
},
"descText": {
"type": "string"
}
},
"required": [
"fullName",
"asOf",
"source"
]
}🟢search_library(q, limit)
Search repositories tracked by this site, by owner/name (exact wins) or by keyword over descriptions (16 languages). Library-only: repos never listed on a board are not here. No live GitHub calls.
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "owner/name fragment or keyword"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"default": 10
}
},
"required": [
"q"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fullName": {
"type": "string"
},
"stars": {
"type": "integer"
},
"forks": {
"type": "integer"
},
"desc": {
"type": "string"
},
"overallRank": {
"type": "integer"
},
"url": {
"type": "string"
}
},
"required": [
"fullName",
"url"
]
}
}
},
"required": [
"query",
"count",
"results"
]
}🟢get_repo_history(full, board, days)
Time series of one repository on one board (default overall): rank + star points at our sync cadence (~6h) from our own snapshot series — denser than the daily archives others publish. Empty result means the repo was not tracked in the window.
Input Schema
{
"type": "object",
"properties": {
"full": {
"type": "string",
"description": "owner/name"
},
"board": {
"type": "string",
"enum": [
"overall",
"weekly",
"monthly",
"annual",
"rising",
"dark",
"overlooked",
"controversial",
"forks",
"milestone"
],
"default": "overall"
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"default": 7
}
},
"required": [
"full"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"fullName": {
"type": "string"
},
"board": {
"type": "string"
},
"days": {
"type": "integer"
},
"cadence": {
"type": "string"
},
"pointCount": {
"type": "integer"
},
"points": {
"type": "array",
"items": {
"type": "object",
"properties": {
"at": {
"type": "string"
},
"rank": {
"type": "integer"
},
"stars": {
"type": "integer"
}
},
"required": [
"at",
"rank",
"stars"
]
}
}
},
"required": [
"fullName",
"board",
"days",
"cadence",
"pointCount",
"points"
]
}Community
Evidence