Skip to main content
Glama
hyunwk

oss-trends-mcp

by hyunwk

oss-trends-mcp

Task-driven trending-OSS recommender for AI builders, exposed as an MCP server. Ask "what OSS is trending for building X?" and get ranked open-source projects backed by live signals: GitHub star momentum, npm/PyPI download growth, and Hacker News buzz.

Awesome lists go stale in weeks; the AI tooling landscape moves in days. oss-trends-mcp ranks candidates at question time from real signals instead of hand-curated links — and separates established players from rising newcomers (repos younger than 18 months).

Tools

recommend_oss (main)

Inputs: task (what you want to build), queries (focused GitHub search terms — recommended; expanded from the task text otherwise), ecosystem (auto/npm/pypi/none), limit. Returns an established ranking plus risingNewcomers, each with a transparent score breakdown so the calling LLM can explain the "why". The LLM expands the task into search queries; the server does deterministic collection and scoring.

search_repos

Raw GitHub repository search with normalized output.

repo_health

Deep signals for one repository: star momentum, maintenance freshness, npm/PyPI adoption, HN buzz, and a 0-100 score.

compare_repos

Side-by-side trend comparison of 2-6 repositories, ranked by composite score.

Related MCP server: Dev AI Ecosystem MCP

Scoring (0-100)

  • momentum 35 — stars gained in the last 30 days (log scale)

  • maintenance 20 — push freshness decay; archived repos score 0

  • adoption 20 — npm or PyPI monthly downloads plus growth bonus (last 28d vs previous 28d)

  • community 15 — forks, license, topics

  • buzz 10 — Hacker News stories and top score over the last 180 days

Setup

Build and register with Claude Code:

npm install && npm run build
claude mcp add oss-trends -s user -- node /absolute/path/to/oss-trends-mcp/dist/index.js

Recommended: give the server a GITHUB_TOKEN. Without it GitHub allows 10 searches/min and 60 core requests/hour, so star-momentum sampling often degrades to fallback signals:

claude mcp add oss-trends -s user -e GITHUB_TOKEN=ghp_xxx -- node /absolute/path/to/dist/index.js

Works in any MCP client (Claude Code, Cursor, etc.) via stdio.

Limitations

  • Repos above ~40k stars: the stargazers API caps at 400 pages, so recent star history is unreachable; momentum falls back to age-adjusted average velocity plus npm growth.

  • Star velocity for other large repos is a sampled lower bound (last pages x 100 stars).

  • npm/PyPI package matching is heuristic (repository URL match); unmatched repos simply skip adoption signals.

Development

npm run build, npm test, npm run lint. A live end-to-end check drives the compiled server over stdio and calls recommend_oss against real APIs: see scripts/smoke.mjs.

License

MIT

Available Tools

4 tools
compare_reposCompare repositoriesA

Side-by-side trend comparison of 2-6 github repositories, ranked by composite score.

ParametersJSON Schema
NameRequiredDescriptionDefault
reposYesowner/name list to compare

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does reveal that the tool ranks by a composite score, which is a behavioral trait. However, it does not disclose what 'trend' means, what the output looks like, whether any mutation occurs, or other operational details. The gap is moderate, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the key distinction ('side-by-side trend comparison') and the range constraint. Every word earns its place; there is no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has low complexity (one parameter) and high schema coverage, but no output schema and no annotations. The description does not explain what 'trend' means or what the composite score is based on, nor does it describe the return format. An agent would have to infer the output. For a tool that ranks repos, this is a notable gap, but the minimal scope keeps it from being a 2.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the 'repos' parameter as an owner/name list with min/max items. The description adds the notion of 'side-by-side' but not new syntax or semantics. Baseline of 3 is correct when schema fully covers the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (side-by-side trend comparison) and a specific resource (github repositories), and adds a distinguishing detail (ranked by composite score). This clearly separates it from siblings like search_repos (search) and recommend_oss (recommend). The purpose is unambiguous and does not restate the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool (when comparing 2-6 repositories side-by-side) but does not explicitly mention when not to use it or name alternative tools for different scenarios. Since siblings exist, an explicit exclusion would have raised it to a 5, but the implied usage is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_ossRecommend trending OSSB

Given a task or feature description, recommends trending open-source projects using GitHub star momentum, npm/PyPI download growth and Hacker News buzz. Pass focused github search terms in queries for best results.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYeswhat the user wants to build, e.g. memory layer for AI agents
limitNomax established recommendations
queriesNofocused github search queries, 2-4 terms each (recommended)
ecosystemNopackage registry used for download signalsauto

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It does disclose the behavioral basis — the scoring signals (star momentum, download growth, HN buzz) — which is meaningful. But it fails to describe what the agent receives back (list shape, how signals are weighted, or that results are 'established' projects only). The 'limit' param implies 'max established recommendations' but the description never states the output behavior or ranking rationale.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both earning their place — the first states the core purpose and inputs, the second is a high-value usage tip. Front-loaded and free of filler. Slight deduction only because the second sentence's advice partially duplicates schema guidance for the queries parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a recommendation tool with no output schema and no annotations, the description covers the inputs and scoring basis adequately. But it omits what the agent should expect as output (a ranked list? links? metadata?), whether task alone suffices or queries are needed, and how the three signals are combined. An agent reading this knows what it does but not fully what it returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all four parameters, which sets the baseline at 3. The description adds marginal value by reinforcing the queries parameter with the 'focused github search terms' tip, but this is a restatement of the schema's own guidance ('2-4 terms each (recommended)') rather than new semantic insight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pairing: 'recommends trending open-source projects' from a 'task or feature description,' and names the data signals used (GitHub star momentum, npm/PyPI downloads, Hacker News buzz). This clearly differentiates it from siblings like search_repos (searching), repo_health (health), and compare_repos (comparison). It doesn't explicitly name an alternative, but the verb alone distinguishes it — a minor gap from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers a concrete, actionable tip — 'Pass focused github search terms in queries for best results' — which tells the agent how to get good output. However, it provides no when-to-use vs when-not-to-use guidance relative to the sibling tools, and no conditions for choosing this over search_repos or compare_repos. The guidance is procedural rather than decisional.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

