skyzhao1223/wheel-hub
⚙️ wheel-hub
Перестаньте изобретать велосипед. Ищите, оценивайте и внедряйте лучшие решения с открытым исходным кодом — прежде чем написать хотя бы строку кода.
wheel-hub — это MCP-сервер и CLI, которые заставляют и AI-агентов для написания кода, и людей сначала проверять экосистему с открытым исходным кодом: получив функцию или проблему, он находит существующие решения и оценивает их по популярности, динамике, поддержке и доверию, а затем говорит, стоит ли внедрять, адаптировать, изучать или избегать.
Зачем
Каждый разработчик (и каждый AI-агент) пересоздаёт с нуля авторизацию, планировщики, скраперы и админ-панели — не потому, что лучших велосипедов не существует, а потому, что никто не ищет их в первую очередь. wheel-hub делает подход «сначала посмотри» стандартным.
Related MCP server: reuse-before-generate
Установка
MCP-сервер (для Claude Code, opencode, Cursor, …)
npx @wheel-hub/mcpПример для Claude Code:
claude mcp add wheel-hub --env GITHUB_TOKEN=ghp_xxx -- npx @wheel-hub/mcpПример универсальной JSON-конфигурации (работает в большинстве MCP-клиентов):
{
"mcpServers": {
"wheel-hub": {
"command": "npx",
"args": ["@wheel-hub/mcp"],
"env": { "GITHUB_TOKEN": "ghp_xxx" }
}
}
}Примечание: MCP-клиенты передают серверам только белый список переменных окружения. Всегда передавайте
GITHUB_TOKENявно через конфигурациюenvклиента, иначе сервер будет работать без аутентификации с лимитом 60 запросов в час и быстро упрётся в ограничения скорости.
Затем просто попросите вашего агента: «прежде чем реализовывать, используй wheel-hub, чтобы проверить, что уже существует для планирования фоновых задач».
CLI (для людей)
# one-off
npx @wheel-hub/cli find "SSO login" --lang typescript
npx @wheel-hub/cli evaluate ollama/ollama
# or install for the `wheel-hub` command
npm i -g @wheel-hub/cli
wheel-hub find "SSO login"Инструменты
Инструмент | Описание |
| Ищет решения проблемы на GitHub |
| Оценивает один репозиторий (0–100) с вердиктом и причинами |
| Находит альтернативы и оценивает каждую — запустите это перед написанием нового кода |
Модель оценки
Совокупный балл (0–100) взвешивается по четырём измерениям:
Популярность (30%) — масса звёзд по логарифмической шкале
Динамика (25%) — рост звёзд в день + свежесть пушей
Поддержка (30%) — свежесть коммитов + соотношение накопленных issues
Доверие (15%) — разрешительность лицензии, статус архивации
Вердикты: ≥75 adopt · ≥55 adapt · ≥35 inspect · <35 / archived avoid
Конфигурация
GITHUB_TOKEN (необязательно) — повышает лимит запросов к GitHub API с 60 до 5 000 в час. Настоятельно рекомендуется для реального использования; см. конфигурацию MCP выше, чтобы узнать, как его передать.
Пакеты
Пакет | Описание |
Агрегация GitHub + движок оценки | |
MCP-сервер для AI-агентов | |
Терминальный CLI |
Дорожная карта
Запасной вариант для лицензии в репозиториях с
NOASSERTION: разбирать сам файл лицензии (например, COPYING в ядре объявляет GPL-2.0, но GitHub классифицирует его как «Other»)Майнинг awesome-списков как вторичный источник сигналов
Кривые истории звёзд на основе данных OSSInsight
wheel-hub watch— получайте уведомления, когда зависимости вашего стека устареваютСохранение оценок + еженедельный дайджест
Лицензия
MIT
Available Tools
3 toolscompare_alternativesA
Search for alternatives to a feature/tool and evaluate each one. Use before writing new code to avoid reinventing the wheel. Returns a ranked verdict table.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Number of candidates to evaluate (default 5) | |
| query | Yes | Feature or capability to find alternatives for | |
| language | No | Preferred programming language |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden alone. It discloses the output shape ('ranked verdict table') and implies an evaluation step over multiple candidates, but says nothing about read-only safety, latency/cost of evaluating candidates, or how many sources it queries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler, front-loaded on what it does before the when-to-use hint and the return note. It could be marginally tighter, but essentially every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully states the return format (ranked verdict table), and the simple 3-parameter surface is fully covered by the schema. The remaining gap is behavioral – nothing about whether it is read-only or slow – but for this tool class that is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (query, top, language) are already documented with defaults. The description adds no syntax, format, or constraint detail beyond the schema, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description combines a specific action (search for alternatives + evaluate each) with a clear resource (a feature/tool), which an agent can grasp immediately. It doesn't explicitly distinguish itself from siblings like search_oss, but the 'evaluate each one' plus 'ranked verdict table' framing sets it apart from a plain search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit usage trigger: 'Use before writing new code to avoid reinventing the wheel.' That tells the agent when to reach for it. It stops short of naming alternatives or exclusion conditions (e.g., when to prefer search_oss or evaluate_repo), so it isn't a full routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_repoA
Score a single GitHub repository (0-100) on popularity, momentum, maintenance and trust, with an adopt/adapt/inspect/avoid verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository in 'owner/name' format or a GitHub URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses the scoring model (popularity, momentum, maintenance, trust), the numeric range, and the verdict taxonomy, but says nothing about auth requirements, rate limits, latency, or how a repo that cannot be fetched is handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence, front-loaded with the verb and resource, followed by the scoring dimensions and output categories. Every clause carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description steps in to describe the return payload - a 0-100 score across four named dimensions plus a four-level verdict - which is what an agent needs to interpret results. Error handling for malformed or missing repos is the only notable omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, repo, is fully documented in the schema ('owner/name' format or GitHub URL), which matches the description's scope but adds no syntax or format detail beyond it. Baseline 3 applies when the schema already covers the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (score) and resource (a single GitHub repository), plus the output scale (0-100), the scoring dimensions, and the verdict categories. 'Single' quietly distinguishes it from compare_alternatives, but the description never names the siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: scoring one repo suggests this is for evaluating an individual candidate rather than searching (search_oss) or comparing options (compare_alternatives). No explicit when-to-use, when-not-to-use, or named alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_ossA
Search GitHub for high-quality open-source solutions before implementing a feature. Returns ranked candidates with stars and descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| query | Yes | What to look for, e.g. 'background job scheduler', 'SSO login' | |
| language | No | Filter by programming language | |
| min_stars | No | Minimum star count (default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose return shape ("ranked candidates with stars and descriptions") and an implicit quality filter. It omits operational context that matters for a GitHub-backed search: authentication expectations, rate limits, and whether results are cached or live. Adequate but incomplete for a zero-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the core purpose is front-loaded ahead of the return-shape detail. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter search tool with a fully documented schema and no output schema, the description covers purpose, trigger, and the shape of results. It stops short of the context an agent would want in the absence of annotations and sibling routing hints — no rate-limit or auth note, and no signal about handing results to evaluate_repo or compare_alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (query, language, min_stars, limit) are already self-documenting, which sets the baseline at 3. The description's phrase "high-quality" loosely gestures at the min_stars default but adds no format, default, or interaction detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ("Search") with a specific resource and scope ("GitHub for high-quality open-source solutions") and states the agent-facing goal ("before implementing a feature"). It is unambiguous on its own, though it never contrasts itself with evaluate_repo or compare_alternatives, so sibling differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Before implementing a feature" gives a clear situational trigger for reaching for this tool rather than writing code from scratch. There are no exclusions or named alternatives, however, so the agent is not told when to skip this in favor of evaluate_repo or compare_alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.0- First observed
compare_alternatives - First observed
evaluate_repo - First observed
search_oss
TDQS
Scored across 3 tools
evaluate_repo clearly targets a single known repo, but search_oss and compare_alternatives heavily overlap — both search GitHub for solutions before coding and return ranked candidates/verdicts. An agent could easily pick the wrong one since the boundary (finding a solution vs. finding alternatives to something) is subtle.
All three follow a verb_ prefix pattern (evaluate_repo, search_oss, compare_alternatives), which is predictable. Minor inconsistency in the noun suffixes (repo vs. oss vs. alternatives) keeps it from being fully uniform.
Three tools is a little thin but well-scoped for a narrow 'avoid reinventing the wheel' purpose. Each tool earns its place in the discover-then-evaluate flow.
The surface covers the core lifecycle: search for candidates, compare alternatives, and score a specific repo. Minor gaps like fetching detailed repo metadata or readme content exist, but core workflows are covered.
Maintenance
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Search GitHub, npm, PyPI, StackOverflow, ArXiv from one MCP — built for coding agents.
Agent-first search of MCP servers, APIs, CLIs and skills, with best picks and transparent scores.
Finds real, maintained open-source repos that fit your project. MCP grounding for coding agents.
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server that exposes GitHub operations as tools for AI agents, enabling code search, issue management, and PR review.12MIT
- AlicenseBqualityBmaintenanceStop your AI agent from rebuilding what already exists. MCP server that checks GitHub, npm and Python repos for maintained alternatives before you scaffold.290 npm6MIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server that gives AI agents access to developer tooling — GitHub (read-only), documentation search, and web research — via stdio transport.MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that helps coding agents research and prepare GitHub contributions by gathering repository guidance, related work, code context, and validation evidence into a local SQLite corpus, without ever writing to GitHub.113 npm26MIT