UNPKG

mcp-subagents

Version:

Multi-Agent AI Orchestration via Model Context Protocol - Access specialized CLI AI agents (Aider, Qwen, Gemini, Goose, etc.) with intelligent fallback and configuration

92 lines (87 loc) 3.34 kB
#!/usr/bin/env node import { AgentDetector } from './detector.js'; import { AgentRegistry } from './agents/registry.js'; import { AgentManager } from './manager.js'; import { AgentOrchestratorServer } from './server.js'; import { ConfigManager } from './config.js'; import { SERVER_IDENTITY } from './constants.js'; process.title = SERVER_IDENTITY.packageName; const args = process.argv.slice(2); // Handle validation command if (args.includes('--validate')) { console.log(`🔍 Validating ${SERVER_IDENTITY.displayName} setup...\n`); const configManager = new ConfigManager(); const detector = new AgentDetector(configManager); const results = await detector.detectAll(); for (const result of results) { const icon = result.available ? '✅' : '❌'; console.log(`${icon} ${result.name}`); if (result.available) { console.log(` Version: ${result.version || 'unknown'}`); console.log(` Status: ${result.authStatus}`); if (result.authStatus !== 'ready') { console.log(` Setup: ${result.authInstructions}`); } } else { console.log(` Not installed`); } console.log(); } const readyCount = results.filter(r => r.available && r.authStatus === 'ready').length; console.log(`\n${readyCount} of ${results.length} agents ready to use.`); process.exit(0); } // Handle help command if (args.includes('--help') || args.includes('-h')) { console.log(` ${SERVER_IDENTITY.emoji} ${SERVER_IDENTITY.displayName} v${SERVER_IDENTITY.version} Orchestrate multiple CLI agents through MCP. Usage: ${SERVER_IDENTITY.packageName} Start the MCP server ${SERVER_IDENTITY.packageName} --validate Check agent availability ${SERVER_IDENTITY.packageName} --help Show this help message Environment Variables (automatically passed to all agents): OPENAI_API_KEY Required for qwen and aider agents ANTHROPIC_API_KEY Required for aider agent (Claude models) OPENAI_BASE_URL Optional API base URL for qwen Note: When used as an MCP server, these can be set in your MCP configuration: { "mcpServers": { "agent-orchestrator": { "command": "npx", "args": ["mcp-agent-orchestrator@latest"], "env": { "OPENAI_API_KEY": "your-key-here", "ANTHROPIC_API_KEY": "your-claude-key" } } } } For more info: https://github.com/username/${SERVER_IDENTITY.packageName} `); process.exit(0); } // Start MCP server async function main() { try { // Load configuration first const configManager = new ConfigManager(); // Detect agents with config access const detector = new AgentDetector(configManager); const detectionResults = await detector.detectAll(); // Create registry const registry = await AgentRegistry.create(detectionResults); // Create manager const manager = new AgentManager(registry); // Create and start server const server = new AgentOrchestratorServer(manager); await server.startStdio(); } catch (error) { console.error(`Failed to start ${SERVER_IDENTITY.displayName}:`, error); process.exit(1); } } main().catch(console.error); //# sourceMappingURL=cli.js.map