search_repositories
Find GitHub repositories using advanced search queries, with options for pagination and results per page, via the GitHub MCP Server Plus for efficient repository management.
Instructions
Search for GitHub repositories
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1) | |
| perPage | No | Number of results per page (default: 30, max: 100) | |
| query | Yes | Search query (see GitHub search syntax) |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"page": {
"description": "Page number for pagination (default: 1)",
"type": "number"
},
"perPage": {
"description": "Number of results per page (default: 30, max: 100)",
"type": "number"
},
"query": {
"description": "Search query (see GitHub search syntax)",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
}
Implementation Reference
- operations/repository.ts:37-49 (handler)Core implementation of the search_repositories tool, which constructs GitHub API URL and fetches search results.export async function searchRepositories( query: string, page: number = 1, perPage: number = 30 ) { const url = new URL("https://api.github.com/search/repositories"); url.searchParams.append("q", query); url.searchParams.append("page", page.toString()); url.searchParams.append("per_page", perPage.toString()); const response = await githubRequest(url.toString()); return GitHubSearchResponseSchema.parse(response); }
- operations/repository.ts:13-17 (schema)Zod schema defining input parameters for the search_repositories tool.export const SearchRepositoriesSchema = z.object({ query: z.string().describe("Search query (see GitHub search syntax)"), page: z.number().optional().describe("Page number for pagination (default: 1)"), perPage: z.number().optional().describe("Number of results per page (default: 30, max: 100)"), });
- index.ts:73-77 (registration)Tool registration in the ListTools response, defining name, description, and schema.{ name: "search_repositories", description: "Search for GitHub repositories", inputSchema: zodToJsonSchema(repository.SearchRepositoriesSchema), },
- index.ts:190-200 (handler)MCP server handler for CallToolRequest, parses arguments and delegates to searchRepositories function.case "search_repositories": { const args = repository.SearchRepositoriesSchema.parse(request.params.arguments); const results = await repository.searchRepositories( args.query, args.page, args.perPage ); return { content: [{ type: "text", text: JSON.stringify(results, null, 2) }], }; }