RepoTrending
Read-only GitHub trending data: top repos by stars gained today, this week or this month.
Should I use this
Quality & Safety
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": {
"repotrending": {
"url": "https://mcp.repotrending.com/mcp"
}
}
}Remote endpoints
https://mcp.repotrending.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢get_trending(window, language, topic, limit)
Top GitHub repos by stars gained today (last 24 hours), this week (7 days) or this month (30 days), or by total stars (window "all"). Optional language or topic filter. Use list_filters for valid names.
Input Schema
{
"type": "object",
"properties": {
"window": {
"type": "string",
"enum": [
"today",
"week",
"month",
"all"
],
"default": "week",
"description": "today = last 24 hours, week = 7 days, month = 30 days, all = total stars."
},
"language": {
"type": "string",
"maxLength": 30,
"description": "Programming language, for example \"Rust\"."
},
"topic": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,40}$",
"description": "GitHub topic, for example \"mcp\"."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"default": 10,
"description": "How many repos to return (1 to 25)."
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"data_date": {
"type": "string",
"description": "Day of the latest snapshot, YYYY-MM-DD."
},
"collecting_since": {
"type": "string",
"description": "First day of collected data, YYYY-MM-DD."
},
"source": {
"type": "string"
},
"method_url": {
"type": "string",
"description": "Page that explains how the numbers are made."
},
"window": {
"type": "string"
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"topic": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"window_status": {
"type": "object",
"properties": {
"ready": {
"type": "boolean"
},
"ready_on": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"days_collected": {
"type": "integer"
},
"days_needed": {
"type": "integer"
}
},
"required": [
"ready",
"ready_on",
"days_collected",
"days_needed"
]
},
"repos_in_filter": {
"type": "integer"
},
"count": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"note": {
"type": "string"
},
"text_note": {
"type": "string"
},
"repos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rank": {
"type": "integer"
},
"repo": {
"type": "string"
},
"url": {
"type": "string"
},
"stars": {
"type": "integer"
},
"stars_gained": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"partial": {
"type": "boolean"
},
"language": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"rank",
"repo",
"url",
"stars",
"stars_gained",
"partial",
"language",
"description"
]
}
}
},
"required": [
"data_date",
"collecting_since",
"source",
"method_url",
"window",
"language",
"topic",
"window_status",
"repos_in_filter",
"count",
"truncated",
"note",
"text_note",
"repos"
]
}🟢get_repo(repo)
Details of one tracked repo by owner/name: stars, forks, language, license, topics, star counts of the last days, gains and ranks per window.
Input Schema
{
"type": "object",
"properties": {
"repo": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,100}/[A-Za-z0-9_.-]{1,100}$",
"minLength": 3,
"maxLength": 201,
"description": "Repo as owner/name."
}
},
"required": [
"repo"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"data_date": {
"type": "string",
"description": "Day of the latest snapshot, YYYY-MM-DD."
},
"collecting_since": {
"type": "string",
"description": "First day of collected data, YYYY-MM-DD."
},
"source": {
"type": "string"
},
"method_url": {
"type": "string",
"description": "Page that explains how the numbers are made."
},
"repo": {
"type": "string"
},
"url": {
"type": "string"
},
"github_url": {
"type": "string"
},
"description": {
"type": "string"
},
"language": {
"type": "string"
},
"license": {
"type": "string"
},
"topics": {
"type": "array",
"items": {
"type": "string"
}
},
"created_at": {
"type": "string"
},
"forks": {
"type": "integer"
},
"stars": {
"type": "integer"
},
"first_seen": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"stars_by_day": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Total stars at each daily snapshot, oldest first (up to 31)."
},
"stars_gained": {
"type": "object",
"properties": {
"today": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"week": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"month": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
}
},
"required": [
"today",
"week",
"month"
]
},
"rank": {
"type": "object",
"properties": {
"today": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"week": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"month": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"all": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
}
},
"required": [
"today",
"week",
"month",
"all"
]
},
"note": {
"type": "string"
},
"text_note": {
"type": "string"
}
},
"required": [
"data_date",
"collecting_since",
"source",
"method_url",
"repo",
"url",
"github_url",
"description",
"language",
"license",
"topics",
"created_at",
"forks",
"stars",
"first_seen",
"stars_by_day",
"stars_gained",
"rank",
"note",
"text_note"
]
}🟢search_repos(query, language, limit)
Find tracked repos by words in the name, description, topics or language. Every word must match. Results are ordered by relevance, then stars.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 80,
"description": "Words to look for, for example \"vector database\"."
},
"language": {
"type": "string",
"maxLength": 30,
"description": "Only repos in this language."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"default": 10,
"description": "How many repos to return (1 to 25)."
}
},
"required": [
"query"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"data_date": {
"type": "string",
"description": "Day of the latest snapshot, YYYY-MM-DD."
},
"collecting_since": {
"type": "string",
"description": "First day of collected data, YYYY-MM-DD."
},
"source": {
"type": "string"
},
"method_url": {
"type": "string",
"description": "Page that explains how the numbers are made."
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"matches": {
"type": "integer"
},
"count": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"text_note": {
"type": "string"
},
"repos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"repo": {
"type": "string"
},
"url": {
"type": "string"
},
"stars": {
"type": "integer"
},
"language": {
"type": "string"
},
"topics": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
}
},
"required": [
"repo",
"url",
"stars",
"language",
"topics",
"description"
]
}
}
},
"required": [
"data_date",
"collecting_since",
"source",
"method_url",
"language",
"matches",
"count",
"truncated",
"text_note",
"repos"
]
}🟢list_filters(kind, limit)
List the languages or the GitHub topics that get_trending and search_repos accept, with how many tracked repos each has. Most repos first.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"language",
"topic"
],
"description": "Which list to return."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 30,
"description": "How many names to return (1 to 100)."
}
},
"required": [
"kind"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"data_date": {
"type": "string",
"description": "Day of the latest snapshot, YYYY-MM-DD."
},
"collecting_since": {
"type": "string",
"description": "First day of collected data, YYYY-MM-DD."
},
"source": {
"type": "string"
},
"method_url": {
"type": "string",
"description": "Page that explains how the numbers are made."
},
"kind": {
"type": "string"
},
"total": {
"type": "integer"
},
"count": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"repos": {
"type": "integer"
},
"page": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"repos",
"page"
]
}
}
},
"required": [
"data_date",
"collecting_since",
"source",
"method_url",
"kind",
"total",
"count",
"truncated",
"items"
]
}🟢how_we_rank
Plain explanation of how RepoTrending counts stars gained, which repos it tracks, what it leaves out and how much data each window has so far.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"data_date": {
"type": "string",
"description": "Day of the latest snapshot, YYYY-MM-DD."
},
"collecting_since": {
"type": "string",
"description": "First day of collected data, YYYY-MM-DD."
},
"source": {
"type": "string"
},
"method_url": {
"type": "string",
"description": "Page that explains how the numbers are made."
},
"summary": {
"type": "array",
"items": {
"type": "string"
}
},
"limits": {
"type": "array",
"items": {
"type": "string"
}
},
"repos_tracked": {
"type": "integer"
},
"repos_available": {
"type": "integer"
},
"windows": {
"type": "object",
"properties": {
"today": {
"type": "object",
"properties": {
"ready": {
"type": "boolean"
},
"ready_on": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"days_collected": {
"type": "integer"
},
"days_needed": {
"type": "integer"
}
},
"required": [
"ready",
"ready_on",
"days_collected",
"days_needed"
]
},
"week": {
"type": "object",
"properties": {
"ready": {
"type": "boolean"
},
"ready_on": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"days_collected": {
"type": "integer"
},
"days_needed": {
"type": "integer"
}
},
"required": [
"ready",
"ready_on",
"days_collected",
"days_needed"
]
},
"month": {
"type": "object",
"properties": {
"ready": {
"type": "boolean"
},
"ready_on": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"days_collected": {
"type": "integer"
},
"days_needed": {
"type": "integer"
}
},
"required": [
"ready",
"ready_on",
"days_collected",
"days_needed"
]
}
},
"required": [
"today",
"week",
"month"
]
}
},
"required": [
"data_date",
"collecting_since",
"source",
"method_url",
"summary",
"limits",
"repos_tracked",
"repos_available",
"windows"
]
}Community
Evidence