Skip to main content
Glama

github_search

GitHub — search: repositories, code, issues/PRs, accounts, commits.

q takes GitHub's qualifier syntax, passed as-is: repo:, org:, language:, is:issue / is:pr, state:, in:file…

⚠️ Cap of 1,000 results, whatever total_count announces. This counter is an estimate of the corpus, NOT the number of retrievable rows: beyond that, GitHub answers 422. The response therefore carries a computed troncature, which is also true when GitHub gave up the search midway (incomplete_results) — two causes invisible otherwise.

⚠️ Code search has its own rules, and they explain most of the "why doesn't it find it?" questions: only the default branch is indexed, files larger than 384 KB are not, and at least one real term is needed — repo:x alone is not enough. It does not return the file's content: read it afterwards with github_files op='read'.

⚠️ Its own, low usage limit (~30 requests/minute), an order of magnitude below the rest of the API.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "github_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNothe query, GitHub syntax (required).
opNorepos | code | issues | users | commits.repos
_orgNoOrg (id) de CET APPEL. `oto_list_orgs()`.
pageNopage number.
sortNodepends on op — stars/forks/updated (repos), indexed (code), comments/created/updated (issues). Absent = by relevance.
orderNoasc | desc.
_groupNoÉquipe (id) de CET APPEL, sous son org parente.
_run_idNoOBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas.
_accountNoCompte à OPÉRER parmi : `Julien` (org), `Tulina front` (org). `oto_identity(op='list')`.
_projectNoProjet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`.
per_pageNorows per page (1-100, default 30).
_instanceNoInstance de connecteur PRÉCISE (un credential exact). `oto_instance(op='list')`.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full behavioral burden and does so in detail: a hard 1,000-result cap that contradicts `total_count`, a 422 beyond it, a computed `troncature` field that is also true on `incomplete_results`, code-search indexing limits (default branch only, 384 KB ceiling, at least one real term required), and a ~30 req/min rate limit an order of magnitude below the rest of the API. These are exactly the failure modes an agent would otherwise hit blind.

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?

Three front-loaded warning blocks, each with a distinct topic (result cap, code-search rules, rate limit), and no filler sentences. The ⚠️ markers and inline bold add visual noise, but every paragraph carries non-obvious operational information that would be costly to omit.

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?

For a 12-parameter tool with no annotations and no output schema, the description covers the dominant risks: query syntax, per-op sorting behavior is left to the schema, truncation semantics, and rate limits. It does not explain how `page` interacts with the 1,000-row ceiling or what the response body otherwise contains, which is a modest remaining gap given the schema documents the meta-parameters at 100% coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds genuine meaning beyond it by documenting GitHub qualifier syntax for `q` (`repo:`, `org:`, `language:`, `is:issue`/`is:pr`, `state:`, `in:file`) and the constraint that `repo:x` alone is insufficient for code search, which the schema does not state.

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 opening line names a specific verb and resource ("GitHub — search") and enumerates the five searchable corpora: repositories, code, issues/PRs, accounts, commits, matching the `op` enum exactly. An agent can tell this apart from the listing siblings (github_repos, github_issues, github_pulls) because the description frames it as a query-driven search rather than a scoped list.

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?

It explicitly routes the agent onward for the common follow-up: "It does not return the file's content: read it afterwards with github_files op='read'." That is a real when-to-use-this-vs-sibling instruction. However, it never states when to prefer github_search over github_repos / github_issues / github_pulls for simple listing, nor which `op` to pick for a given intent beyond the enum names.

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