Skip to main content
Glama

A repository's facts

get_repo
Read-onlyIdempotent

One GitHub repository as Upstar sees it, the same facts as its Upstar page: stars and gains, its usual week, its star total week by week over 12 weeks, its topics and ranks, when Upstar spotted it, its latest release, license, activity and collections. Answers for every repository with an Upstar page, kept-out ones included; blocked ones have none.

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
repoYesthe repository: owner/name, or its GitHub or Upstar address
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

Output Schema

NameRequiredDescriptionDefault
langYeslanguage of names and descriptions written by Upstar (en or fr)
repoYes
sourceYesthe source to cite when using these figures
method_urlYesUpstar's page explaining how stars are counted and repositories ranked
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
    • changedOutput schema / properties / repo / properties / spotted / anyOf
      Previous value: -[
      -  {
      -    "type": "null"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "growth": {
      -        "description": "how many times its stars grew since",
      -        "type": "string"
      -      },
      -      "rank_when_spotted": {
      -        "description": "its rank in that topic's weekly ranking then, any rank; absent when not kept (before November 2026)",
      -        "type": "integer"
      -      },
      -      "spotted_in": {
      -        "anyOf": [
      -          {
      -            "type": "null"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "name": {
      -                "type": "string"
      -              },
      -              "rank_this_week": {
      -                "type": "integer"
      -              },
      -              "slug": {
      -                "type": "string"
      -              },
      -              "url": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "slug",
      -              "name",
      -              "url"
      -            ],
      -            "type": "object"
      -          }
      -        ],
      -        "description": "the topic it was first ranked in"
      -      },
      -      "spotted_on": {
      -        "type": "string"
      -      },
      -      "stars_when_spotted": {
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "spotted_on",
      -      "stars_when_spotted",
      -      "growth"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "type": "null"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "growth": {
      +        "description": "how many times its stars grew since",
      +        "type": "string"
      +      },
      +      "rank_when_spotted": {
      +        "description": "its rank in that topic's weekly ranking then, any rank; absent when not kept (before November 2026) or the repo has left that topic",
      +        "type": "integer"
      +      },
      +      "spotted_in": {
      +        "anyOf": [
      +          {
      +            "type": "null"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "name": {
      +                "type": "string"
      +              },
      +              "rank_this_week": {
      +                "type": "integer"
      +              },
      +              "slug": {
      +                "type": "string"
      +              },
      +              "url": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "slug",
      +              "name",
      +              "url"
      +            ],
      +            "type": "object"
      +          }
      +        ],
      +        "description": "the topic it was first ranked in; absent when the repo has left that topic"
      +      },
      +      "spotted_on": {
      +        "type": "string"
      +      },
      +      "stars_when_spotted": {
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "spotted_on",
      +      "stars_when_spotted",
      +      "growth"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / properties / repo / properties / spotted / anyOf
      Previous value: -[
      -  {
      -    "type": "null"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "growth": {
      -        "description": "how many times its stars grew since",
      -        "type": "string"
      -      },
      -      "spotted_on": {
      -        "type": "string"
      -      },
      -      "stars_when_spotted": {
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "spotted_on",
      -      "stars_when_spotted",
      -      "growth"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "type": "null"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "growth": {
      +        "description": "how many times its stars grew since",
      +        "type": "string"
      +      },
      +      "rank_when_spotted": {
      +        "description": "its rank in that topic's weekly ranking then, any rank; absent when not kept (before November 2026)",
      +        "type": "integer"
      +      },
      +      "spotted_in": {
      +        "anyOf": [
      +          {
      +            "type": "null"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "name": {
      +                "type": "string"
      +              },
      +              "rank_this_week": {
      +                "type": "integer"
      +              },
      +              "slug": {
      +                "type": "string"
      +              },
      +              "url": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "slug",
      +              "name",
      +              "url"
      +            ],
      +            "type": "object"
      +          }
      +        ],
      +        "description": "the topic it was first ranked in"
      +      },
      +      "spotted_on": {
      +        "type": "string"
      +      },
      +      "stars_when_spotted": {
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "spotted_on",
      +      "stars_when_spotted",
      +      "growth"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the description only needs to add the non-obvious caveats — and it does: the result set is limited to repositories with an Upstar page, kept-out repositories are still covered, and blocked repositories yield nothing. That negative-space disclosure is exactly what an agent needs before calling.

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?

Purpose is front-loaded in the first clause, followed by the returned-fact inventory and then the coverage caveat. The fact enumeration is long but each item tells the agent something about the payload; only mild redundancy with the existing output schema.

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?

An output schema exists, so return shape needn't be spelled out, and annotations cover the safety profile; combined with the coverage/precondition sentence, an agent has what it needs to decide and call correctly. The only gap is the absence of explicit routing to sibling tools.

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%, with enums documented for lang and detail, so the schema carries parameter meaning on its own. The description adds no mapping between the enumerated facts and the detail levels, leaving that entirely to the schema — acceptable but no added value.

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?

Names a single specific resource ('One GitHub repository as Upstar sees it') and enumerates the fact families returned (stars/gains, 12-week history, topics and ranks, spotted date, release, license, activity, collections). It does not explicitly contrast itself with siblings like search, trending, or emerging, so an agent must infer the boundary, but the resource scope is unmistakable.

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 closing sentence gives a real precondition: it answers for every repository with an Upstar page, including kept-out ones, while blocked ones return nothing. That is useful eligibility context, but there is no explicit when-to-use-this vs use-search-or-trending guidance and no pointer to a sibling for repositories lacking an Upstar page.

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