Skip to main content
Glama

Gh List Repos

gh_list_repos
Read-onlyIdempotent

List all your repositories including private ones. Returns repo names, URLs, descriptions, language, stars, and last update time.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNoSort by: created, updated, pushed, full_name
per_pageNoResults per page (max 100)
visibilityNoFilter: all, public, private (default: all)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYesNumber of items returned.
itemsYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "count": {
      +      "description": "Number of items returned.",
      +      "type": "integer"
      +    },
      +    "items": {
      +      "items": {
      +        "properties": {
      +          "default_branch": {
      +            "description": "Default branch name",
      +            "type": "string"
      +          },
      +          "description": {
      +            "description": "Repository description",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "forks_count": {
      +            "description": "Number of forks",
      +            "type": "number"
      +          },
      +          "full_name": {
      +            "description": "Full repository name (owner/repo)",
      +            "type": "string"
      +          },
      +          "html_url": {
      +            "description": "Repository web URL",
      +            "type": "string"
      +          },
      +          "id": {
      +            "description": "Repository ID",
      +            "type": "number"
      +          },
      +          "language": {
      +            "description": "Primary programming language",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "description": "Repository name",
      +            "type": "string"
      +          },
      +          "open_issues_count": {
      +            "description": "Number of open issues",
      +            "type": "number"
      +          },
      +          "owner": {
      +            "properties": {
      +              "avatar_url": {
      +                "description": "Owner avatar URL",
      +                "type": "string"
      +              },
      +              "id": {
      +                "description": "Owner ID",
      +                "type": "number"
      +              },
      +              "login": {
      +                "description": "Owner login",
      +                "type": "string"
      +              },
      +              "url": {
      +                "description": "Owner API URL",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "private": {
      +            "description": "Whether repository is private",
      +            "type": "boolean"
      +          },
      +          "pushed_at": {
      +            "description": "ISO timestamp of last push",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "stargazers_count": {
      +            "description": "Number of stars",
      +            "type": "number"
      +          },
      +          "updated_at": {
      +            "description": "ISO timestamp of last update",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "items",
      +    "count"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "per_page": 20,
      +    "sort": "updated",
      +    "visibility": "private"
      +  },
      +  {
      +    "visibility": "all"
      +  }
      +]
  3. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, establishing a safe read operation. The description adds helpful context by specifying that private repos are included and enumerating the returned fields, which goes beyond the annotations. It does not discuss rate limits or authentication, but with annotations present, this is adequate.

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, front-loaded sentence that states the action and return value. It is concise, with no redundant phrases or unnecessary details, every word earns its place.

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?

The tool has rich annotations, a fully described input schema, and an output schema available. The description covers the core behavior and return fields, which is sufficient for a simple list tool. It lacks explicit usage exclusions or mention of pagination defaults, but these are not critical given the schema and typical use case.

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 input schema provides full descriptions for all three parameters (sort, per_page, visibility) with 100% coverage. The tool description does not add any parameter semantics beyond the schema, so the baseline score of 3 applies.

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 uses a specific verb ('List') with a clear resource ('your repositories'), includes scope ('including private ones'), and lists return fields. This distinguishes it from sibling tools like gh_list_issues and gh_list_pulls, making it unambiguous what the tool does.

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 implies usage for listing repositories but does not explicitly mention alternatives or conditions for when not to use it. Sibling tool names provide some differentiation, but there is no direct guidance such as 'for a single repo, use gh_get_repo'.

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.

TDQS

A3.7/5.0
Disambiguation2/5

There is significant overlap among many tools: ask_pipeworx, ask_pipeworx_beta, ask_pipeworx_grounded, deep_research, and validate_claim all serve query-answer purposes with subtle differences, and multiple polymarket tools (polymarket_arbitrage, polymarket_edges, polymarket_edge_tracker, polymarket_fill_risk, polymarket_kalshi_spread) cover similar arbitrage/mispricing territory. Additionally, ai_visibility_check and scan_competitor_ai_presence clearly overlap, making it hard to pick the right one.

Naming Consistency2/5

Tool names follow no consistent pattern. Some use a gh_ prefix (gh_get_file, gh_get_repo, etc.), others are descriptive phrases (ask_pipeworx, compare_entities, bet_research), and a few are plain verbs (remember, recall, forget, subscribe, unsubscribe). The mixed conventions and varied verb/noun styles make the set feel disjointed.

Tool Count3/5

At 37 tools, the count is high but still within a usable range. However, the server is named 'Github_private' yet includes only 7 GitHub-specific tools and 30+ unrelated tools (Pipeworx data, Polymarket betting, memory, etc.). This suggests the server aggregates multiple unrelated domains, making the count feel bloated for its apparent GitHub purpose.

Completeness2/5

Given the server name, the GitHub tool surface is severely incomplete: there are no create/update/delete operations for repos, no PR creation or merging, no issue comments, no branches, and no search across repos. The Pipeworx side is fairly comprehensive, but the mismatch between the server name and the actual tool set leaves major gaps for expected GitHub workflows.