Skip to main content
Glama

github-manager MCP Server

types.ts3.19 kB
import { ErrorCode } from '@modelcontextprotocol/sdk/types.js'; export interface GitHubErrorDetails { action: string; attempted_operation?: string; originalError: { status: number; response?: { data?: { message?: string; documentation_url?: string; }; headers?: Record<string, string>; }; headers?: Record<string, string>; message: string; }; status?: number; requestId?: string; documentation?: string; required_scopes?: string[]; current_scopes?: string[]; organization?: string; rate_limit?: { remaining?: string; reset?: string; }; repository?: { org: string; repo?: string; name?: string; description?: string; isPrivate?: boolean; }; collaborator?: { org: string; repo: string; username: string; permission: 'pull' | 'push' | 'admin'; }; settings?: GitHubRepoSettings['settings']; } export interface GitHubError extends Error { code: ErrorCode; details: GitHubErrorDetails; } export interface GitHubApiError { status: number; response: { data: { message: string; documentation_url?: string; }; headers: Record<string, string>; }; message: string; } export interface GitHubApiResponse<T> { data: T; headers: { 'x-ratelimit-remaining'?: string; 'x-ratelimit-reset'?: string; 'x-oauth-scopes'?: string; 'x-github-request-id'?: string; }; } export interface GitHubOrg { name: string; display_name: string; description?: string; url: string; membership: { is_member: boolean; is_visible: boolean; }; } export interface GitHubRepo { name: string; description?: string; private: boolean; url: string; clone_url: string; html_url?: string; visibility?: string; created_at?: string; } export interface GitHubCollaborator { status: string; invitation_url: string; permissions?: { pull: boolean; push: boolean; admin: boolean; }; } export interface GitHubRepoSettings { name: string; settings: { has_issues?: boolean; has_projects?: boolean; has_wiki?: boolean; allow_squash_merge?: boolean; allow_merge_commit?: boolean; allow_rebase_merge?: boolean; }; } export interface LogMessage { level: 'debug' | 'info' | 'warn' | 'error'; message: string; data?: unknown; timestamp: string; } export interface Logger { debug(message: string, data?: unknown): void; info(message: string, data?: unknown): void; warn(message: string, data?: unknown): void; error(message: string, data?: unknown): void; } export interface GitHubAuthInfo { username: string; scopes: string[]; } export interface GitHubService { verifyAuth(): Promise<GitHubAuthInfo>; listOrgs(): Promise<GitHubOrg[]>; listRepos(org: string): Promise<GitHubRepo[]>; createRepo(org: string, name: string, description?: string, isPrivate?: boolean): Promise<GitHubRepo>; addCollaborator(org: string, repo: string, username: string, permission: 'pull' | 'push' | 'admin'): Promise<GitHubCollaborator>; updateRepoSettings(org: string, repo: string, settings: GitHubRepoSettings['settings']): Promise<GitHubRepoSettings>; }

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

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