Skip to main content
Glama

Get Repo

get_repo
Read-onlyIdempotent

Look up ONE named repository by its owner/repo slug — "facebook/react", "torvalds/linux", "vercel/next.js". Use this whenever the repository is named in the question. Answers how many stars / forks / watchers a repo has, what license and language it uses, its topics, description, open issue count, its default branch, and when it was last pushed (pushed_at).

Input Schema

NameRequiredDescriptionDefault
repoYesRepository name, e.g. "react". Also accepts the full slug "facebook/react".
ownerNoRepository owner (user or org), e.g. "facebook". May be omitted if `repo` carries the full "owner/repo" slug.

Output Schema

NameRequiredDescriptionDefault
urlYesRepository URL
nameYesRepository name
forksYesNumber of forks
ownerYesRepository owner login
starsYesNumber of stargazers
topicsYesRepository topics/tags
is_forkYesWhether the repository is a fork
licenseYesLicense SPDX ID or name
networkYesNetwork count
size_kbYesRepository size in kilobytes
archivedYesWhether the repository is archived
homepageYesHomepage URL
languageYesPrimary programming language
watchersYesNumber of watchers
full_nameYesFull repository name (owner/repo)
pushed_atYesLast push timestamp
created_atYesRepository creation timestamp
owner_typeYesOwner type (User/Organization)
updated_atYesLast update timestamp
visibilityYesRepository visibility (public/private)
descriptionYesRepository description
open_issuesYesNumber of open issues
subscribersYesNumber of subscribers
default_branchYesDefault branch name

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / owner / description
      Previous value: -"Repository owner (user or org), e.g. \"facebook\""New value: +"Repository owner (user or org), e.g. \"facebook\". May be omitted if `repo` carries the full \"owner/repo\" slug."
    • changedInput schema / properties / repo / description
      Previous value: -"Repository name, e.g. \"react\""New value: +"Repository name, e.g. \"react\". Also accepts the full slug \"facebook/react\"."
    • changedInput schema / required
      Previous value: -[
      -  "owner",
      -  "repo"
      -]New value: +[
      +  "repo"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "archived": {
      +      "description": "Whether the repository is archived",
      +      "type": "boolean"
      +    },
      +    "created_at": {
      +      "description": "Repository creation timestamp",
      +      "type": "string"
      +    },
      +    "default_branch": {
      +      "description": "Default branch name",
      +      "type": "string"
      +    },
      +    "description": {
      +      "description": "Repository description",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "forks": {
      +      "description": "Number of forks",
      +      "type": "number"
      +    },
      +    "full_name": {
      +      "description": "Full repository name (owner/repo)",
      +      "type": "string"
      +    },
      +    "homepage": {
      +      "description": "Homepage URL",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "is_fork": {
      +      "description": "Whether the repository is a fork",
      +      "type": "boolean"
      +    },
      +    "language": {
      +      "description": "Primary programming language",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "license": {
      +      "description": "License SPDX ID or name",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "name": {
      +      "description": "Repository name",
      +      "type": "string"
      +    },
      +    "network": {
      +      "description": "Network count",
      +      "type": "number"
      +    },
      +    "open_issues": {
      +      "description": "Number of open issues",
      +      "type": "number"
      +    },
      +    "owner": {
      +      "description": "Repository owner login",
      +      "type": "string"
      +    },
      +    "owner_type": {
      +      "description": "Owner type (User/Organization)",
      +      "type": "string"
      +    },
      +    "pushed_at": {
      +      "description": "Last push timestamp",
      +      "type": "string"
      +    },
      +    "size_kb": {
      +      "description": "Repository size in kilobytes",
      +      "type": "number"
      +    },
      +    "stars": {
      +      "description": "Number of stargazers",
      +      "type": "number"
      +    },
      +    "subscribers": {
      +      "description": "Number of subscribers",
      +      "type": "number"
      +    },
      +    "topics": {
      +      "description": "Repository topics/tags",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "updated_at": {
      +      "description": "Last update timestamp",
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "Repository URL",
      +      "type": "string"
      +    },
      +    "visibility": {
      +      "description": "Repository visibility (public/private)",
      +      "type": "string"
      +    },
      +    "watchers": {
      +      "description": "Number of watchers",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "full_name",
      +    "description",
      +    "url",
      +    "homepage",
      +    "stars",
      +    "forks",
      +    "watchers",
      +    "open_issues",
      +    "language",
      +    "topics",
      +    "default_branch",
      +    "size_kb",
      +    "visibility",
      +    "archived",
      +    "is_fork",
      +    "license",
      +    "owner",
      +    "owner_type",
      +    "created_at",
      +    "updated_at",
      +    "pushed_at",
      +    "subscribers",
      +    "network"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "owner": "facebook",
      +    "repo": "react"
      +  },
      +  {
      +    "owner": "torvalds",
      +    "repo": "linux"
      +  }
      +]
  4. First observed

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds the enumeration of returned fields (stars, forks, license, topics, default branch, pushed_at), but with an output schema present that is mostly redundant and it says nothing about auth needs, rate limits, or 404 behavior for unknown slugs.

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, front-loaded with the scope constraint and the usage trigger before the list of returned fields. The trailing field list is a long run-on but each item is a genuinely useful signal of what the tool answers.

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 annotations covering the safety profile, a 100%-documented two-parameter schema, an output schema for return values, and a clear named-vs-search scope statement, the description supplies everything an agent needs to call this correctly.

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% and both parameters are documented in the schema, including the slug fallback, so baseline is 3. The description's slug examples echo the schema's own examples rather than adding new semantic detail about the owner/repo split.

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?

States a precise verb and resource ('Look up ONE named repository by its owner/repo slug'), gives three concrete slug examples, and the emphasis on ONE named repo implicitly separates it from the sibling search_repos. An agent can distinguish this from search_repos/search_code without opening either schema.

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?

Explicit trigger: 'Use this whenever the repository is named in the question' — a clear condition that routes the agent here rather than to a search tool. It does not explicitly name search_repos as the alternative for unnamed/exploratory lookups, so it falls just short of the 5 bar.

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.