Skip to main content
Glama
piyushgIITian

GitHub Enterprise MCP Server

search-code

Search code across GitHub repositories using natural language queries to find specific functions, files, or code patterns within your organization's codebase.

Instructions

Search for code across GitHub repositories

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
orderNo
pageNo
per_pageNo
qYes

Implementation Reference

  • The main handler function that performs GitHub code search using Octokit API, validates input with SearchCodeSchema, processes and returns search results.
    export async function searchCode(args: unknown): Promise<any> { const { q, order, page, per_page } = SearchCodeSchema.parse(args); const github = getGitHubApi(); return tryCatchAsync(async () => { const { data } = await github.getOctokit().search.code({ q, order, page, per_page, }); return { total_count: data.total_count, incomplete_results: data.incomplete_results, items: data.items.map((item) => ({ name: item.name, path: item.path, sha: item.sha, url: item.html_url, repository: item.repository ? { name: item.repository.name, full_name: item.repository.full_name, owner: { login: item.repository.owner.login, }, } : null, score: item.score, })), }; }, 'Failed to search code'); }
  • Input schema definition for the 'search-code' tool advertised to MCP clients via ListToolsRequestSchema.
    name: 'search-code', description: 'Search for code across GitHub repositories', inputSchema: { type: 'object', properties: { q: { type: 'string', }, order: { type: 'string', enum: ['asc', 'desc'], }, page: { type: 'number', minimum: 1, }, per_page: { type: 'number', minimum: 1, maximum: 100, }, }, required: ['q'], additionalProperties: false, }, },
  • Switch case in MCP server's CallToolRequestSchema handler that dispatches to the searchCode implementation.
    case 'search-code': result = await searchCode(parsedArgs); break;
  • Zod schema used for runtime input validation inside the searchCode handler function.
    export const SearchCodeSchema = z.object({ q: z.string().min(1, 'Search query is required'), order: z.enum(['asc', 'desc']).optional(), page: z.number().min(1).optional(), per_page: z.number().min(1).max(100).optional(), });

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

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