Skip to main content
Glama

search_repositories

Utilize this tool to search GitHub repositories based on advanced query syntax. Specify pagination and result limits to efficiently retrieve repository data.

Instructions

Search for GitHub repositories

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default: 1)
perPageNoNumber of results per page (default: 30, max: 100)
queryYesSearch query (see GitHub search syntax)

Implementation Reference

  • The core handler function implementing the GitHub repositories search using the Search API.
    export async function searchRepositories( github_pat: string, 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(github_pat, url.toString()); return GitHubSearchResponseSchema.parse(response); }
  • Zod input schemas for the search_repositories tool: public schema (SearchRepositoriesSchema) used in registration and internal extended schema (_SearchRepositoriesSchema) used for parsing.
    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)"), }); export const _SearchRepositoriesSchema = SearchRepositoriesSchema.extend({ github_pat: z.string().describe("GitHub Personal Access Token"), });
  • src/index.ts:83-87 (registration)
    Tool registration in the MCP server's listTools handler, defining name, description, and input schema.
    { name: "search_repositories", description: "Search for GitHub repositories", inputSchema: zodToJsonSchema(repository.SearchRepositoriesSchema), },
  • Tool dispatcher in the CallToolRequest handler that validates arguments and calls the searchRepositories implementation.
    case "search_repositories": { const args = repository._SearchRepositoriesSchema.parse(params.arguments); const results = await repository.searchRepositories( args.github_pat, args.query, args.page, args.perPage ); return { content: [{ type: "text", text: JSON.stringify(results, null, 2) }], }; }

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/MissionSquad/mcp-github'

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