search-repos
Find GitHub repositories using specific queries, sort results by stars, forks, or activity, and limit output for precise results.
Instructions
Search for GitHub repositories
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| query | Yes | Search query | |
| sort | No | Sort order |
Implementation Reference
- src/tools.ts:141-181 (handler)The main handler function `searchRepos` that executes the GitHub repository search using the Octokit client, processes results, and handles errors.const searchRepos = async (args: SearchReposArgs) => { const { query, sort = "stars", limit = 5 } = args; try { const response = await octokit.rest.search.repos({ q: query, sort, per_page: limit, }); return { content: [ { type: "text", text: JSON.stringify( response.data.items.map(repo => ({ name: repo.full_name, description: repo.description, stars: repo.stargazers_count, url: repo.html_url, language: repo.language, forks: repo.forks_count, })), null, 2 ), }, ], }; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred'; return { content: [ { type: "text", text: `Error searching repositories: ${errorMessage}`, }, ], }; } };
- src/tools.ts:10-32 (schema)The input schema definition for the 'search-repos' tool, including properties for query, sort, and limit."search-repos": { name: "search-repos", description: "Search for GitHub repositories", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query", }, sort: { type: "string", enum: ["stars", "forks", "help-wanted-issues", "updated"], description: "Sort order", }, limit: { type: "number", description: "Maximum number of results to return", } }, required: ["query"], }, },
- src/tools.ts:322-327 (registration)Registration of tool handlers, mapping 'search-repos' to the searchRepos function.export const toolHandlers = { "search-repos": searchRepos, "get-repo-info": getRepoInfo, "list-issues": listIssues, "create-issue": createIssue, };
- src/tools.ts:114-118 (helper)Type definition for the arguments accepted by the searchRepos handler.type SearchReposArgs = { query: string; sort?: "stars" | "forks" | "help-wanted-issues" | "updated"; limit?: number; };