UNPKG

claude-code-subagents-orchestrator

Version:

Claude Code Sub-agents Orchestrator - A powerful MCP server for orchestrating multiple AI sub-agents for complex task execution in Claude Code

971 lines (765 loc) 21.7 kB
# API Documentation ## Claude Code Subagents Orchestrator MCP Server This document provides comprehensive documentation for all 6 core MCP tools and additional delegation enforcement tools provided by the Claude Code Subagents Orchestrator. ## Overview The orchestrator provides two categories of tools: 1. **Core MCP Tools** - Standard agent management and orchestration tools 2. **Delegation Enforcement Tools** - Advanced tools for ensuring proper sub-agent delegation ## Core MCP Tools ### 1. `listAgents` Lists available agents with optional filtering capabilities. #### Parameters ```typescript interface ListAgentsParams { category?: 'backend' | 'frontend' | 'fullstack' | 'devops' | 'testing' | 'security' | 'data'; tags?: string[]; includeMetadata?: boolean; // default: false } ``` #### Response ```typescript interface ListAgentsResponse { agents: Array<{ name: string; category: string; description: string; version: string; tags: string[]; capabilities?: { tools: string[]; languages: string[]; frameworks: string[]; domains: string[]; }; metadata?: { installed: boolean; lastUpdated?: Date; dependencies: string[]; }; }>; totalCount: number; categories: Record<string, number>; } ``` #### Example Usage ```javascript // List all agents const allAgents = await mcp.call('listAgents', {}); // List only backend agents const backendAgents = await mcp.call('listAgents', { category: 'backend' }); // List agents with specific tags and metadata const taggedAgents = await mcp.call('listAgents', { tags: ['typescript', 'react'], includeMetadata: true }); ``` #### Error Codes - `WORKFLOW_EXECUTION_FAILED` - Failed to read or parse agent specifications - `FILESYSTEM_ERROR` - Cannot access agent directory --- ### 2. `installAgents` Installs agents from various sources including GitHub repositories, local files, or direct URLs. #### Parameters ```typescript interface InstallAgentsParams { agents: string[]; source?: 'github' | 'local' | 'url'; // default: 'github' repository?: string; force?: boolean; // default: false } ``` #### Response ```typescript interface InstallAgentsResponse { installed: Array<{ name: string; version: string; source: string; success: boolean; error?: string; }>; failed: Array<{ name: string; error: string; recoverable: boolean; }>; summary: { total: number; successful: number; failed: number; }; } ``` #### Example Usage ```javascript // Install agents from default GitHub repository const installation = await mcp.call('installAgents', { agents: ['backend-architect', 'frontend-developer', 'devops-engineer'] }); // Install from specific repository const customInstall = await mcp.call('installAgents', { agents: ['custom-agent'], source: 'github', repository: 'myorg/my-agents-collection' }); // Force reinstall existing agents const forceInstall = await mcp.call('installAgents', { agents: ['typescript-expert'], force: true }); ``` #### Error Codes - `AGENT_INSTALLATION_FAILED` - Failed to download or install agent - `NETWORK_ERROR` - Cannot access remote repository - `VALIDATION_ERROR` - Agent specification format invalid --- ### 3. `generateAgentPrompt` Generates specialized prompts for specific agents and tasks with context-aware enhancement. #### Parameters ```typescript interface GenerateAgentPromptParams { agentName: string; task: string; context?: Record<string, any>; additionalConstraints?: string[]; } ``` #### Response ```typescript interface GenerateAgentPromptResponse { prompt: string; agent: { name: string; version: string; capabilities: string[]; }; context: { task: string; constraints: string[]; estimatedComplexity: 'low' | 'medium' | 'high'; estimatedDuration: number; // milliseconds }; recommendations?: string[]; } ``` #### Example Usage ```javascript // Generate basic agent prompt const prompt = await mcp.call('generateAgentPrompt', { agentName: 'backend-architect', task: 'Design a scalable API for a social media platform' }); // Generate prompt with context and constraints const contextualPrompt = await mcp.call('generateAgentPrompt', { agentName: 'frontend-developer', task: 'Build a responsive dashboard component', context: { framework: 'React', designSystem: 'Material-UI', browserSupport: ['Chrome', 'Firefox', 'Safari'] }, additionalConstraints: [ 'Must be accessible (WCAG 2.1 AA)', 'Support mobile devices', 'Load time under 2 seconds' ] }); ``` #### Error Codes - `AGENT_NOT_FOUND` - Specified agent does not exist - `PROMPT_GENERATION_FAILED` - Failed to generate prompt - `VALIDATION_ERROR` - Invalid parameters --- ### 4. `generateMultiAgentWorkflow` Generates comprehensive multi-agent workflows with dependency management and execution planning. #### Parameters ```typescript interface GenerateMultiAgentWorkflowParams { task: string; complexity?: 'low' | 'medium' | 'high'; // default: 'medium' preferredAgents?: string[]; constraints?: { maxSteps?: number; timeoutMs?: number; parallel?: boolean; // default: false }; context?: Record<string, any>; } ``` #### Response ```typescript interface GenerateMultiAgentWorkflowResponse { workflow: Workflow; // Complete workflow specification analysis: { complexity: 'low' | 'medium' | 'high'; estimatedDuration: number; requiredAgents: string[]; dependencies: string[]; riskFactors: string[]; }; execution: { canExecuteImmediately: boolean; missingDependencies: string[]; warnings: string[]; }; } ``` #### Example Usage ```javascript // Generate simple workflow const workflow = await mcp.call('generateMultiAgentWorkflow', { task: 'Build a complete e-commerce application' }); // Generate complex workflow with constraints const complexWorkflow = await mcp.call('generateMultiAgentWorkflow', { task: 'Migrate legacy monolith to microservices architecture', complexity: 'high', preferredAgents: ['backend-architect', 'devops-engineer', 'database-expert'], constraints: { maxSteps: 10, timeoutMs: 3600000, // 1 hour parallel: true }, context: { currentArchitecture: 'monolith', targetArchitecture: 'microservices', database: 'PostgreSQL', containerization: 'Docker' } }); ``` #### Error Codes - `WORKFLOW_GENERATION_FAILED` - Failed to generate workflow - `AGENT_NOT_AVAILABLE` - Required agent not available - `COMPLEXITY_TOO_HIGH` - Task exceeds system capabilities --- ### 5. `generateRecoveryPrompt` Generates recovery strategies and prompts for failed execution contexts with intelligent fallback options. #### Parameters ```typescript interface GenerateRecoveryPromptParams { executionContext: ExecutionContext; failedStep: string; errorDetails: { message: string; code: string; details?: any; }; recoveryOptions?: Array<'retry' | 'skip' | 'alternative' | 'rollback'>; } ``` #### Response ```typescript interface GenerateRecoveryPromptResponse { recoveryStrategy: 'retry' | 'skip' | 'alternative' | 'rollback'; prompt: string; modifications: { updatedStep?: any; alternativeSteps?: any[]; rollbackPoint?: string; }; analysis: { errorCategory: string; likelihood: 'low' | 'medium' | 'high'; impact: 'low' | 'medium' | 'high'; recommendations: string[]; }; } ``` #### Example Usage ```javascript // Generate recovery for failed step const recovery = await mcp.call('generateRecoveryPrompt', { executionContext: previousWorkflow.context, failedStep: 'database_migration', errorDetails: { message: 'Connection timeout to database', code: 'DB_CONNECTION_TIMEOUT', details: { host: 'localhost', port: 5432 } }, recoveryOptions: ['retry', 'alternative'] }); // Generate recovery with rollback option const rollbackRecovery = await mcp.call('generateRecoveryPrompt', { executionContext: currentContext, failedStep: 'deployment', errorDetails: { message: 'Deployment failed due to insufficient resources', code: 'RESOURCE_EXHAUSTED' }, recoveryOptions: ['rollback', 'alternative'] }); ``` #### Error Codes - `RECOVERY_GENERATION_FAILED` - Failed to generate recovery strategy - `INVALID_EXECUTION_CONTEXT` - Provided context is invalid - `NO_RECOVERY_OPTIONS` - No viable recovery options available --- ### 6. `analyzeProjectState` Analyzes project state including file structure, dependencies, and git status with intelligent recommendations. #### Parameters ```typescript interface AnalyzeProjectStateParams { projectPath?: string; includeFileStructure?: boolean; // default: true includeDependencies?: boolean; // default: true includeGitStatus?: boolean; // default: true depth?: number; // default: 3 } ``` #### Response ```typescript interface AnalyzeProjectStateResponse { project: { path: string; name: string; type: string; language?: string; framework?: string; }; structure?: { files: Array<{ path: string; type: 'file' | 'directory'; size?: number; lastModified?: Date; }>; depth: number; totalFiles: number; totalDirectories: number; }; dependencies?: { package?: Record<string, string>; runtime?: string[]; development?: string[]; }; git?: { branch: string; status: 'clean' | 'dirty' | 'detached'; commits: number; lastCommit?: { hash: string; message: string; date: Date; }; }; recommendations: Array<{ type: 'agent' | 'workflow' | 'tool'; name: string; reason: string; priority: 'low' | 'medium' | 'high'; }>; } ``` #### Example Usage ```javascript // Analyze current project const analysis = await mcp.call('analyzeProjectState', {}); // Analyze specific project with limited depth const targetAnalysis = await mcp.call('analyzeProjectState', { projectPath: '/path/to/project', depth: 2, includeGitStatus: false }); // Quick analysis without file structure const quickAnalysis = await mcp.call('analyzeProjectState', { includeFileStructure: false, includeDependencies: true, includeGitStatus: true }); ``` #### Error Codes - `PROJECT_ANALYSIS_FAILED` - Failed to analyze project - `PATH_NOT_FOUND` - Specified path does not exist - `PERMISSION_DENIED` - Insufficient permissions to access project ## Delegation Enforcement Tools These advanced tools ensure proper sub-agent delegation and prevent Claude Code from handling specialist tasks. ### 1. `forceDelegation` **CRITICAL TOOL**: Forces delegation to specialist agents and prevents Claude Code from handling specialist tasks. #### Parameters ```typescript interface ForceDelegationParams { task: string; targetAgent?: string; context?: Record<string, any>; enforcementLevel?: 'strict' | 'moderate' | 'advisory'; // default: 'strict' bypassProtection?: boolean; // default: true } ``` #### Response ```typescript interface ForceDelegationResponse { delegationEnforced: boolean; agentUsed: string; executionTime: number; output: any; classification: TaskClassification; sessionId: string; bypassPrevented: boolean; } ``` #### Example Usage ```javascript // Force strict delegation to backend architect const delegation = await mcp.call('forceDelegation', { task: 'Design a microservices architecture for an e-commerce platform', targetAgent: 'backend-architect', enforcementLevel: 'strict' }); // Force delegation with context const contextualDelegation = await mcp.call('forceDelegation', { task: 'Optimize database queries for better performance', context: { database: 'PostgreSQL', currentPerformance: 'slow', expectedImprovement: '50%' } }); ``` #### Enforcement Levels - **strict**: Completely blocks Claude Code execution, forces agent spawning - **moderate**: Injects delegation markers, modifies requests - **advisory**: Adds delegation suggestions while allowing execution --- ### 2. `validateDelegation` **CRITICAL TOOL**: Validates that delegation occurred and Claude Code was bypassed successfully. #### Parameters ```typescript interface ValidateDelegationParams { originalRequest: any; response: any; expectedAgent: string; } ``` #### Response ```typescript interface DelegationValidation { delegationOccurred: boolean; agentUsed: string; claudeCodeBypassed: boolean; evidence: string[]; } ``` #### Example Usage ```javascript // Validate delegation occurred const validation = await mcp.call('validateDelegation', { originalRequest: previousRequest, response: delegationResponse, expectedAgent: 'backend-architect' }); if (!validation.delegationOccurred) { console.error('Delegation failed:', validation.evidence); } ``` --- ### 3. `delegationStatus` **MONITORING TOOL**: Monitors the status of delegation sessions and agent execution. #### Parameters ```typescript interface DelegationStatusParams { sessionId: string; } ``` #### Response ```typescript interface DelegationStatusResponse { sessionId: string; agentId: string; status: 'active' | 'completed' | 'failed' | 'timeout'; startTime: Date; enforced: boolean; duration: number; } ``` #### Example Usage ```javascript // Monitor delegation status const status = await mcp.call('delegationStatus', { sessionId: 'forced_delegation_1640995200000_abc123' }); console.log(`Session ${status.sessionId} is ${status.status}`); ``` --- ### 4. `delegationMetrics` **ANALYTICS TOOL**: Provides analytics and metrics about delegation performance and bypass prevention effectiveness. #### Parameters None required. #### Response ```typescript interface DelegationMetrics { router: { successfulDelegations: number; failedDelegations: number; averageExecutionTime: number; activeAgents: number; }; interceptor: { activeInterceptions: number; totalInterceptions: number; enforcementLevel: string; }; health: Record<string, { status: string; lastSeen: Date; successRate: number; executionCount: number; }>; summary: { totalDelegations: number; successRate: number; averageExecutionTime: number; activeAgents: number; bypassPreventionRate: number; }; } ``` #### Example Usage ```javascript // Get delegation metrics const metrics = await mcp.call('delegationMetrics', {}); console.log(`Success rate: ${metrics.summary.successRate * 100}%`); console.log(`Bypass prevention: ${metrics.summary.bypassPreventionRate * 100}%`); ``` --- ### 5. `delegationConfig` **CONFIGURATION TOOL**: Configures delegation enforcement parameters and rules. #### Parameters ```typescript interface DelegationConfigParams { enforcementLevel?: 'strict' | 'moderate' | 'advisory'; addRule?: { domain: string; pattern: string; targetAgent: string; priority: number; }; removeRule?: { domain: string; pattern: string; }; } ``` #### Response ```typescript interface DelegationConfigResponse { enforcementLevel: string; activeInterceptions: number; message: string; } ``` #### Example Usage ```javascript // Set enforcement level const config = await mcp.call('delegationConfig', { enforcementLevel: 'strict' }); // Add delegation rule const ruleConfig = await mcp.call('delegationConfig', { addRule: { domain: 'frontend', pattern: 'react|component|ui', targetAgent: 'frontend-developer', priority: 10 } }); ``` ## Enhanced Tool Variants ### 1. `generateAgentPromptEnhanced` Enhanced version with delegation enforcement and validation tokens. #### Additional Features - Delegation enforcement markers - Validation tokens for bypass prevention - Enhanced context awareness - Automatic agent capability matching ### 2. `generateRecoveryPromptEnhanced` Enhanced recovery with escalation and alternative agent suggestions. #### Additional Features - Escalation strategies - Alternative agent recommendations - Failure pattern analysis - Enhanced fallback options ### 3. `generateMultiAgentWorkflowEnhanced` Enhanced workflow generation with delegation enforcement at each step. #### Additional Features - Per-step delegation enforcement - Dependency-aware prompt generation - Parallel execution optimization - Enhanced validation mechanisms ## Error Handling ### Error Types ```typescript enum ErrorCode { // Core errors AGENT_NOT_FOUND = 'AGENT_NOT_FOUND', WORKFLOW_EXECUTION_FAILED = 'WORKFLOW_EXECUTION_FAILED', VALIDATION_ERROR = 'VALIDATION_ERROR', // Enhanced errors DELEGATION_FAILED = 'DELEGATION_FAILED', AGENT_SPAWN_FAILED = 'AGENT_SPAWN_FAILED', BYPASS_DETECTED = 'BYPASS_DETECTED', CONFIGURATION_ERROR = 'CONFIGURATION_ERROR', } ``` ### Error Response Format ```typescript interface ErrorResponse { success: false; error: { code: string; message: string; details?: any; retryable: boolean; }; metadata: { timestamp: Date; toolName: string; executionTime: number; }; } ``` ## Rate Limiting ### Limits - **Core tools**: 100 requests per minute per client - **Delegation tools**: 50 requests per minute per client - **Analysis tools**: 20 requests per minute per client ### Headers Response headers include rate limiting information: ``` X-RateLimit-Limit: 100 X-RateLimit-Remaining: 95 X-RateLimit-Reset: 1640995260 ``` ## Authentication The MCP server uses stdio transport and inherits authentication from the Claude Code client. No additional authentication is required. ## Usage Guidelines ### Best Practices 1. **Use delegation enforcement** for specialist tasks 2. **Validate delegation success** using validation tools 3. **Monitor metrics** for performance optimization 4. **Handle errors gracefully** with proper retry logic 5. **Cache agent lists** to reduce API calls ### Common Patterns #### Task Delegation Pattern ```javascript // 1. Classify task const prompt = await mcp.call('generateAgentPrompt', { agentName: 'backend-architect', task: complexTask }); // 2. Force delegation const delegation = await mcp.call('forceDelegation', { task: complexTask, targetAgent: 'backend-architect' }); // 3. Validate success const validation = await mcp.call('validateDelegation', { originalRequest: prompt, response: delegation, expectedAgent: 'backend-architect' }); ``` #### Multi-Agent Workflow Pattern ```javascript // 1. Generate workflow const workflow = await mcp.call('generateMultiAgentWorkflow', { task: 'Build complete application', complexity: 'high' }); // 2. Execute each step with delegation for (const step of workflow.workflow.steps) { const delegation = await mcp.call('forceDelegation', { task: step.task, targetAgent: step.agent }); // Handle results... } ``` #### Recovery Pattern ```javascript try { const result = await mcp.call('forceDelegation', { task }); } catch (error) { const recovery = await mcp.call('generateRecoveryPrompt', { executionContext: context, failedStep: 'delegation', errorDetails: error }); // Implement recovery strategy... } ``` ## Monitoring and Debugging ### Debug Mode Enable debug mode for detailed logging: ```javascript const result = await mcp.call('forceDelegation', { task: 'debug task', debug: true }); ``` ### Health Checks Monitor system health: ```javascript const metrics = await mcp.call('delegationMetrics', {}); const healthScore = metrics.summary.successRate * metrics.summary.bypassPreventionRate; if (healthScore < 0.9) { console.warn('Delegation system health degraded'); } ``` ### Troubleshooting Common issues and solutions: 1. **Agent not found**: Ensure agent is installed via `installAgents` 2. **Delegation failed**: Check enforcement level and agent availability 3. **Bypass detected**: Increase enforcement level or check configuration 4. **Performance issues**: Monitor metrics and optimize workflow complexity ## SDK Integration ### Node.js Example ```javascript import { MCPClient } from '@modelcontextprotocol/sdk/client/index.js'; const client = new MCPClient({ name: 'my-app', version: '1.0.0' }); // Connect to orchestrator await client.connect({ command: 'node', args: ['path/to/orchestrator/server.js'] }); // Use tools const agents = await client.call('listAgents', {}); const delegation = await client.call('forceDelegation', { task: 'implement feature', targetAgent: 'backend-architect' }); ``` ### Python Example ```python from mcp import Client client = Client() await client.connect('claude-code-subagents-orchestrator') # List agents agents = await client.call('listAgents', {}) # Force delegation delegation = await client.call('forceDelegation', { 'task': 'implement feature', 'targetAgent': 'backend-architect' }) ``` ## Migration Guide ### From Manual Delegation If migrating from manual delegation patterns: 1. Replace manual agent mentions with `forceDelegation` calls 2. Add validation checks using `validateDelegation` 3. Monitor delegation success with `delegationMetrics` 4. Configure enforcement rules using `delegationConfig` ### Version Compatibility - **v1.0.x**: Full API compatibility - **v0.x**: Deprecated, upgrade recommended - **Future versions**: Backward compatibility maintained ## Support For API support and questions: - **Documentation**: [GitHub Repository](https://github.com/anthropic/claude-code-subagents-orchestrator) - **Issues**: [GitHub Issues](https://github.com/anthropic/claude-code-subagents-orchestrator/issues) - **Community**: [GitHub Discussions](https://github.com/anthropic/claude-code-subagents-orchestrator/discussions)