Skip to main content
Glama

GitHub MCP Server

by renantrendt
search.ts3.26 kB
import { z } from 'zod'; import { githubGet } from '../common/api.js'; // Schema for searching code export const SearchCodeSchema = z.object({ q: z.string(), order: z.enum(['asc', 'desc']).optional(), page: z.number().optional(), per_page: z.number().optional(), }); // Schema for searching repositories 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)'), }); // Schema for searching issues export const SearchIssuesSchema = z.object({ q: z.string(), sort: z.enum(['comments', 'reactions', 'reactions-+1', 'reactions--1', 'reactions-smile', 'reactions-thinking_face', 'reactions-heart', 'reactions-tada', 'interactions', 'created', 'updated']).optional(), order: z.enum(['asc', 'desc']).optional(), page: z.number().optional(), per_page: z.number().optional(), }); // Schema for searching users export const SearchUsersSchema = z.object({ q: z.string(), sort: z.enum(['followers', 'repositories', 'joined']).optional(), order: z.enum(['asc', 'desc']).optional(), page: z.number().optional(), per_page: z.number().optional(), }); // Search for code export async function searchCode( q: string, order?: 'asc' | 'desc', page?: number, per_page?: number ) { const endpoint = '/search/code'; const params: any = { q }; if (order) params.order = order; if (page) params.page = page; if (per_page) params.per_page = per_page; const response = await githubGet(endpoint, params); return await response.json(); } // Search for repositories export async function searchRepositories( query: string, page?: number, perPage?: number ) { const endpoint = '/search/repositories'; const params: any = { q: query }; if (page) params.page = page; if (perPage) params.per_page = perPage; const response = await githubGet(endpoint, params); return await response.json(); } // Search for issues and pull requests export async function searchIssues( q: string, sort?: 'comments' | 'reactions' | 'reactions-+1' | 'reactions--1' | 'reactions-smile' | 'reactions-thinking_face' | 'reactions-heart' | 'reactions-tada' | 'interactions' | 'created' | 'updated', order?: 'asc' | 'desc', page?: number, per_page?: number ) { const endpoint = '/search/issues'; const params: any = { q }; if (sort) params.sort = sort; if (order) params.order = order; if (page) params.page = page; if (per_page) params.per_page = per_page; const response = await githubGet(endpoint, params); return await response.json(); } // Search for users export async function searchUsers( q: string, sort?: 'followers' | 'repositories' | 'joined', order?: 'asc' | 'desc', page?: number, per_page?: number ) { const endpoint = '/search/users'; const params: any = { q }; if (sort) params.sort = sort; if (order) params.order = order; if (page) params.page = page; if (per_page) params.per_page = per_page; const response = await githubGet(endpoint, params); return await response.json(); }

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

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