Skip to main content
Glama

githubSearchRepositories

Read-onlyIdempotent

Search GitHub repositories by keywords, topics, owner, and filters like stars to discover open-source projects and codebases.

Instructions

Search GitHub repositories [EXTERNAL: GitHub API]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queriesYesResearch queries for githubSearchRepositories (1-3 queries per call for optimal resource management). Review schema before use for optimal results
responseCharOffsetNoCharacter offset for top-level bulk response pagination across results[]. Use when a multi-query response was auto-paginated.
responseCharLengthNoCharacter budget for top-level bulk response pagination across results[]. Overrides the shared default for this call.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultsYesArray of results, one per input query, discriminated by status
responsePaginationNoPagination metadata for top-level bulk response pagination across results[]

Schema Changelog

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

  1. Changed22 schema fields changedv9.1.1
    • removedInput schema / properties / queries / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / queries / items / properties / charLength
      Added value: +{
      +  "description": "Character budget for output pagination after domain pagination has been applied.",
      +  "maximum": 50000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / queries / items / properties / charOffset
      Added value: +{
      +  "description": "Character offset for output pagination after domain pagination has been applied.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / queries / items / properties / created / description
      Added value: +"Date: \">=YYYY-MM-DD\" or \"YYYY-MM-DD..YYYY-MM-DD\""
    • addedInput schema / properties / queries / items / properties / id
      Added value: +{
      +  "description": "Stable query identifier used to match each result to its input query. Required for every query. Use a short meaningful string like \"react_hooks_search\" or \"router_prs\".",
      +  "maxLength": 120,
      +  "minLength": 1,
      +  "pattern": "^[A-Za-z0-9._:-]+$",
      +  "type": "string"
      +}
    • addedInput schema / properties / queries / items / properties / keywordsToSearch / description
      Added value: +"Keywords (AND logic) across name, description, README"
    • addedInput schema / properties / queries / items / properties / limit / description
      Added value: +"Max repos (1-100). Default: 10"
    • addedInput schema / properties / queries / items / properties / mainResearchGoal / description
      Added value: +"Main research objective (multiple queries can share the same main goal for semantic grouping and session tracking)"
    • addedInput schema / properties / queries / items / properties / match / description
      Added value: +"[\"name\"|\"description\"|\"readme\"]. Very restrictive"
    • addedInput schema / properties / queries / items / properties / owner / description
      Added value: +"Repo owner/org to scope results"
    • addedInput schema / properties / queries / items / properties / page / description
      Added value: +"Page (1-10). Default: 1"
    • addedInput schema / properties / queries / items / properties / reasoning / description
      Added value: +"Why this query helps achieve the goal"
    • addedInput schema / properties / queries / items / properties / researchGoal / description
      Added value: +"Specific information this query seeks"
    • addedInput schema / properties / queries / items / properties / size / description
      Added value: +"Repo size in KB with operators"
    • addedInput schema / properties / queries / items / properties / sort / description
      Added value: +"stars | forks | updated | best-match"
    • addedInput schema / properties / queries / items / properties / stars / description
      Added value: +"Stars filter: \">500\", \"100..500\""
    • addedInput schema / properties / queries / items / properties / topicsToSearch / description
      Added value: +"GitHub topic tags"
    • addedInput schema / properties / queries / items / properties / updated / description
      Added value: +"Last metadata update (not code pushes)"
    • changedInput schema / properties / queries / items / required
      Previous value: -[
      -  "mainResearchGoal",
      -  "researchGoal",
      -  "reasoning"
      -]New value: +[
      +  "id",
      +  "mainResearchGoal",
      +  "researchGoal",
      +  "reasoning"
      +]
    • addedInput schema / properties / responseCharLength
      Added value: +{
      +  "description": "Character budget for top-level bulk response pagination across results[]. Overrides the shared default for this call.",
      +  "maximum": 50000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / responseCharOffset
      Added value: +{
      +  "description": "Character offset for top-level bulk response pagination across results[]. Use when a multi-query response was auto-paginated.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "responsePagination": {
      +      "additionalProperties": false,
      +      "description": "Pagination metadata for top-level bulk response pagination across results[]",
      +      "properties": {
      +        "charLength": {
      +          "description": "Character length of the current page",
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "charOffset": {
      +          "description": "Character offset of the current page",
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "currentPage": {
      +          "description": "Current page number (1-indexed)",
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "hasMore": {
      +          "description": "Whether more pages are available after the current page",
      +          "type": "boolean"
      +        },
      +        "totalChars": {
      +          "description": "Total number of characters in the full output",
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "totalPages": {
      +          "description": "Total number of pages available",
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "currentPage",
      +        "totalPages",
      +        "hasMore",
      +        "charOffset",
      +        "charLength",
      +        "totalChars"
      +      ],
      +      "type": "object"
      +    },
      +    "results": {
      +      "description": "Array of results, one per input query, discriminated by status",
      +      "items": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "data": {
      +                "additionalProperties": false,
      +                "description": "The tool-specific result data",
      +                "properties": {
      +                  "hints": {
      +                    "description": "Contextual hints and suggestions for next steps or better queries",
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "outputPagination": {
      +                    "additionalProperties": false,
      +                    "description": "Payload pagination metadata when the result body was size-paginated",
      +                    "properties": {
      +                      "charLength": {
      +                        "description": "Character length of the current page",
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "charOffset": {
      +                        "description": "Character offset of the current page",
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "currentPage": {
      +                        "description": "Current page number (1-indexed)",
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 9007199254740991,
      +                        "type": "integer"
      +                      },
      +                      "hasMore": {
      +                        "description": "Whether more pages are available after the current page",
      +                        "type": "boolean"
      +                      },
      +                      "totalChars": {
      +                        "description": "Total number of characters in the full output",
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "totalPages": {
      +                        "description": "Total number of pages available",
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 9007199254740991,
      +                        "type": "integer"
      +                      }
      +                    },
      +                    "required": [
      +                      "currentPage",
      +                      "totalPages",
      +                      "hasMore",
      +                      "charOffset",
      +                      "charLength",
      +                      "totalChars"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "pagination": {
      +                    "additionalProperties": false,
      +                    "description": "Pagination info for navigating through repository results",
      +                    "properties": {
      +                      "currentPage": {
      +                        "description": "Current page number (1-indexed)",
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 9007199254740991,
      +                        "type": "integer"
      +                      },
      +                      "hasMore": {
      +                        "description": "Whether more pages are available after the current page",
      +                        "type": "boolean"
      +                      },
      +                      "perPage": {
      +                        "description": "Results returned per page",
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 9007199254740991,
      +                        "type": "integer"
      +                      },
      +                      "totalMatches": {
      +                        "description": "Total matching results across all pages",
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "totalPages": {
      +                        "description": "Total number of pages available",
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 9007199254740991,
      +                        "type": "integer"
      +                      }
      +                    },
      +                    "required": [
      +                      "currentPage",
      +                      "totalPages",
      +                      "hasMore",
      +                      "perPage",
      +                      "totalMatches"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "repositories": {
      +                    "description": "Matching repositories",
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "createdAt": {
      +                          "description": "Creation timestamp",
      +                          "type": "string"
      +                        },
      +                        "defaultBranch": {
      +                          "description": "Default branch of the repository",
      +                          "type": "string"
      +                        },
      +                        "description": {
      +                          "description": "Repository description",
      +                          "type": "string"
      +                        },
      +                        "forksCount": {
      +                          "description": "Fork count",
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "language": {
      +                          "description": "Primary programming language of the repository",
      +                          "type": "string"
      +                        },
      +                        "openIssuesCount": {
      +                          "description": "Open issues count",
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "owner": {
      +                          "description": "Repository owner",
      +                          "type": "string"
      +                        },
      +                        "pushedAt": {
      +                          "description": "Last push timestamp",
      +                          "type": "string"
      +                        },
      +                        "repo": {
      +                          "description": "Repository name",
      +                          "type": "string"
      +                        },
      +                        "stars": {
      +                          "description": "Star count",
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "topics": {
      +                          "description": "Repository topics",
      +                          "items": {
      +                            "type": "string"
      +                          },
      +                          "type": "array"
      +                        },
      +                        "updatedAt": {
      +                          "description": "Last update timestamp",
      +                          "type": "string"
      +                        },
      +                        "url": {
      +                          "description": "Web URL for the repository",
      +                          "type": "string"
      +                        },
      +                        "visibility": {
      +                          "description": "Repository visibility",
      +                          "enum": [
      +                            "public",
      +                            "private",
      +                            "internal"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "owner",
      +                        "repo",
      +                        "stars",
      +                        "description",
      +                        "url",
      +                        "createdAt",
      +                        "updatedAt",
      +                        "pushedAt"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "type": "array"
      +                  }
      +                },
      +                "required": [
      +                  "repositories"
      +                ],
      +                "type": "object"
      +              },
      +              "id": {
      +                "description": "Stable query identifier matching the input query id",
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "status": {
      +                "const": "hasResults",
      +                "description": "Indicates the query returned results successfully",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "status",
      +              "data"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "data": {
      +                "additionalProperties": {},
      +                "description": "Empty result metadata (may contain hints or paging details)",
      +                "properties": {},
      +                "type": "object"
      +              },
      +              "id": {
      +                "description": "Stable query identifier matching the input query id",
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "status": {
      +                "const": "empty",
      +                "description": "Indicates the query returned no matching results",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "status",
      +              "data"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "data": {
      +                "additionalProperties": false,
      +                "description": "Error details including message, type, and recovery hints",
      +                "properties": {
      +                  "cwd": {
      +                    "description": "Working directory relevant to the error",
      +                    "type": "string"
      +                  },
      +                  "error": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "error": {
      +                            "description": "GitHub API error message",
      +                            "type": "string"
      +                          },
      +                          "hints": {
      +                            "description": "Provider-specific hints",
      +                            "items": {
      +                              "type": "string"
      +                            },
      +                            "type": "array"
      +                          },
      +                          "rateLimitRemaining": {
      +                            "description": "Remaining API requests in the current rate limit window",
      +                            "type": "number"
      +                          },
      +                          "rateLimitReset": {
      +                            "description": "Rate limit reset time in milliseconds since epoch",
      +                            "type": "number"
      +                          },
      +                          "retryAfter": {
      +                            "description": "Retry-after delay in seconds",
      +                            "type": "number"
      +                          },
      +                          "scopesSuggestion": {
      +                            "description": "Suggested scopes needed to resolve the error",
      +                            "type": "string"
      +                          },
      +                          "status": {
      +                            "description": "HTTP status code",
      +                            "maximum": 9007199254740991,
      +                            "minimum": -9007199254740991,
      +                            "type": "integer"
      +                          },
      +                          "type": {
      +                            "description": "GitHub API error category",
      +                            "enum": [
      +                              "http",
      +                              "graphql",
      +                              "network",
      +                              "unknown"
      +                            ],
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "error",
      +                          "type"
      +                        ],
      +                        "type": "object"
      +                      }
      +                    ],
      +                    "description": "Error message or API error object"
      +                  },
      +                  "errorCode": {
      +                    "description": "Tool error code",
      +                    "type": "string"
      +                  },
      +                  "errorType": {
      +                    "description": "Tool-specific error type (e.g. symbol_not_found, size_limit)",
      +                    "type": "string"
      +                  },
      +                  "hints": {
      +                    "description": "Recovery hints",
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "resolvedPath": {
      +                    "description": "Resolved filesystem path involved in the error",
      +                    "type": "string"
      +                  },
      +                  "searchRadius": {
      +                    "description": "LSP search radius when symbol not found",
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "error"
      +                ],
      +                "type": "object"
      +              },
      +              "id": {
      +                "description": "Stable query identifier matching the input query id",
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "status": {
      +                "const": "error",
      +                "description": "Indicates the query encountered an error",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "status",
      +              "data"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "results"
      +  ],
      +  "type": "object"
      +}
  2. Changed54 schema fields changedv1.0.0
    • changedInput schema / properties / queries / description
      Previous value: -"Array of up to 5 different search queries for parallel execution"New value: +"Research queries for githubSearchRepositories (1-3 queries per call for optimal resource management). Review schema before use for optimal results"
    • removedInput schema / properties / queries / items / properties / archived
      Removed value: -{
      -  "description": "Archive status filter. false (active repos only), true (archived repos only).",
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • removedInput schema / properties / queries / items / properties / created / anyOf
      Removed value: -[
      -  {
      -    "pattern": "^(>=?\\d{4}-\\d{2}-\\d{2}|<=?\\d{4}-\\d{2}-\\d{2}|\\d{4}-\\d{2}-\\d{2}\\.\\.\\d{4}-\\d{2}-\\d{2}|\\d{4}-\\d{2}-\\d{2})$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / queries / items / properties / created / description
      Removed value: -"Repository creation date filter. Format: \">2020-01-01\" (after), \">=2020-01-01\" (on or after), \"<2023-12-31\" (before), \"<=2023-12-31\" (on or before), \"2020-01-01..2023-12-31\" (range), \"2023-01-01\" (exact)."
    • addedInput schema / properties / queries / items / properties / created / type
      Added value: +"string"
    • removedInput schema / properties / queries / items / properties / exactQuery
      Removed value: -{
      -  "description": "Single exact phrase/word search",
      -  "type": "string"
      -}
    • removedInput schema / properties / queries / items / properties / fallbackParams
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "Fallback parameters if original query returns no results, overrides the original query and try again",
      -  "type": "object"
      -}
    • removedInput schema / properties / queries / items / properties / followers
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    {
      -      "pattern": "^(>=?\\d+|<=?\\d+|\\d+\\.\\.\\d+|\\d+)$",
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Repository owner followers count. Format: \">1000\" (popular developers), \">=500\" (established developers), \"<100\" (smaller developers), \"100..1000\" (range)."
      -}
    • removedInput schema / properties / queries / items / properties / forks
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    {
      -      "pattern": "^(>=?\\d+|<=?\\d+|\\d+\\.\\.\\d+|\\d+)$",
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Fork count filter. Format: \">N\" (more than), \"<N\" (less than), \"N..M\" (range)."
      -}
    • removedInput schema / properties / queries / items / properties / good-first-issues
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    {
      -      "pattern": "^(>=?\\d+|<=?\\d+|\\d+\\.\\.\\d+|\\d+)$",
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Good first issues count. Format: \">5\" (many beginner issues), \"1..10\" (some beginner issues)."
      -}
    • removedInput schema / properties / queries / items / properties / help-wanted-issues
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    {
      -      "pattern": "^(>=?\\d+|<=?\\d+|\\d+\\.\\.\\d+|\\d+)$",
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Help wanted issues count. Format: \">10\" (many help wanted), \"1..5\" (some help wanted)."
      -}
    • removedInput schema / properties / queries / items / properties / id
      Removed value: -{
      -  "description": "Optional identifier for the query",
      -  "type": "string"
      -}
    • removedInput schema / properties / queries / items / properties / include-forks
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "enum": [
      -        "false",
      -        "true",
      -        "only"
      -      ],
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Fork inclusion. \"false\" (exclude forks), \"true\" (include forks), \"only\" (forks only)."
      -}
    • addedInput schema / properties / queries / items / properties / keywordsToSearch
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / queries / items / properties / language
      Removed value: -{
      -  "description": "Programming language filter. Filters repositories by primary language.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedInput schema / properties / queries / items / properties / license
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "License filter. Filter repositories by license type."
      -}
    • removedInput schema / properties / queries / items / properties / limit / anyOf
      Removed value: -[
      -  {
      -    "maximum": 100,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / queries / items / properties / limit / default
      Added value: +10
    • removedInput schema / properties / queries / items / properties / limit / description
      Removed value: -"Maximum number of repositories to return (1-100)."
    • addedInput schema / properties / queries / items / properties / limit / maximum
      Added value: +100
    • addedInput schema / properties / queries / items / properties / limit / minimum
      Added value: +1
    • addedInput schema / properties / queries / items / properties / limit / type
      Added value: +"integer"
    • addedInput schema / properties / queries / items / properties / mainResearchGoal
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / queries / items / properties / match / anyOf
      Removed value: -[
      -  {
      -    "enum": [
      -      "name",
      -      "description",
      -      "readme"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "items": {
      -      "enum": [
      -        "name",
      -        "description",
      -        "readme"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / queries / items / properties / match / description
      Removed value: -"Search scope. Where to search: name, description, or readme content."
    • addedInput schema / properties / queries / items / properties / match / items
      Added value: +{
      +  "enum": [
      +    "name",
      +    "description",
      +    "readme"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / queries / items / properties / match / type
      Added value: +"array"
    • removedInput schema / properties / queries / items / properties / number-topics
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    {
      -      "pattern": "^(>=?\\d+|<=?\\d+|\\d+\\.\\.\\d+|\\d+)$",
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Number of topics filter. Format: \">5\" (many topics), \">=3\" (at least 3), \"<10\" (few topics), \"1..3\" (range), \"5\" (exact)."
      -}
    • removedInput schema / properties / queries / items / properties / order
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "enum": [
      -        "asc",
      -        "desc"
      -      ],
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Sort order direction."
      -}
    • removedInput schema / properties / queries / items / properties / owner / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / queries / items / properties / owner / description
      Removed value: -"Repository owner/organization name(s). Search within specific organizations or users."
    • addedInput schema / properties / queries / items / properties / owner / type
      Added value: +"string"
    • addedInput schema / properties / queries / items / properties / page
      Added value: +{
      +  "default": 1,
      +  "maximum": 10,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • removedInput schema / properties / queries / items / properties / queryTerms
      Removed value: -{
      -  "description": "Multiple search terms for broader coverage",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedInput schema / properties / queries / items / properties / reasoning
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / queries / items / properties / researchGoal
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / queries / items / properties / size / anyOf
      Removed value: -[
      -  {
      -    "pattern": "^(>=?\\d+|<=?\\d+|\\d+\\.\\.\\d+|\\d+)$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / queries / items / properties / size / description
      Removed value: -"Repository size filter in KB. Format: \">1000\" (large projects), \">=500\" (medium-large), \"<100\" (small projects), \"<=50\" (tiny), \"100..1000\" (medium range), \"500\" (exact)."
    • addedInput schema / properties / queries / items / properties / size / type
      Added value: +"string"
    • removedInput schema / properties / queries / items / properties / sort / anyOf
      Removed value: -[
      -  {
      -    "enum": [
      -      "forks",
      -      "help-wanted-issues",
      -      "stars",
      -      "updated",
      -      "best-match"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / queries / items / properties / sort / description
      Removed value: -"Sort criteria."
    • addedInput schema / properties / queries / items / properties / sort / enum
      Added value: +[
      +  "forks",
      +  "stars",
      +  "updated",
      +  "best-match"
      +]
    • addedInput schema / properties / queries / items / properties / sort / type
      Added value: +"string"
    • removedInput schema / properties / queries / items / properties / stars / anyOf
      Removed value: -[
      -  {
      -    "minimum": 0,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^(>=?\\d+|<=?\\d+|\\d+\\.\\.\\d+|\\d+)$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / queries / items / properties / stars / description
      Removed value: -"Star count filter. Format: \">N\" (more than), \"<N\" (less than), \"N..M\" (range)."
    • addedInput schema / properties / queries / items / properties / stars / type
      Added value: +"string"
    • removedInput schema / properties / queries / items / properties / topic
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Find repositories by technology/subject"
      -}
    • addedInput schema / properties / queries / items / properties / topicsToSearch
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / queries / items / properties / updated / anyOf
      Removed value: -[
      -  {
      -    "pattern": "^(>=?\\d{4}-\\d{2}-\\d{2}|<=?\\d{4}-\\d{2}-\\d{2}|\\d{4}-\\d{2}-\\d{2}\\.\\.\\d{4}-\\d{2}-\\d{2}|\\d{4}-\\d{2}-\\d{2})$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / queries / items / properties / updated / description
      Removed value: -"Last updated date filter. Format: \">2024-01-01\" (recently updated), \">=2024-01-01\" (on or after), \"<2022-01-01\" (not recently updated), \"2023-01-01..2024-12-31\" (range)."
    • addedInput schema / properties / queries / items / properties / updated / type
      Added value: +"string"
    • removedInput schema / properties / queries / items / properties / visibility
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "enum": [
      -        "public",
      -        "private",
      -        "internal"
      -      ],
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Repository visibility."
      -}
    • addedInput schema / properties / queries / items / required
      Added value: +[
      +  "mainResearchGoal",
      +  "researchGoal",
      +  "reasoning"
      +]
    • changedInput schema / properties / queries / maxItems
      Previous value: -5New value: +3
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds valuable behavioral context: gotchas like pushedAt vs updatedAt distinction, stars filter noise, archived auto-exclusion, and synonym suggestions. Adds significant value beyond annotations.

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 moderately long but well-structured with clear sections (<when>, <fromTool>, <toTool>, <gotchas>, <examples>). Every section adds value and the front-loading of purpose is good. Slightly verbose but acceptable given complexity.

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?

Given the complexity of the tool (multiple query parameters, pagination, interaction with other tools), the description is complete. It covers usage context, tool flow, gotchas, and examples. Output schema exists, so return values are not needed.

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 coverage is 100% with detailed parameter descriptions (e.g., stars filter format, match enum). The description itself doesn't add much beyond schema for individual parameters but provides examples that illustrate usage. Baseline 3 is appropriate as schema does the heavy lifting.

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 clearly states 'Search GitHub repositories' and distinguishes from sibling tools like packageSearch (faster for known packages) and githubSearchCode (code search). The purpose is specific and unambiguous.

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

Usage Guidelines5/5

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

The description includes explicit <when> usage context (external research, finding repos) and <fromTool>/<toTool> sections that guide the flow between tools. It also names alternatives like packageSearch for known packages, providing clear when-to-use guidance.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bgauryy/octocode'

If you have feedback or need assistance with the MCP directory API, please join our Discord server