Skip to main content
Glama

xcode_health_check

Verify XcodeMCP environment and configuration health to ensure proper build automation and log parsing functionality.

Instructions

Perform a comprehensive health check of the XcodeMCP environment and configuration

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Core handler implementation: Performs comprehensive environment validation (OS, Xcode, XCLogParser, osascript, permissions) and generates a detailed human-readable health report with recovery instructions.
    public static async createHealthCheckReport(): Promise<string> {
      const results = await this.validateEnvironment();
      const version = this.getVersion();
      const report = [
        `XcodeMCP Configuration Health Check (v${version})`,
        '='.repeat(50),
        '',
        this.generateValidationSummary(results),
        ''
      ];
    
      if (!results.overall.valid) {
        report.push('IMMEDIATE ACTIONS REQUIRED:');
        
        results.overall.criticalFailures.forEach(component => {
          const result = results[component];
          if (result && 'valid' in result) {
            const validationResult = result as EnvironmentValidationResult;
            report.push(`\n${component.toUpperCase()} FAILURE:`);
            validationResult.recoveryInstructions?.forEach((instruction: string) => {
              report.push(`• ${instruction}`);
            });
          }
        });
    
        if (results.overall.nonCriticalFailures.length > 0) {
          report.push('\nOPTIONAL IMPROVEMENTS:');
          results.overall.nonCriticalFailures.forEach(component => {
            const result = results[component];
            if (result && 'valid' in result) {
              const validationResult = result as EnvironmentValidationResult;
              report.push(`\n${component.toUpperCase()}:`);
              validationResult.recoveryInstructions?.forEach((instruction: string) => {
                report.push(`• ${instruction}`);
              });
            }
          });
        }
      }
    
      const unavailableFeatures = this.getUnavailableFeatures(results);
      if (unavailableFeatures.length > 0) {
        report.push('\nLIMITED FUNCTIONALITY:');
        unavailableFeatures.forEach(feature => {
          report.push(`• ${feature}`);
        });
      }
    
      return report.join('\n');
    }
  • MCP tool request handler registration: Dispatches 'xcode_health_check' calls to EnvironmentValidator.createHealthCheckReport() in the main CallToolRequestSchema handler.
    try {
      // Handle health check tool first (no environment validation needed)
      if (name === 'xcode_health_check') {
        const report = await EnvironmentValidator.createHealthCheckReport();
        return { content: [{ type: 'text', text: report }] };
      }
  • CLI direct tool call registration: Identical dispatch logic for CLI's callToolDirect method.
    if (name === 'xcode_health_check') {
      const report = await EnvironmentValidator.createHealthCheckReport();
      return { content: [{ type: 'text', text: report }] };
  • Tool schema definition: Defines name, description, and empty input schema (no parameters required). Used by both CLI and MCP.
      name: 'xcode_health_check',
      description: 'Perform a comprehensive health check of the XcodeMCP environment and configuration',
      inputSchema: {
        type: 'object',
        properties: {},
      },
    },
  • Core helper: Performs all individual environment validations (OS, Xcode installation, tools, permissions) that feed into the health check report.
    public static async validateEnvironment(): Promise<EnvironmentValidation> {
      const results: EnvironmentValidation = {
        os: await this.validateOS(),
        xcode: await this.validateXcode(),
        xclogparser: await this.validateXCLogParser(),
        osascript: await this.validateOSAScript(),
        permissions: await this.validatePermissions(),
        overall: { valid: false, canOperateInDegradedMode: false, criticalFailures: [], nonCriticalFailures: [] }
      };
    
      // Determine overall validity and degraded mode capability
      const criticalFailures = ['os', 'osascript'].filter(key => !results[key]?.valid);
      const nonCriticalFailures = ['xcode', 'xclogparser', 'permissions'].filter(key => !results[key]?.valid);
    
      results.overall = {
        valid: criticalFailures.length === 0 && nonCriticalFailures.length === 0,
        canOperateInDegradedMode: criticalFailures.length === 0,
        criticalFailures,
        nonCriticalFailures
      };
    
      this.validationResults = results;
      return results;
    }

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/lapfelix/XcodeMCP'

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