Skip to main content
Glama

A collection's ranking

get_collection
Read-onlyIdempotent

A collection's ranking (score = momentum and health with the collection's weights) and its rising newcomers under 90 days old: the same lists as the collection's page on Upstar.

Input Schema

NameRequiredDescriptionDefault
langNolanguage of the names, descriptions and links Upstar writes: en (default at /mcp) or fr (default at /fr/mcp); repository descriptions stay as their authors wrote them
limitNohow many ranked repositories, 1 to 50 (10 by default); newcomers come apart, 10 at most
detailNocompact (the default): each repository's rank, name, description, language, stars, gains and Upstar page; full adds its creation day, health level, topics with their ranks and GitHub address, list_topics its categories, and get_repo its 12-week history, GitHub topics, activity counts and every period's rankscompact
offsetNohow many places of the ranking to pass over, for the next page (next_offset of the previous answer); 0 by default, at most the number of repositories ranked
collectionYesthe collection's slug, from list_collections

Output Schema

NameRequiredDescriptionDefault
langYeslanguage of names and descriptions written by Upstar (en or fr)
reposYes
sourceYesthe source to cite when using these figures
newcomersYesrising repositories under 90 days old, on the first page only
collectionYes
method_urlYesUpstar's page explaining how stars are counted and repositories ranked
next_offsetNothe offset of the next page; absent on the last one
data_updated_atYeswhen Upstar last rebuilt its rankings from GitHub's data (UTC, RFC 3339): every figure is as of then

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedOutput schema / properties / left_out
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "null"
      -    },
      -    {
      -      "additionalProperties": false,
      -      "properties": {
      -        "blocked": {
      -          "description": "blocked by Upstar's moderation",
      -          "type": "integer"
      -        },
      -        "count": {
      -          "type": "integer"
      -        },
      -        "kept_out_by_review": {
      -          "description": "reviewed, and not featured by Upstar",
      -          "type": "integer"
      -        },
      -        "no_page": {
      -          "description": "without an Upstar page this hour",
      -          "type": "integer"
      -        },
      -        "out_of_place": {
      -          "description": "judged out of place in this topic, or doubtful there, by Upstar's topic review (for a list across topics: in every one of their topics)",
      -          "type": "integer"
      -        },
      -        "waiting_for_review": {
      -          "description": "held until Upstar reviews their star growth or their content",
      -          "type": "integer"
      -        }
      -      },
      -      "required": [
      -        "count"
      -      ],
      -      "type": "object"
      -    }
      -  ],
      -  "description": "the repositories of this stretch of the ranking Upstar does not show, by reason: the ranks this answer skips"
      -}
  2. Changed1 schema field changed
    • addedOutput schema / properties / left_out
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "null"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "blocked": {
      +          "description": "blocked by Upstar's moderation",
      +          "type": "integer"
      +        },
      +        "count": {
      +          "type": "integer"
      +        },
      +        "kept_out_by_review": {
      +          "description": "reviewed, and not featured by Upstar",
      +          "type": "integer"
      +        },
      +        "no_page": {
      +          "description": "without an Upstar page this hour",
      +          "type": "integer"
      +        },
      +        "out_of_place": {
      +          "description": "judged out of place in this topic, or doubtful there, by Upstar's topic review (for a list across topics: in every one of their topics)",
      +          "type": "integer"
      +        },
      +        "waiting_for_review": {
      +          "description": "held until Upstar reviews their star growth or their content",
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "count"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "description": "the repositories of this stretch of the ranking Upstar does not show, by reason: the ranks this answer skips"
      +}
  3. Changed1 schema field changed
    • removedOutput schema / properties / left_out
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "null"
      -    },
      -    {
      -      "additionalProperties": false,
      -      "properties": {
      -        "blocked": {
      -          "description": "blocked by Upstar's moderation",
      -          "type": "integer"
      -        },
      -        "count": {
      -          "type": "integer"
      -        },
      -        "kept_out_by_review": {
      -          "description": "reviewed, and not featured by Upstar",
      -          "type": "integer"
      -        },
      -        "no_page": {
      -          "description": "without an Upstar page this hour",
      -          "type": "integer"
      -        },
      -        "out_of_place": {
      -          "description": "judged out of place in this topic, or doubtful there, by Upstar's topic review (for a list across topics: in every one of their topics)",
      -          "type": "integer"
      -        },
      -        "waiting_for_review": {
      -          "description": "held until Upstar reviews their star growth or their content",
      -          "type": "integer"
      -        }
      -      },
      -      "required": [
      -        "count"
      -      ],
      -      "type": "object"
      -    }
      -  ],
      -  "description": "the repositories of this stretch of the ranking Upstar does not show, by reason: the ranks this answer skips"
      -}
  4. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's contribution is the domain context: the score is momentum plus health weighted by the collection, and newcomers are under 90 days old. It omits any mention of pagination behavior (offset/next_offset) or the separate cap of 10 newcomers, both of which matter for calling it correctly.

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?

One front-loaded sentence that leads with the primary output and parenthetically defines the score. Dense but every clause carries information; the only slight drag is the trailing Upstar-page analogy, which is useful orientation rather than filler.

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

Completeness5/5

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

With an output schema present, the description needn't document return shapes, and annotations carry the safety semantics. What remains is the conceptual framing of the two lists and the scoring model, which the description supplies; the only residual gap, pagination, is fully specified in the schema.

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 explains lang, limit, detail, offset, and collection in detail. The description adds only indirect meaning — the 90-day newcomers window and the scoring formula — and nothing about how limit splits between ranked repos and newcomers or how detail changes output. Baseline 3 is appropriate.

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 names the resource (a collection's ranking) and states exactly what comes back: the scored ranking plus rising newcomers under 90 days old, framed as 'the same lists as the collection's page on Upstar.' It is clear enough to distinguish from topic_ranking or trending, though it never names those siblings explicitly and the verb is implied rather than stated.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no exclusion of alternatives. The reader must infer that a collection slug (from list_collections, stated only in the schema) is a prerequisite, and nothing says why to pick this over topic_ranking, trending, or emerging.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources