pms-analysis-reports-mcp-server
Version:
PMS analysis reports server handling maintenance reports, equipment analysis, compliance tracking, and performance metrics with ERP access for data extraction
175 lines (174 loc) • 4.27 kB
TypeScript
export interface ToolArguments {
[key: string]: any;
}
export interface PMSReport {
id: string;
vesselId: string;
vesselName: string;
imo?: number;
reportType: 'maintenance' | 'compliance' | 'performance' | 'analysis';
reportDate: Date;
createdBy: string;
status: 'draft' | 'completed' | 'approved' | 'archived';
title: string;
description?: string;
data: any;
metadata?: {
version: string;
lastModified: Date;
approvedBy?: string;
approvalDate?: Date;
};
}
export interface Equipment {
id: string;
name: string;
type: string;
manufacturer?: string;
model?: string;
serialNumber?: string;
location: string;
installationDate?: Date;
lastMaintenanceDate?: Date;
nextMaintenanceDate?: Date;
status: 'operational' | 'maintenance' | 'offline' | 'decommissioned';
}
export interface MaintenanceTask {
id: string;
equipmentId: string;
taskType: 'routine' | 'preventive' | 'corrective' | 'emergency';
title: string;
description: string;
frequency: string;
estimatedDuration: number;
priority: 'low' | 'medium' | 'high' | 'critical';
status: 'scheduled' | 'in_progress' | 'completed' | 'overdue' | 'cancelled';
scheduledDate?: Date;
completedDate?: Date;
assignedTo?: string;
parts?: PartRequirement[];
notes?: string;
}
export interface PartRequirement {
partNumber: string;
description: string;
quantity: number;
unit: string;
cost?: number;
}
export interface AnalysisRequest {
query: string;
filters?: {
vesselId?: string;
vesselName?: string;
imo?: number;
reportType?: string;
dateRange?: {
start: string;
end: string;
};
equipment?: string;
status?: string;
priority?: string;
};
limit?: number;
page?: number;
}
export interface ComplianceStatus {
requirementId: string;
description: string;
status: 'compliant' | 'non_compliant' | 'pending' | 'not_applicable';
lastChecked: Date;
nextDue?: Date;
responsible: string;
notes?: string;
}
export interface PerformanceMetrics {
metricType: string;
value: number;
unit: string;
timestamp: Date;
equipmentId?: string;
benchmarkValue?: number;
trend: 'improving' | 'stable' | 'declining';
}
export interface SearchResult<T> {
data: T[];
total: number;
page: number;
limit: number;
hasMore: boolean;
}
export interface FilterOptions {
vesselIds?: string[];
equipmentTypes?: string[];
statusFilters?: string[];
dateRange?: {
field: string;
start: string;
end: string;
};
priorities?: string[];
assignees?: string[];
}
export interface APIResponse<T = any> {
success: boolean;
data?: T;
error?: string;
message?: string;
timestamp: string;
}
export interface Vessel {
id: string;
name: string;
imo?: number;
type: string;
flag: string;
operator: string;
yearBuilt?: number;
classification?: string;
status: 'active' | 'inactive' | 'in_yard' | 'decommissioned';
}
export interface ReportConfiguration {
templateId: string;
title: string;
includeSections: string[];
dateRange?: {
start: string;
end: string;
};
filters?: FilterOptions;
format: 'pdf' | 'html' | 'excel' | 'json';
recipients?: string[];
}
export interface ToolResponseItem {
type: "error" | "text" | "table" | "chart" | "success";
content?: any;
text?: string;
data?: any;
title?: string;
format?: string;
metadata?: {
source?: string;
collection?: string;
query?: string;
totalFound?: number;
score?: number;
title?: string;
artifact?: string;
executionTime?: number;
recordsReturned?: number;
queryText?: string;
error?: string;
imo?: string;
[key: string]: any;
};
}
export type ToolResponse = ToolResponseItem[];
export interface TypesenseHit {
document: any;
text_match?: number;
}
export declare const COLLECTIONS: {
readonly DATA_LINKS: "data_links";
};