@flexabrain/mcp-server
Version:
Advanced electrical schematic analysis MCP server with rail engineering expertise
610 lines (480 loc) • 17.8 kB
Markdown
# 📚 FlexaBrain MCP Server - API Reference
Complete documentation for all MCP tools, types, and interfaces.
---
## 🛠️ **MCP Tools**
### 1. Analyze Electrical Schematic
**Primary analysis tool providing comprehensive electrical schematic assessment.**
```typescript
function analyzeElectricalSchematic(args: AnalyzeSchematicArgs): Promise<MCPToolResponse>
```
#### Parameters
```typescript
interface AnalyzeSchematicArgs {
image_path: string; // Required: Path to schematic image
analysis_depth?: 'basic' | 'standard' | 'comprehensive'; // Analysis detail level
focus_areas?: ('safety' | 'compliance' | 'performance' | 'maintenance')[]; // Analysis focus
rail_system_context?: {
system_type: 'METRO' | 'LIGHT_RAIL' | 'HEAVY_RAIL' | 'HIGH_SPEED' | 'FREIGHT';
voltage_system: string; // e.g., "1500V DC", "25kV AC"
region: string; // Geographic region
applicable_standards: string[]; // Relevant standards
};
custom_standards?: string[]; // Additional standards to check
}
```
#### Returns
**Rich markdown report including:**
- Component inventory with confidence scores
- Safety analysis (arc flash, electrical shock, grounding)
- Standards compliance assessment
- Circuit topology analysis
- Maintenance recommendations
- Expert recommendations with priority levels
- Performance metrics and optimization opportunities
#### Example
```typescript
const result = await analyzeElectricalSchematic({
image_path: './schematics/metro-traction.png',
analysis_depth: 'comprehensive',
focus_areas: ['safety', 'compliance', 'maintenance'],
rail_system_context: {
system_type: 'METRO',
voltage_system: '1500V DC',
region: 'US',
applicable_standards: ['EN 50155', 'IEC 61375']
}
});
```
---
### 2. Extract Component Inventory
**Generate detailed component catalogs with specifications and categorization.**
```typescript
function extractComponentInventory(args: ExtractInventoryArgs): Promise<string>
```
#### Parameters
```typescript
interface ExtractInventoryArgs {
image_path: string; // Required: Path to schematic image
output_format: 'JSON' | 'CSV' | 'PDF'; // Output format
include_specifications?: boolean; // Include component specs
group_by_category?: boolean; // Group components by category
filter_by_type?: ComponentType[]; // Filter specific component types
min_confidence?: number; // Minimum confidence threshold
}
```
#### Returns
**Structured component inventory report:**
- Total component count and recognition statistics
- Components grouped by category (traction_power, protection, signaling, etc.)
- Detailed component list with specifications
- Export data in requested format
- Quality metrics and confidence scores
#### Example
```typescript
const inventory = await extractComponentInventory({
image_path: './schematic.png',
output_format: 'JSON',
include_specifications: true,
group_by_category: true,
min_confidence: 0.8
});
```
---
### 3. Validate Electrical Standards
**Comprehensive standards compliance validation against electrical and rail regulations.**
```typescript
function validateElectricalStandards(args: ValidateStandardsArgs): Promise<string>
```
#### Parameters
```typescript
interface ValidateStandardsArgs {
image_path: string; // Required: Path to schematic image
standards: string[]; // Required: Standards to validate against
validation_level?: 'basic' | 'comprehensive' | 'detailed'; // Validation depth
rail_system_type?: string; // Rail system context
region?: 'EU' | 'US' | 'ASIA' | 'GLOBAL'; // Regional standards focus
custom_criteria?: string[]; // Additional validation criteria
}
```
#### Supported Standards
- **IEC Standards**: 61375, 62278, 62279, 62425
- **IEEE Standards**: 1584 (Arc Flash), 519 (Harmonics), 80 (Safety)
- **EN Standards**: 50155 (Railway Electronics), 50121 (EMC), 50126 (RAMS)
- **NFPA Standards**: 70E (Electrical Safety), 70 (NEC)
- **Rail-Specific**: TSI, ERTMS, CENELEC, FRA regulations
#### Returns
**Detailed compliance report:**
- Overall compliance score (0-100%)
- Standards analysis with pass/fail status
- Non-compliance issues with remediation suggestions
- Items requiring expert review
- Compliance trends and patterns
#### Example
```typescript
const compliance = await validateElectricalStandards({
image_path: './schematic.png',
standards: ['EN 50155', 'IEC 61375', 'IEEE 1584'],
validation_level: 'comprehensive',
rail_system_type: 'HIGH_SPEED',
region: 'EU'
});
```
---
### 4. Analyze Power Flow
**Advanced power system analysis with efficiency calculations and optimization recommendations.**
```typescript
function analyzePowerFlow(args: PowerFlowArgs): Promise<string>
```
#### Parameters
```typescript
interface PowerFlowArgs {
image_path: string; // Required: Path to schematic image
analysis_focus?: 'traction' | 'auxiliary' | 'signaling' | 'complete'; // Analysis scope
load_profile?: 'peak' | 'normal' | 'minimum'; // Load conditions
include_harmonics?: boolean; // Include harmonic analysis
system_voltage?: number; // System nominal voltage
power_quality_assessment?: boolean; // Include power quality metrics
}
```
#### Returns
**Comprehensive power analysis:**
- Power sources and load identification
- Power flow calculations and efficiency metrics
- Load balancing analysis
- Harmonic distortion assessment
- Optimization recommendations
- Energy savings opportunities
#### Example
```typescript
const powerAnalysis = await analyzePowerFlow({
image_path: './traction-power.png',
analysis_focus: 'traction',
load_profile: 'peak',
include_harmonics: true,
system_voltage: 25000,
power_quality_assessment: true
});
```
---
### 5. Generate Maintenance Schedule
**Intelligent maintenance scheduling based on component types and rail engineering best practices.**
```typescript
function generateMaintenanceSchedule(args: MaintenanceArgs): Promise<string>
```
#### Parameters
```typescript
interface MaintenanceArgs {
image_path: string; // Required: Path to schematic image
rail_system_type: string; // Required: Rail system type
maintenance_strategy: 'PREVENTIVE' | 'PREDICTIVE' | 'CONDITION_BASED'; // Strategy
time_horizon_months: number; // Planning horizon
include_cost_estimates?: boolean; // Include cost projections
priority_components?: string[]; // Focus on specific components
}
```
#### Returns
**Detailed maintenance plan:**
- Component-specific maintenance calendars
- Priority actions with urgency levels
- Cost estimates and resource requirements
- Maintenance optimization recommendations
- Risk-based scheduling priorities
#### Example
```typescript
const schedule = await generateMaintenanceSchedule({
image_path: './substation.png',
rail_system_type: 'METRO',
maintenance_strategy: 'PREDICTIVE',
time_horizon_months: 24,
include_cost_estimates: true
});
```
---
### 6. Check Safety Compliance
**Comprehensive safety analysis including arc flash hazard assessment and PPE requirements.**
```typescript
function checkSafetyCompliance(args: SafetyComplianceArgs): Promise<string>
```
#### Parameters
```typescript
interface SafetyComplianceArgs {
image_path: string; // Required: Path to schematic image
voltage_level: number; // Required: System voltage level
safety_standards: string[]; // Safety standards to validate
include_arc_flash_analysis?: boolean; // Include arc flash calculations
include_ppe_recommendations?: boolean; // Include PPE requirements
worker_category?: 'qualified' | 'unqualified'; // Worker qualification level
}
```
#### Returns
**Comprehensive safety assessment:**
- Overall safety level classification
- Arc flash analysis with incident energy calculations
- Electrical shock hazard assessment
- PPE category recommendations
- Safety boundary definitions
- Emergency response procedures
#### Example
```typescript
const safety = await checkSafetyCompliance({
image_path: './hv-substation.png',
voltage_level: 25000,
safety_standards: ['NFPA 70E', 'IEEE 1584'],
include_arc_flash_analysis: true,
include_ppe_recommendations: true,
worker_category: 'qualified'
});
```
---
### 7. Transform Schematic Image
**Advanced image preprocessing for improved OCR accuracy and analysis quality.**
```typescript
function transformSchematicImage(args: ImageTransformArgs): Promise<string>
```
#### Parameters
```typescript
interface ImageTransformArgs {
input_path: string; // Required: Input image path
output_path?: string; // Output path (optional)
operations: ('enhance_contrast' | 'denoise' | 'binarize' | 'deskew' | 'resize' | 'crop' | 'rotate')[]; // Required: Operations to perform
enhancement_level?: 'basic' | 'standard' | 'aggressive'; // Enhancement intensity
target_dpi?: number; // Target resolution
preserve_aspect_ratio?: boolean; // Maintain aspect ratio
output_format?: 'png' | 'jpg' | 'tiff'; // Output format
}
```
#### Available Operations
- **enhance_contrast**: Improve image contrast for better text recognition
- **denoise**: Remove noise and artifacts
- **binarize**: Convert to black and white for optimal OCR
- **deskew**: Correct image rotation and alignment
- **resize**: Scale image to optimal dimensions
- **crop**: Remove irrelevant borders and margins
- **rotate**: Correct orientation
#### Returns
**Image transformation report:**
- Processed image path and metadata
- Applied transformations and parameters
- Quality improvement metrics
- Processing statistics
#### Example
```typescript
const transformed = await transformSchematicImage({
input_path: './raw-schematic.jpg',
output_path: './processed-schematic.png',
operations: ['enhance_contrast', 'denoise', 'binarize', 'deskew'],
enhancement_level: 'standard',
target_dpi: 300,
output_format: 'png'
});
```
---
### 8. Batch Analyze Schematics
**Efficient batch processing with comparison analysis and consolidated reporting.**
```typescript
function batchAnalyzeSchematics(args: BatchAnalysisArgs): Promise<string>
```
#### Parameters
```typescript
interface BatchAnalysisArgs {
input_directory: string; // Required: Directory containing schematics
file_pattern?: string; // File pattern filter (e.g., "*.png")
analysis_depth?: 'basic' | 'standard' | 'comprehensive'; // Analysis level
focus_areas?: ('safety' | 'compliance' | 'performance' | 'maintenance')[]; // Focus areas
output_format?: 'JSON' | 'HTML' | 'PDF'; // Report format
generate_comparison?: boolean; // Generate comparison analysis
parallel_processing?: boolean; // Enable parallel processing
max_concurrent?: number; // Maximum concurrent analyses
generate_summary_report?: boolean; // Generate consolidated summary
}
```
#### Returns
**Comprehensive batch analysis:**
- Individual schematic analysis results
- Cross-schematic comparison and consistency analysis
- Consolidated project-level recommendations
- Batch processing statistics and performance metrics
- Summary reports and trend analysis
#### Example
```typescript
const batchResults = await batchAnalyzeSchematics({
input_directory: './project-schematics/',
file_pattern: '*.png',
analysis_depth: 'standard',
focus_areas: ['safety', 'compliance'],
output_format: 'HTML',
generate_comparison: true,
parallel_processing: true,
max_concurrent: 4
});
```
---
## 🔧 **Type Definitions**
### Core Types
```typescript
// Component Types
enum ComponentType {
CONVERTER = 'converter',
TRANSFORMER = 'transformer',
CIRCUIT_BREAKER = 'circuit_breaker',
CONTACTOR = 'contactor',
RELAY = 'relay',
SIGNAL_MODULE = 'signal_module',
SIGNAL_REFERENCE = 'signal_reference',
// ... additional types
}
// Component Categories
enum ComponentCategory {
TRACTION_POWER = 'traction_power',
AUXILIARY_POWER = 'auxiliary_power',
SIGNALING = 'signaling',
CONTROL = 'control',
PROTECTION = 'protection',
MEASUREMENT = 'measurement',
COMMUNICATION = 'communication',
UNCLASSIFIED = 'unclassified'
}
// Safety Levels
enum SafetyLevel {
CRITICAL = 'critical',
HIGH = 'high',
MEDIUM = 'medium',
LOW = 'low',
SAFE = 'safe'
}
// Schematic Types
enum SchematicType {
TRACTION_POWER = 'traction_power',
SIGNALING = 'signaling',
CONTROL = 'control',
AUXILIARY = 'auxiliary',
POWER_DISTRIBUTION = 'power_distribution',
GENERAL = 'general'
}
```
### Component Specification
```typescript
interface ComponentSpecification {
voltage_rating?: VoltageRange;
current_rating?: CurrentRange;
power_rating?: PowerRange;
frequency?: FrequencyRange;
operating_temperature?: TemperatureRange;
standards_compliance: string[];
safety_requirements: SafetyRequirement[];
maintenance_intervals: MaintenanceSchedule;
typical_applications?: string[];
}
interface VoltageRange {
min: number;
max: number;
nominal?: number;
unit: 'V_DC' | 'V_AC' | 'kV_DC' | 'kV_AC';
}
interface CurrentRange {
min: number;
max: number;
nominal?: number;
unit: 'A' | 'mA' | 'kA';
}
interface PowerRange {
min: number;
max: number;
nominal?: number;
unit: 'W' | 'kW' | 'MW' | 'VA' | 'kVA' | 'MVA';
}
```
### Analysis Results
```typescript
interface AnalysisResult {
success: boolean;
analysis?: SchematicAnalysis;
errors?: AnalysisError[];
warnings?: AnalysisWarning[];
processing_stats: ProcessingStats;
}
interface SchematicAnalysis {
image_path: string;
schematic_type: SchematicType;
analysis_timestamp: Date;
processing_time: number;
// Analysis results
component_recognition: ComponentRecognitionResult;
components: ElectricalComponent[];
circuit_topology: CircuitTopology;
safety_analysis: SafetyAnalysis;
compliance_report: ComplianceReport;
maintenance_guidance: MaintenanceGuidance;
performance_analysis: PerformanceAnalysis;
expert_recommendations: ExpertRecommendations;
// Quality metrics
overall_confidence: number;
analysis_quality: 'EXCELLENT' | 'GOOD' | 'ACCEPTABLE' | 'POOR';
limitations: string[];
assumptions: string[];
}
```
---
## ⚡ **Performance Considerations**
### Response Times (Typical)
- **Basic Analysis**: 2-5 seconds
- **Standard Analysis**: 5-15 seconds
- **Comprehensive Analysis**: 15-45 seconds
- **Batch Processing**: 30-120 seconds (depending on file count)
### Memory Usage
- **OCR Processing**: 50-200MB per image
- **Component Classification**: 10-50MB per schematic
- **Analysis Pipeline**: 100-500MB total working memory
### Optimization Tips
1. **Image Preprocessing**: Use [`transformSchematicImage`](#7-transform-schematic-image) to optimize images before analysis
2. **Batch Processing**: Use [`batchAnalyzeSchematics`](#8-batch-analyze-schematics) for multiple files
3. **Analysis Depth**: Choose appropriate depth based on requirements
4. **Focus Areas**: Limit focus areas to reduce processing time
5. **Parallel Processing**: Enable for batch operations when system resources allow
---
## 🛡️ **Error Handling**
### Common Error Codes
- **`IMAGE_NOT_FOUND`**: Image file does not exist or is not accessible
- **`INVALID_FORMAT`**: Unsupported image format
- **`OCR_FAILED`**: Text extraction failed due to poor image quality
- **`ANALYSIS_TIMEOUT`**: Analysis exceeded time limit
- **`INSUFFICIENT_CONTENT`**: No electrical components detected
- **`VALIDATION_ERROR`**: Invalid input parameters
### Error Response Format
```typescript
interface AnalysisError {
code: string;
message: string;
details?: string;
component_id?: string;
recovery_suggestions: string[];
}
```
### Best Practices
1. **Input Validation**: Always validate file paths and parameters
2. **Error Handling**: Implement proper error handling for all tool calls
3. **Retry Logic**: Implement exponential backoff for transient failures
4. **Logging**: Log errors and processing times for debugging
5. **Resource Management**: Monitor memory and processing time limits
---
## 🔍 **Debugging**
### Debug Output
Set `DEBUG=true` environment variable to enable detailed logging:
```bash
DEBUG=true node dist/index.js
```
### Log Levels
- **ERROR**: Critical failures and exceptions
- **WARN**: Non-critical issues and warnings
- **INFO**: General processing information
- **DEBUG**: Detailed execution traces
### Performance Monitoring
```typescript
// Monitor processing times
const startTime = Date.now();
const result = await analyzeElectricalSchematic(args);
const processingTime = Date.now() - startTime;
console.log(`Analysis completed in ${processingTime}ms`);
```
---
*For additional support and examples, see the main [README](../README.md) and other documentation files.*