Skip to main content
Glama

MCP Server

by Nawaf-TBE
github.tsโ€ข2.75 kB
import { Octokit } from '@octokit/rest'; // Initialize Octokit client with Personal Access Token const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN, }); /** * Creates a comment on a GitHub issue * @param owner - Repository owner (username or organization) * @param repo - Repository name * @param issue_number - Issue number * @param body - Comment body text * @returns Promise with the created comment data */ export async function createIssueComment( owner: string, repo: string, issue_number: number, body: string ): Promise<any> { try { // Validate required parameters if (!owner || !repo || !issue_number || !body) { throw new Error('Missing required parameters: owner, repo, issue_number, and body are required'); } // Validate GitHub token if (!process.env.GITHUB_TOKEN) { throw new Error('GITHUB_TOKEN environment variable is not set'); } console.log(`Creating comment on issue #${issue_number} in ${owner}/${repo}`); const response = await octokit.issues.createComment({ owner, repo, issue_number, body, }); console.log(`Comment created successfully. Comment ID: ${response.data.id}`); return response.data; } catch (error) { console.error('Error creating issue comment:', error); throw error; } } /** * Gets an issue by number * @param owner - Repository owner * @param repo - Repository name * @param issue_number - Issue number * @returns Promise with the issue data */ export async function getIssue( owner: string, repo: string, issue_number: number ): Promise<any> { try { if (!process.env.GITHUB_TOKEN) { throw new Error('GITHUB_TOKEN environment variable is not set'); } const response = await octokit.issues.get({ owner, repo, issue_number, }); return response.data; } catch (error) { console.error('Error getting issue:', error); throw error; } } /** * Lists issues for a repository * @param owner - Repository owner * @param repo - Repository name * @param state - Issue state (open, closed, all) * @param per_page - Number of issues per page (max 100) * @returns Promise with the issues data */ export async function listIssues( owner: string, repo: string, state: 'open' | 'closed' | 'all' = 'open', per_page: number = 30 ): Promise<any[]> { try { if (!process.env.GITHUB_TOKEN) { throw new Error('GITHUB_TOKEN environment variable is not set'); } const response = await octokit.issues.listForRepo({ owner, repo, state, per_page, }); return response.data; } catch (error) { console.error('Error listing issues:', error); throw error; } }

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/Nawaf-TBE/MCP'

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