Skip to main content
Glama
kurdin

GitHub Repos Manager MCP Server

search.cjs5.04 kB
const { logError, logInfo } = require("../utils/shared-utils.cjs"); /** * @typedef {import('../services/github-api.cjs').GitHubAuthenticatedOctokit} GitHubAuthenticatedOctokit * @typedef {import('../services/github-api.cjs').GitHubRepoInfo} GitHubRepoInfo */ /** * Handler for searching issues. * @param {GitHubAuthenticatedOctokit} octokit - The authenticated Octokit instance. * @param {GitHubRepoInfo} defaultRepo - Default repository information. * @param {object} args - Tool arguments. * @param {string} args.query - The search query. * @param {string} [args.sort] - Sort field (e.g., 'comments', 'created', 'updated'). * @param {string} [args.order] - Sort order ('asc' or 'desc'). * @param {number} [args.per_page=30] - Results per page. * @param {number} [args.page=1] - Page number. * @returns {Promise<object>} The search results. */ async function search_issues(octokit, defaultRepo, args, apiService) { try { const results = await apiService.searchIssues(octokit, args); return results; } catch (error) { logError(`Error in search_issues: ${error.message}`, error); throw error; } } /** * Handler for searching commits. * @param {GitHubAuthenticatedOctokit} octokit - The authenticated Octokit instance. * @param {GitHubRepoInfo} defaultRepo - Default repository information. * @param {object} args - Tool arguments. * @param {string} args.query - The search query. * @param {string} [args.sort] - Sort field (e.g., 'author-date', 'committer-date'). * @param {string} [args.order] - Sort order ('asc' or 'desc'). * @param {number} [args.per_page=30] - Results per page. * @param {number} [args.page=1] - Page number. * @returns {Promise<object>} The search results. */ async function search_commits(octokit, defaultRepo, args, apiService) { try { const results = await apiService.searchCommits(octokit, args); return results; } catch (error) { logError(`Error in search_commits: ${error.message}`, error); throw error; } } /** * Handler for searching code. * @param {GitHubAuthenticatedOctokit} octokit - The authenticated Octokit instance. * @param {GitHubRepoInfo} defaultRepo - Default repository information. * @param {object} args - Tool arguments. * @param {string} args.query - The search query. * @param {string} [args.sort] - Sort field (e.g., 'indexed'). * @param {string} [args.order] - Sort order ('asc' or 'desc'). * @param {number} [args.per_page=30] - Results per page. * @param {number} [args.page=1] - Page number. * @returns {Promise<object>} The search results. */ async function search_code(octokit, defaultRepo, args, apiService) { try { const results = await apiService.searchCode(octokit, args); return results; } catch (error) { logError(`Error in search_code: ${error.message}`, error); throw error; } } /** * Handler for searching users. * @param {GitHubAuthenticatedOctokit} octokit - The authenticated Octokit instance. * @param {GitHubRepoInfo} defaultRepo - Default repository information. * @param {object} args - Tool arguments. * @param {string} args.query - The search query. * @param {string} [args.sort] - Sort field (e.g., 'followers', 'repositories', 'joined'). * @param {string} [args.order] - Sort order ('asc' or 'desc'). * @param {number} [args.per_page=30] - Results per page. * @param {number} [args.page=1] - Page number. * @returns {Promise<object>} The search results. */ async function search_users(octokit, defaultRepo, args, apiService) { try { const results = await apiService.searchUsers(octokit, args); return results; } catch (error) { logError(`Error in search_users: ${error.message}`, error); throw error; } } /** * Handler for searching topics. * @param {GitHubAuthenticatedOctokit} octokit - The authenticated Octokit instance. * @param {GitHubRepoInfo} defaultRepo - Default repository information. * @param {object} args - Tool arguments. * @param {string} args.query - The search query. * @param {string} [args.sort] - Sort field (e.g., 'stars', 'forks', 'updated'). * @param {string} [args.order] - Sort order ('asc' or 'desc'). * @param {number} [args.per_page=30] - Results per page. * @param {number} [args.page=1] - Page number. * @returns {Promise<object>} The search results. */ async function search_topics(octokit, defaultRepo, args, apiService) { try { // Note: GitHub API for topics search is actually a search for repositories by topic. // The endpoint is search/repositories with a q parameter like "topic:your-topic" // We will adapt the searchRepositories function or create a specific one if needed. // For now, assuming a direct apiService.searchTopics exists or will be created. const results = await apiService.searchTopics(octokit, args); return results; } catch (error) { logError(`Error in search_topics: ${error.message}`, error); throw error; } } module.exports = { search_issues, search_commits, search_code, search_users, search_topics, };

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/kurdin/github-repos-manager-mcp'

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