Skip to main content
Glama
TRANSPARENCY_FEATURES.mdโ€ข7.69 kB
# ARC MCP Server - Transparency Features Implementation Guide ## Overview This document details the implementation of comprehensive transparency features for ARC (GitHub Actions Runner Controller) installation and cleanup operations. These features provide users with detailed cluster analysis and execution planning before any operations are performed. ## ๐ŸŽฏ Key Features Implemented ### 1. Pre-Execution Cluster Analysis Both installation and cleanup operations now begin with comprehensive cluster analysis: #### For Installation (`arc_install_controller`): - **Cluster Basics**: Version, node count, resource availability - **Existing ARC Resources**: Detection of any existing ARC components - **Prerequisites Check**: kubectl, Helm, GitHub token validation - **Recommendations**: Tailored suggestions based on cluster state - **Risk Assessment**: Installation, data loss, and downtime risk evaluation #### For Cleanup (`arc_cleanup_installation`): - **Resource Detection**: All ARC-related resources across namespaces - **Dependency Check**: Running workflows and active runners - **Risk Assessment**: Cleanup impact evaluation - **Resource Categorization**: Critical vs. standard resources ### 2. Detailed Execution Planning #### Installation Plan: - **Phase-by-phase breakdown** of installation steps - **Estimated timeline** for each phase - **Command preview** showing exact kubectl/helm commands - **Rollback strategy** in case of failures - **Prerequisites validation** before execution #### Cleanup Plan: - **Resource removal strategy** with prioritization - **Safety checks** to prevent data loss - **Step-by-step cleanup process** - **Recovery options** if cleanup fails ### 3. Interactive User Experience #### Chat-Formatted Output: - **Markdown formatting** for easy reading - **Color-coded sections** for different types of information - **Progress indicators** throughout operations - **Clear action summaries** with recommendations ## ๐Ÿ›  Implementation Details ### Core Methods Added #### In `arc-installer-enhanced.ts`: ```typescript // Cluster Analysis Methods private async analyzeClusterForInstallation(): Promise<any> private async analyzeClusterForCleanup(): Promise<any> // Planning Methods private async generateInstallationPlan(analysis: any): Promise<any> private async generateCleanupPlan(analysis: any): Promise<any> // Helper Methods private async analyzeClusterBasics(): Promise<any> private async checkExistingArcResources(): Promise<any> private async checkInstallationPrerequisites(): Promise<any> private async generateInstallationRecommendations(analysis: any): Promise<string[]> private async assessInstallationRisks(analysis: any): Promise<any> private async checkArcDependencies(): Promise<any> private async generateCleanupRecommendations(analysis: any): Promise<string[]> private async assessCleanupRisks(analysis: any): Promise<any> ``` #### In `enhanced-tools.ts`: ```typescript // Formatting Methods for Chat Display private formatClusterAnalysisForChat(analysis: any): string private formatExecutionPlanForChat(plan: any): string private formatCleanupPlanForChat(plan: any): string ``` ### 3-Phase Operation Flow #### Phase 1: Cluster Analysis ```typescript // Analyze current cluster state const clusterAnalysis = await installer.analyzeClusterForInstallation(); const analysisMessage = this.formatClusterAnalysisForChat(clusterAnalysis); await this.reportProgress(`๐Ÿ“Š **Cluster Analysis Complete**\n\n${analysisMessage}`, 25); ``` #### Phase 2: Execution Planning ```typescript // Generate detailed execution plan const executionPlan = await installer.generateInstallationPlan(clusterAnalysis); const planMessage = this.formatExecutionPlanForChat(executionPlan); await this.reportProgress(`๐Ÿ“‹ **Installation Plan Generated**\n\n${planMessage}`, 50); ``` #### Phase 3: Actual Execution ```typescript // Execute the planned operation const result = await installer.installArcWithTroubleshooting(options); ``` ## ๐Ÿ“‹ Sample Output ### Installation Analysis Output: ```markdown ## ๐Ÿ” Cluster Analysis Results ### Cluster Information - **Kubernetes Version**: v1.28.0 - **Nodes**: 3 nodes (3 ready) - **Resources**: 12 CPU cores, 48GB memory ### Prerequisites Check โœ… kubectl connectivity verified โœ… Helm available โœ… GitHub token configured ### Existing ARC Resources ๐ŸŸข No existing ARC installation detected ### Recommendations - Cluster ready for ARC installation - Consider enabling resource monitoring ### Risk Assessment - **Installation Risk**: Low - **Data Loss Risk**: None - **Downtime Risk**: Minimal ``` ### Execution Plan Output: ```markdown ## ๐Ÿ“‹ Installation Execution Plan ### Phase 1: Environment Preparation (5 minutes) 1. Validate cluster connectivity 2. Check resource availability 3. Configure namespace permissions ### Phase 2: ARC Controller Installation (10 minutes) 1. Add GitHub Actions Runner Controller Helm repository 2. Install ARC controller in arc-systems namespace 3. Configure GitHub authentication ### Phase 3: Runner Deployment (5 minutes) 1. Deploy runner scale set 2. Configure organization-level runners 3. Verify runner registration ### Rollback Strategy - Helm rollback available for all components - Namespace cleanup script prepared - Configuration backup created ### Commands to Execute ```bash helm repo add actions-runner-controller https://actions-runner-controller.github.io/actions-runner-controller helm install arc actions-runner-controller/actions-runner-controller -n arc-systems --create-namespace kubectl apply -f runner-scale-set.yaml ``` ``` ## ๐Ÿงช Testing ### Test Script Use `test-transparency-features.js` to validate the new features: ```bash npm run build ./test-transparency-features.js ``` ### Manual Testing 1. **VS Code Integration**: Use the MCP server through VS Code 2. **Direct CLI**: Test with `node test-mcp.js` 3. **Docker**: Test containerized version ## ๐Ÿ”ง Configuration ### Environment Variables All existing configuration options remain unchanged: - `CLEANUP_ARC=true` for enhanced cleanup - `GITHUB_TOKEN` for GitHub authentication - `GITHUB_ORG` for organization scope ### MCP Configuration No changes required to existing `mcp.json` configuration. ## ๐Ÿš€ Usage Examples ### Installation with Analysis ```javascript // Through MCP client const result = await client.callTool('arc_install_controller', {}); // Provides: cluster analysis โ†’ execution plan โ†’ installation ``` ### Cleanup with Planning ```javascript // Through MCP client const result = await client.callTool('arc_cleanup_installation', {}); // Provides: resource analysis โ†’ cleanup plan โ†’ safe removal ``` ## ๐ŸŽฏ Benefits 1. **Transparency**: Users see exactly what will happen before execution 2. **Safety**: Risk assessment prevents destructive operations 3. **Education**: Users learn about their cluster state and ARC components 4. **Confidence**: Detailed plans build trust in the automation 5. **Troubleshooting**: Rich diagnostic information for issue resolution ## ๐Ÿ”ฎ Future Enhancements - **Interactive Confirmation**: Pause for user approval between phases - **Dry Run Mode**: Show all planned operations without execution - **Detailed Logging**: Enhanced logging for each operation step - **Rollback Automation**: Automatic rollback on failure detection - **Resource Monitoring**: Real-time resource usage during operations --- *This implementation addresses the user request: "Let's also add more prompts in between installation or cleanup to show the user how the cluster looks like and a full plan including possible commands that are going to be executed before running the actual task"*

Latest Blog Posts

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