UNPKG

claude-flow

Version:

Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration

116 lines 3.77 kB
/** * MCP Configuration Generator * Creates .mcp.json for Claude Code MCP server integration * Handles cross-platform compatibility (Windows requires cmd /c wrapper) */ /** * Check if running on Windows */ function isWindows() { return process.platform === 'win32'; } /** * Generate platform-specific MCP server entry * - Windows: uses 'cmd /c npx' directly * - Unix: uses 'npx' directly (simple, reliable) */ function createMCPServerEntry(npxArgs, env, additionalProps = {}) { if (isWindows()) { return { command: 'cmd', args: ['/c', 'npx', '-y', ...npxArgs], env, ...additionalProps, }; } // Unix: direct npx invocation — simple and reliable return { command: 'npx', args: ['-y', ...npxArgs], env, ...additionalProps, }; } /** * Generate MCP configuration */ export function generateMCPConfig(options) { const config = options.mcp; const mcpServers = {}; const npmEnv = { npm_config_update_notifier: 'false', }; // Claude Flow MCP server (core) if (config.claudeFlow) { mcpServers['claude-flow'] = createMCPServerEntry(['@claude-flow/cli@latest', 'mcp', 'start'], { ...npmEnv, CLAUDE_FLOW_MODE: 'v3', CLAUDE_FLOW_HOOKS_ENABLED: 'true', CLAUDE_FLOW_TOPOLOGY: options.runtime.topology, CLAUDE_FLOW_MAX_AGENTS: String(options.runtime.maxAgents), CLAUDE_FLOW_MEMORY_BACKEND: options.runtime.memoryBackend, }, { autoStart: config.autoStart }); } // Ruv-Swarm MCP server (enhanced coordination) if (config.ruvSwarm) { mcpServers['ruv-swarm'] = createMCPServerEntry(['ruv-swarm', 'mcp', 'start'], { ...npmEnv }, { optional: true }); } // Flow Nexus MCP server (cloud features) if (config.flowNexus) { mcpServers['flow-nexus'] = createMCPServerEntry(['flow-nexus@latest', 'mcp', 'start'], { ...npmEnv }, { optional: true, requiresAuth: true }); } return { mcpServers }; } /** * Generate .mcp.json as formatted string */ export function generateMCPJson(options) { const config = generateMCPConfig(options); return JSON.stringify(config, null, 2); } /** * Generate MCP server add commands for manual setup */ export function generateMCPCommands(options) { const commands = []; const config = options.mcp; if (isWindows()) { if (config.claudeFlow) { commands.push('claude mcp add claude-flow -- cmd /c npx -y @claude-flow/cli@latest mcp start'); } if (config.ruvSwarm) { commands.push('claude mcp add ruv-swarm -- cmd /c npx -y ruv-swarm mcp start'); } if (config.flowNexus) { commands.push('claude mcp add flow-nexus -- cmd /c npx -y flow-nexus@latest mcp start'); } } else { if (config.claudeFlow) { commands.push("claude mcp add claude-flow -- npx -y @claude-flow/cli@latest mcp start"); } if (config.ruvSwarm) { commands.push("claude mcp add ruv-swarm -- npx -y ruv-swarm mcp start"); } if (config.flowNexus) { commands.push("claude mcp add flow-nexus -- npx -y flow-nexus@latest mcp start"); } } return commands; } /** * Get platform-specific setup instructions */ export function getPlatformInstructions() { if (isWindows()) { return { platform: 'Windows', note: 'MCP configuration uses cmd /c wrapper for npx compatibility.', }; } return { platform: process.platform === 'darwin' ? 'macOS' : 'Linux', note: 'MCP configuration uses npx directly.', }; } //# sourceMappingURL=mcp-generator.js.map