Skip to main content
Glama

ARC Config MCP Server

by tsviz
github.tsβ€’2.98 kB
/** * GitHub Service for ARC MCP Server * * Handles GitHub API operations including repository management, * runner registration, and authentication. */ export class GitHubService { private logger: any; constructor(logger: any) { this.logger = logger; } /** * Get repository information */ async getRepository(owner: string, repo: string): Promise<any> { this.logger.info(`Getting repository info: ${owner}/${repo}`); // Placeholder implementation return { full_name: `${owner}/${repo}`, private: false, default_branch: 'main', actions_enabled: true }; } /** * List repository runners */ async listRunners(owner: string, repo: string): Promise<any[]> { this.logger.info(`Listing runners for: ${owner}/${repo}`); // Placeholder implementation return [ { id: 1, name: 'arc-runner-1', os: 'linux', status: 'online', busy: false, labels: ['self-hosted', 'linux', 'x64'] } ]; } /** * Generate registration token */ async generateRegistrationToken(owner: string, repo: string): Promise<string> { this.logger.info(`Generating registration token for: ${owner}/${repo}`); // Placeholder implementation return 'AXXXXXXXXXXXXXXXXXXXXXXXXX'; } /** * Validate GitHub token */ async validateToken(token: string): Promise<boolean> { this.logger.info('Validating GitHub token'); // Placeholder implementation return true; } /** * Get current authenticated user * @tier1 - Basic implementation */ async getCurrentUser(githubToken?: string): Promise<any> { this.logger.info('Getting current authenticated GitHub user'); // Get token from environment if not provided const token = githubToken || process.env.GITHUB_TOKEN; if (!token) { throw new Error('GitHub token not provided'); } try { const response = await fetch('https://api.github.com/user', { headers: { 'Authorization': `token ${token}`, 'Accept': 'application/vnd.github.v3+json', 'User-Agent': 'ARC-MCP-Server' } }); if (!response.ok) { const errorBody = await response.text(); throw new Error(`GitHub API error: ${response.status} ${response.statusText} - ${errorBody}`); } const user = await response.json(); this.logger.info(`βœ… Authenticated as GitHub user: ${user.login}`); return user; } catch (error) { this.logger.error(`❌ Failed to get current user: ${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/tsviz/arc-config-mcp'

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