repo_healthRepository health and trend scoreA

Deep signals for one github repository: star momentum, maintenance freshness, npm/PyPI adoption, HN buzz, plus a transparent 0-100 score breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesowner/name

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal that the tool computes a transparent 0-100 score breakdown and covers multiple signal types, which is useful. However, it omits operational details such as data freshness, rate limits, or whether it requires authentication, and it does not describe potential error conditions or output format beyond the score. This is a moderate gap for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Deep signals for one github repository') and then lists specific signal categories and the score breakdown. Every clause adds meaningful information with no redundancy or filler. It is highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with only one parameter and no output schema, the description sufficiently conveys that it returns health-related signals and a transparent 0-100 score breakdown. It lists the types of signals (stars, maintenance, adoption, buzz), giving an agent a reasonable idea of the data returned. However, it does not specify the exact structure of the output or whether raw numeric values accompany the breakdown, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for the sole parameter 'repo' with description 'owner/name'. The tool description does not add any additional semantic detail about the parameter, such as format examples or edge cases. Since schema coverage is high, the baseline of 3 is appropriate; the description offers no extra value for parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's purpose: providing deep signals for a single GitHub repository, listing specific signal categories (star momentum, maintenance freshness, adoption, buzz) and a score breakdown. It distinguishes from siblings by focusing on one repo's health rather than searching, recommending, or comparing. However, it lacks an explicit action verb like 'get' or 'analyze', which limits precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for one github repository' implies it is for deep-diving a single repo, which hints at when to use it versus search_repos or compare_repos. However, there is no explicit guidance on when not to use it, no mention of alternatives, and no exclusions. The usage context is implied but not stated outright.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_reposSearch GitHub repositoriesC

Raw github repository search with normalized output. Use for ad-hoc exploration.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNostars
limitNo
queryYesgithub search query, e.g. agent memory or topic:mcp
minStarsNominimum stars filter
createdAfterNoYYYY-MM-DD; only repos created after this date

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'raw' and 'normalized output' but does not disclose side effects, authentication requirements, rate limits, or whether the search is read-only. It is unclear what 'normalized output' means structurally, and there is no mention of pagination or default ordering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that leads with the primary purpose ('Raw github repository search') and then adds the usage hint. It is efficient and front-loaded, with no filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema and no annotations, the description should explain return values and other operational details. It only says 'normalized output' without specifying the structure, and it does not address pagination, result count, or error handling. For a search tool with 5 parameters, this is insufficient for an agent to call it correctly without additional inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 60%, leaving sort, limit, and minStars without descriptions in the schema. The description does not compensate for this by explaining any parameters. It adds no value beyond what the schema already provides for query and createdAfter, and leaves the other parameters unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the specific verb 'search' and resource 'github repositories', and adds 'raw' to indicate the search type. It is clear but does not explicitly distinguish from sibling tools like recommend_oss or repo_health. The phrase 'ad-hoc exploration' gives some hint, but the description does not name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use for ad-hoc exploration,' which provides a context for when to use the tool. However, it does not explicitly state when NOT to use it or mention alternative tools such as recommend_oss or repo_health. The guidance is implied rather than explicit.

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.

  1. 4 tool updatesv0.1.0
    • First observedcompare_repos
    • First observedrecommend_oss
    • First observedrepo_health
    • First observedsearch_repos

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool serves a distinct purpose: recommendation, raw search, in-depth single-repo health, and multi-repo comparison. There is no overlap in functionality, so an agent can easily select the right tool for the task.

Naming Consistency4/5

Three tools follow a verb_noun pattern (recommend_oss, search_repos, compare_repos) while repo_health is noun_noun. The style is uniform in lowercase with underscores, and the one deviation is minor and still intuitive.

Tool Count5/5

With 4 tools, the server is tightly scoped to its purpose of OSS trend analysis. Each tool covers a distinct aspect without bloat, making the set manageable and well-focused.

Completeness4/5

The surface covers the core workflow: discover via search, get recommendations, deep-dive into one repo, and compare multiple. Missing features like historical trend charts or per-repo dependency analysis are minor gaps that don't block primary use cases.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Discover, rank, and compare GitHub repositories from any MCP-compatible AI client. Enables searching, filtering, ranking, and evaluating open-source repositories by topic, language, stars, license, activity, and relevance.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with 6 tools for searching Hugging Face models, GitHub trending repos, analyzing GitHub repositories, fetching dev.to articles, Show HN launches, and Product Hunt daily launches. Built for dev tooling research and AI ecosystem analysis.
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Open source intelligence for AI agents — GitHub project-health scoring, package dependency-risk analysis, trending repositories, license checks, and side-by-side package comparison.
    MIT