Skip to main content
Glama
Hemanth-hexo

GitHub Discovery MCP Server

by Hemanth-hexo

GitHub Discovery MCP Server

An MCP server that helps Claude find relevant open-source GitHub repositories for research, learning, or a project you're building — and then dig into a specific repo's structure, code, history, and branches once you've found it worth a closer look.

What it does

Discovery — find repos from a description or topic:

  • search_github_repos(query, filters) — free-text search, ranked by a blend of stars and recent activity so an actively maintained project can beat a similarly popular but abandoned one

  • search_by_topic(topic, filters) — search by GitHub's curated topic tags (e.g. rag, llm-agent) instead of free text

  • get_trending_repos(since, filters) — repos created recently that are already gaining stars fast, as an approximation of "trending" (GitHub's API has no official trending endpoint)

Inspection — once you've picked a repo, look inside it:

  • get_repo_overview(repo) — description, stars/forks/issues, license, topics, language breakdown, latest release, approx. contributor count, and a README preview

  • get_repo_structure(repo, path) — browse the file tree one directory at a time

  • get_file_content(repo, path) — read a specific file's contents

  • get_recent_commits(repo, branch, limit) — recent commit history

  • list_branches(repo, limit) — branches and what each currently points to

Comparison — deciding between a few candidates:

  • compare_repos(repos) — 2-4 repos side by side as a table (stars, forks, issues, license, language, contributors, age, activity)

All the repo parameters above accept either "owner/name" or a full GitHub URL — you can paste the full_name/URL straight out of a search result.

Related MCP server: GitBridge

Requirements

  • Node.js 20 or later

  • No GitHub account or API key required for light use — see Rate limits for when you'll want one

Install & run

git clone https://github.com/Hemanth-hexo/Git_mcp.git
cd Git_mcp
npm install

Run it directly (it will sit waiting for a client on stdin/stdout — that's expected):

npm start

To try it interactively in a browser without wiring it into Claude Desktop yet, use the MCP Inspector:

npm run inspect

This opens a local web UI where you can call any of the tools by hand and see the raw result.

Add to Claude Desktop

Edit Claude Desktop's config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add an entry under mcpServers (create the file/object if it doesn't exist), using the absolute path to server.js on your machine — run pwd inside the cloned folder to get it, then append /server.js. Setting GITHUB_TOKEN here too is strongly recommended once you use the inspection/comparison tools — see Rate limits:

{
  "mcpServers": {
    "github-discovery": {
      "command": "node",
      "args": ["/absolute/path/to/Git_mcp/server.js"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

For example, if you cloned into your home directory, the path would look like /Users/yourname/Git_mcp/server.js (macOS/Linux) or C:\\Users\\yourname\\Git_mcp\\server.js (Windows). GITHUB_TOKEN is optional — omit the env block entirely to run without one.

Restart Claude Desktop. You should see "github-discovery" listed as a connected MCP server (check the 🔌/tools icon in the app), with all 9 tools available.

Example prompts

Once connected, just talk to Claude naturally:

  • "Find me RAG implementation repos"

  • "Show me containerization examples in Go"

  • "What's trending in agent frameworks this week?"

  • "Find repos tagged with vector-database"

  • "Give me an overview of huggingface/transformers"

  • "What's the file structure of that repo look like?"

  • "Show me the recent commits on it"

  • "Compare langchain, llamaindex, and haystack for me"

Rate limits

GitHub's REST API has two separate rate-limit buckets, and this server's tools split across both:

Bucket

Used by

Unauthenticated

With GITHUB_TOKEN

search

search_github_repos, search_by_topic, get_trending_repos

10 requests/min

30 requests/min

core

get_repo_overview, get_repo_structure, get_file_content, get_recent_commits, list_branches, compare_repos

60 requests/hour

5,000 requests/hour

The search bucket is generous enough for casual interactive use. The core bucket is not — it resets hourly, not per-minute, and some tools spend more than one request per call (get_repo_overview makes up to 4, compare_repos makes 2 per repo compared). If you plan to use the inspection or comparison tools more than a few times an hour, set a token:

  1. Create one at github.com/settings/tokens (classic token, no scopes needed — this server only reads public data)

  2. Add it as GITHUB_TOKEN in the Claude Desktop config's env block (shown above), or export it in your shell before running npm start/npm run inspect locally

If a rate limit is hit, the server returns a clear message (instead of failing silently) telling you when it resets.

Project files

  • server.js — entry point; wires up the MCP server and registers all tool groups

  • tools/discovery.jssearch_github_repos, search_by_topic, get_trending_repos

  • tools/inspect.jsget_repo_overview, get_repo_structure, get_file_content, get_recent_commits, list_branches

  • tools/compare.jscompare_repos

  • lib/github.js — shared GitHub API client, auth header injection, rate-limit/error handling

  • lib/format.js — shared formatting helpers (relative dates, repo-ref parsing, truncation)

  • package.json — dependencies (@modelcontextprotocol/server, zod)

Available Tools

9 tools
compare_reposA

Compare 2-4 GitHub repos side by side as a table: stars, forks, open issues, license, primary language, approximate contributor count, and how recently each was created/updated. Use this to help decide between finalists after search_github_repos, instead of eyeballing separate results.

ParametersJSON Schema
NameRequiredDescriptionDefault
reposYes2 to 4 repos, each as 'owner/name' or a GitHub URL, e.g. ['facebook/react', 'vuejs/vue'].

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses the return format as a table, lists the exact data points, and signals imprecision with 'approximate contributor count'. It does not mention rate limits or network dependency, but the compare operation is clearly non-mutating and well described.

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?

Two sentences with no filler. The first sentence front-loads the action, input count, and output contents; the second gives usage positioning. Every sentence 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 description tells the agent exactly what to input and what fields will appear in the result, which is enough for a simple comparison tool with one well-schema'd parameter. Minor caveats about error behavior or rate limits are not stated, but they are not essential for correct invocation.

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 schema already fully documents the single 'repos' parameter with min/max items and an example. The description repeats the 2-4 constraint and GitHub scope but adds no meaningful semantics beyond the schema. Baseline 3 is appropriate given the 100% schema coverage.

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 the specific verb 'Compare', names the resource '2-4 GitHub repos', and states the output form: 'side by side as a table' with a clear list of fields. This distinguishes it from sibling tools like search_github_repos and get_repo_overview.

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?

The description explicitly says 'Use this to help decide between finalists after search_github_repos', giving a clear when-to-use context. It contrasts with 'eyeballing separate results' but does not name alternative tools for when not to use it, so it stops short of a full exclusion set.

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

get_file_contentA

Read the contents of one specific text file in a repo (source code, config, docs). Use get_repo_structure first if you're not sure of the exact path. Binary files (images, archives, etc.) are refused with a link instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path inside the repo, e.g. 'src/index.js' or 'README.md'.
repoYesRepo as 'owner/name' (e.g. 'facebook/react') or a GitHub URL — usually copied straight from a search result.

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full transparency burden. It explicitly states that text file contents are returned and that binary files are refused with a link, which covers the main behavioral aspects. It does not mention auth requirements or side effects, but for a read-only operation, this is sufficient.

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 two concise sentences that efficiently cover purpose, usage guidance, and limitations. There is no redundant or extraneous information, and the structure is clear and direct.

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?

For a simple tool with two well-described parameters and no output schema, the description provides all necessary context: what it does, when to use it (including a hint about the sibling tool), and how it handles binary files. Nothing essential is missing.

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?

Both parameters (repo and path) are fully described in the schema with examples, achieving 100% schema description coverage. The description itself adds no additional parameter-specific context, so it does not enhance beyond the schema. This aligns with the baseline of 3 for high schema coverage.

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 the tool's purpose: to read the contents of a single text file. It distinguishes itself from get_repo_structure by noting that it retrieves file contents rather than structure, and it specifies that binary files are refused, setting clear boundaries.

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 provides explicit guidance on when to use this tool: it advises using get_repo_structure first if the exact path is unknown, and it warns that binary files are not supported, redirecting users with a link. This gives clear when-to and when-not-to usage instructions.

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

get_recent_commitsA

Get the most recent commits to a repo (or one branch), to see what's actively being worked on. Each entry shows the short SHA, author, when it happened, and the commit message.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepo as 'owner/name' (e.g. 'facebook/react') or a GitHub URL — usually copied straight from a search result.
limitNoHow many commits to return. Default: 10, max: 30.
branchNoBranch name to look at. Omit for the default branch.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of explaining behavior. It does so effectively by disclosing the optional branch scoping and what each returned entry contains. It could mention ordering or lack of diffs, but the behavior is clear and unlikely to surprise the agent.

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 two sentences with no filler. The first sentence states the action, scope, and purpose; the second describes the return value. Every word earns its place, and the most important information is front-loaded.

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 description is complete enough for a straightforward read-only listing tool. It explains the return shape despite the absence of an output schema, and parameter details are fully covered by the schema. A minor gap is that it doesn't explicitly mention sorting order, but 'most recent' implies chronological order, so this is not a significant omission.

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 already provides complete descriptions for all three parameters, including format, defaults, bounds, and the meaning of omitting `branch`. The description adds no meaningful parameter-level detail beyond reinforcing that branch is optional, so the baseline score of 3 is appropriate.

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 a specific action ('Get the most recent commits') with a well-defined resource and scope ('to a repo (or one branch)'). It also distinguishes itself from sibling tools by focusing on commit history rather than repos, branches, or file contents. The addition of the output fields ('short SHA, author, when it happened, and the commit message') further clarifies what the tool is for.

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?

The phrase 'to see what's actively being worked on' provides clear contextual guidance on when to use this tool. It does not explicitly name alternatives or exclusions, but for a simple read-only commit listing tool, this level of usage context is sufficient.

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

get_repo_overviewA

Get a snapshot of one specific GitHub repo: description, stars/forks/open issues, license, topics, primary languages, latest release, approximate contributor count, and a README preview. Use this after search_github_repos to understand a specific candidate before diving into its code.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepo as 'owner/name' (e.g. 'facebook/react') or a GitHub URL — usually copied straight from a search result.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently lists what the tool returns and even adds precision with 'approximate contributor count' and 'README preview,' which prevents over-expectations. It does not mention rate limits, error behavior, or data freshness, but for a read-only snapshot tool the disclosed output surface is fairly complete.

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?

Two sentences with no filler. The first sentence front-loads the operation and output fields; the second gives a clear usage directive. Every part contributes to selection and invocation.

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 single-parameter tool with no output schema and no annotations, the description is nearly complete: it covers the input source, the full set of return values, and the intended workflow position. The only minor gaps are exact response formatting, error handling, and potential rate/resource limits, which are not critical for an overview snapshot.

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%: the input schema already explains the 'owner/name' format, accepts GitHub URLs, and notes that the value is usually copied from a search result. The main description adds only that the repo is 'one specific GitHub repo,' which does not materially go beyond the schema. A baseline 3 is appropriate when the schema already handles parameter meaning.

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 opens with a specific verb and resource: 'Get a snapshot of one specific GitHub repo,' then enumerates the exact data categories returned (description, stars/forks/open issues, license, topics, languages, latest release, contributor count, README preview). This clearly differentiates it from search-oriented siblings like search_github_repos and code-focused tools like get_file_content.

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?

The description provides explicit workflow context: 'Use this after search_github_repos to understand a specific candidate before diving into its code.' This tells the agent when in the discovery flow the tool belongs and signals that it is a pre-code step. It does not name explicit alternatives or exclusion conditions for siblings like compare_repos or get_repo_structure, so it stops short of a 5.

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

get_repo_structureA

List the files and folders at a path inside a repo, like browsing a file tree one level at a time. Start with no path to see the root, then call again with a subdirectory's path (e.g. 'src') to go deeper.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirectory path inside the repo, e.g. 'src/utils'. Omit for the repo root.
repoYesRepo as 'owner/name' (e.g. 'facebook/react') or a GitHub URL — usually copied straight from a search result.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It explicitly discloses that listing is one level at a time, that omitting path returns the root, and that repeated calls navigate deeper. It does not mention output formatting, ordering, or edge cases, but the core behavior is transparent.

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?

Two concise sentences front-load the core action and then give the key usage pattern. Every sentence earns its place; there is no redundant or filler content.

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 relatively simple browsing tool with complete schema description and no output schema, the description is nearly sufficient. It explains how to start and how to go deeper, though it could be slightly more explicit about what the returned listing contains beyond 'files and folders'.

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 coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining path semantics ('Start with no path to see the root') and providing an example ('src'), which helps the agent correctly omit or supply the path parameter.

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') and a clear resource ('files and folders at a path inside a repo'), and distinguishes this tool from sibling tools by describing directory-structure browsing rather than file content or branch listing. The file-tree analogy makes the purpose immediately understandable.

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?

The description provides clear practical guidance: start at the root by omitting path, then call again with a subdirectory path to go deeper. It does not explicitly compare against alternatives like get_file_content or list_branches, but the step-by-step usage context is strong and unambiguous.

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

list_branchesA

List branches in a repo and the commit each currently points to. Useful for finding active feature branches or confirming the default branch name before calling other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepo as 'owner/name' (e.g. 'facebook/react') or a GitHub URL — usually copied straight from a search result.
limitNoHow many branches to return. Default: 20, max: 100.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It explains that the tool lists branches and the commit each points to, and implies a read-only operation, but it does not mention potential limits, pagination, or lack of side effects beyond what the schema already states.

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 two concise sentences. The primary capability is front-loaded in the first sentence, and the second sentence provides practical context without unnecessary detail.

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 straightforward list operation, the description covers what the tool does and when it is useful. There is no output schema, but the stated output — branches and their commits — is clear enough for an agent to know what to expect.

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%, so the schema already documents both parameters, 'repo' and 'limit'. The description does not add extra semantic detail about parameters, but it does not need to; the schema is sufficient.

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 states a specific verb and resource: 'List branches in a repo' and adds the useful detail that it returns the commit each branch points to. This clearly distinguishes it from sibling tools like get_repo_overview or get_recent_commits.

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?

The description gives concrete use cases: finding active feature branches and confirming the default branch name before calling other tools. It does not explicitly state when not to use it or name alternative tools, but the provided context is enough to guide appropriate selection.

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

search_by_topicA

Find GitHub repositories tagged with a specific topic label (GitHub's own categorization tags, e.g. 'machine-learning', 'llm-agent', 'containerization'). More precise than free-text search when you already know the ecosystem's term for what you want, since it matches curated tags rather than description text.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesA GitHub topic tag, e.g. 'rag', 'llm-agent', 'docker', 'vector-database'. Lowercase, hyphenated, no spaces.
filtersNoOptional filters to narrow or broaden the search.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose a key behavior—matching curated GitHub topic tags rather than description text—and provides examples. However, it does not mention result ordering, pagination, error behavior, or any constraints on topic matching beyond lowercase/hyphenated guidance in the schema.

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?

Two sentences with no filler. The core action and examples come first, and the usage guidance is concise and immediately actionable.

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?

Given the rich schema covering all parameters and the clear differentiator from sibling tools, the description is nearly complete. The only notable gap is the lack of any statement about the return shape, and without an output schema the agent must infer that the result is a list of repository records.

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%, so the schema already documents the topic and filter parameters well. The description adds useful context about what a topic tag is and how it differs from free-text, but it does not need to explain parameter syntax since the schema covers it.

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 states a specific verb ('Find') and resource ('GitHub repositories') and narrows the operation to topic-label matching. It explicitly contrasts with free-text search, distinguishing this tool from sibling search_github_repos without needing to inspect the schema.

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?

It gives clear guidance: use this tool when you already know the ecosystem's term for the topic, and frames it as more precise than free-text search. This effectively routes the agent between search_by_topic and search_github_repos with an explicit condition.

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

search_github_reposA

Search GitHub for open-source repositories relevant to a research topic, technology, or project idea. Returns the top matching repos ranked by a blend of popularity (stars) and how recently they've been maintained, each with a short summary of what makes it useful. Good for requests like 'find me RAG implementation repos' or 'show me containerization examples in Go'.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat the user is building, researching, or learning, phrased as GitHub search terms, e.g. 'retrieval augmented generation vector database' or 'containerization examples'.
filtersNoOptional filters to narrow or broaden the search.

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden, and it delivers: it reveals the ranking blend (stars and maintenance recency) and the return shape (a short usefulness summary per repo). It does not disclose rate limits or result-count behavior, but for a read-only search tool the disclosed traits are the key ones.

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?

Three sentences with no waste: action/scope, ranking+output behavior, and usage examples. Each sentence earns its place and the core behavior is front-loaded in the first sentence.

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 moderate complexity (2 params, one nested object, no output schema, no annotations), the description covers the essential gaps: return value shape and ranking rationale. It is not exhaustive — result count, pagination, and explicit sibling differentiation are absent — but nothing an agent needs to call it correctly is critically missing.

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%, so the baseline is 3; the schema already documents query phrasing and each filter parameter. The description's example queries add minor illustrative value but no new parameter information beyond what the schema provides.

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?

The description states a specific verb and resource — 'Search GitHub for open-source repositories' — and gives the context (research topic, technology, project idea) plus example request phrasings. It stops short of 5 because it never names a sibling (e.g., search_by_topic) or explicitly says how it differs from them, though the ranking-and-summary output description partially distinguishes it.

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?

'Good for requests like...' with two concrete examples ('find me RAG implementation repos', 'show me containerization examples in Go') establishes clear when-to-use context. It lacks explicit when-not-to-use guidance or routing to alternatives among the eight sibling tools, so it does not earn a 5.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv2.0.0
    • First observedcompare_repos
    • First observedget_file_content
    • First observedget_recent_commits
    • First observedget_repo_overview
    • First observedget_repo_structure
    • First observedget_trending_repos
    • First observedlist_branches
    • First observedsearch_by_topic
    • First observedsearch_github_repos

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a distinct stage: searching, topic filtering, trending, overview, structure, comparison, file content, commits, and branches. The two search tools are differentiated by free-text vs. curated topic tags, so an agent can choose without confusion.

Naming Consistency5/5

Tool names consistently follow a snake_case verb_noun pattern: search_, get_, compare_, and list_. The small variation in search_github_repos vs. search_by_topic does not break the overall predictability.

Tool Count5/5

Nine tools is well-scoped for a GitHub discovery server. Each tool earns its place in the workflow from finding repositories to inspecting their internals, without redundant or excessive surface area.

Completeness5/5

The tool set covers the full discovery lifecycle: find candidates via search/topic/trending, evaluate them via overview/compare, and explore details via structure/file/commits/branches. There are no obvious dead ends or missing operations for the server's stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/Hemanth-hexo/Git_mcp'

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