github_repo_search
Find GitHub repositories by keyword or topic to locate projects, libraries, or frameworks. Returns repository details like names, descriptions, and URLs for discovery.
Instructions
Search for GitHub repositories by keyword or topic.
USE THIS WHEN: You need to find repositories for a library, framework, or topic.
BEST FOR: Discovering which repository contains a specific project.
Returns repository names, descriptions, stars, and URLs - but NOT the code itself.
To explore code after finding a repo, use:
- get_repo_tree() to see all files
- list_repo_contents() to browse directories
- get_file_content() to read specific files
Args:
query: Search keywords (e.g., "machine learning", "web framework")
limit: Maximum number of results (default 5)
language: Filter by programming language (default "Python")
Example: github_repo_search("requests") → Finds psf/requests repository
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No | ||
| language | No | Python |
Implementation Reference
- src/RTFD/providers/github.py:626-651 (handler)Main handler function for the github_repo_search tool. Searches GitHub repositories using the _search_repos helper and returns serialized result.async def github_repo_search( query: str, limit: int = 5, language: str | None = "Python" ) -> CallToolResult: """ Search for GitHub repositories by keyword or topic. USE THIS WHEN: You need to find repositories for a library, framework, or topic. BEST FOR: Discovering which repository contains a specific project. Returns repository names, descriptions, stars, and URLs - but NOT the code itself. To explore code after finding a repo, use: - get_repo_tree() to see all files - list_repo_contents() to browse directories - get_file_content() to read specific files Args: query: Search keywords (e.g., "machine learning", "web framework") limit: Maximum number of results (default 5) language: Filter by programming language (default "Python") Example: github_repo_search("requests") → Finds psf/requests repository """ result = await self._search_repos(query, limit=limit, language=language) return serialize_response_with_meta(result)
- src/RTFD/providers/github.py:59-92 (helper)Helper function that performs the actual GitHub repository search API call and formats results.async def _search_repos( self, query: str, limit: int = 5, language: str | None = "Python" ) -> list[dict[str, Any]]: """Query GitHub's repository search API.""" headers = self._get_headers() params = {"q": query, "per_page": str(limit)} if language: params["q"] = f"{query} language:{language}" async with await self._http_client() as client: resp = await client.get( "https://api.github.com/search/repositories", params=params, headers=headers, ) resp.raise_for_status() payload = resp.json() repos: list[dict[str, Any]] = [] for item in payload.get("items", []): repos.append( { "name": item.get("full_name"), "description": item.get("description") or "", "stars": item.get("stargazers_count", 0), "url": item.get("html_url"), "default_branch": item.get("default_branch"), } ) if len(repos) >= limit: break return repos
- src/RTFD/providers/github.py:928-933 (registration)Registration of the github_repo_search tool in the tools dictionary returned by get_tools().tools = { "github_repo_search": github_repo_search, "github_code_search": github_code_search, "list_github_packages": list_github_packages, "get_package_versions": get_package_versions, }
- src/RTFD/providers/github.py:629-648 (schema)Docstring providing input schema, usage instructions, and examples for the tool.""" Search for GitHub repositories by keyword or topic. USE THIS WHEN: You need to find repositories for a library, framework, or topic. BEST FOR: Discovering which repository contains a specific project. Returns repository names, descriptions, stars, and URLs - but NOT the code itself. To explore code after finding a repo, use: - get_repo_tree() to see all files - list_repo_contents() to browse directories - get_file_content() to read specific files Args: query: Search keywords (e.g., "machine learning", "web framework") limit: Maximum number of results (default 5) language: Filter by programming language (default "Python") Example: github_repo_search("requests") → Finds psf/requests repository """
- src/RTFD/providers/github.py:21-21 (registration)Tool name listed in provider metadata for github_repo_search.tool_names = ["github_repo_search", "github_code_search"]