Skip to main content
Glama

search_repositories

Find GitHub repositories by search query with pagination controls to browse results efficiently.

Instructions

Search for GitHub repositories

Input Schema

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

Implementation Reference

  • The core handler function implementing the GitHub API search for repositories.
    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); }
  • Input schema for the search_repositories tool, defining query, page, and perPage parameters.
    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)"), });
  • src/index.ts:84-87 (registration)
    Tool registration in the listTools handler, providing name, description, and input schema.
    name: "search_repositories", description: "Search for GitHub repositories", inputSchema: zodToJsonSchema(repository.SearchRepositoriesSchema), },
  • src/index.ts:353-364 (registration)
    Dispatcher case in CallToolRequest handler that parses extended schema (with PAT) and calls the handler.
    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) }], }; }
  • Extended schema used internally for validation including the GitHub PAT.
    export const _SearchRepositoriesSchema = SearchRepositoriesSchema.extend({ github_pat: z.string().describe("GitHub Personal Access Token"), });

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