UNPKG

openapi-directory-mcp

Version:

Model Context Protocol server for accessing enhanced triple-source OpenAPI directory (APIs.guru + additional APIs + custom imports)

126 lines 2.88 kB
/** * Types and interfaces for custom OpenAPI specification management */ import { ApiGuruAPI } from "../types/api.js"; /** * Custom spec manifest entry */ export interface CustomSpecEntry { id: string; name: string; version: string; title: string; description: string; originalFormat: "yaml" | "json"; sourceType: "file" | "url"; sourcePath: string; imported: string; lastModified: string; fileSize: number; securityScan?: SecurityScanResult; } /** * Custom specs manifest */ export interface CustomSpecManifest { version: string; specs: Record<string, CustomSpecEntry>; lastUpdated: string; } /** * Security scan result for a custom spec */ export interface SecurityScanResult { scannedAt: string; issues: SecurityIssue[]; summary: { critical: number; high: number; medium: number; low: number; }; blocked: boolean; } /** * Individual security issue found in a spec */ export interface SecurityIssue { type: "prompt_injection" | "script_injection" | "suspicious_content" | "eval_usage"; severity: "low" | "medium" | "high" | "critical"; location: string; context: "example" | "description" | "parameter" | "schema" | "metadata"; pattern: string; message: string; suggestion?: string; ruleId: string; } /** * Security scanning rule definition */ export interface SecurityRule { id: string; pattern?: RegExp; detect?: (content: string) => boolean; type: SecurityIssue["type"]; severity: SecurityIssue["severity"]; contexts: SecurityIssue["context"][]; message: string; suggestion?: string; allowInExamples?: boolean; description: string; } /** * OpenAPI spec processing result */ export interface SpecProcessingResult { spec: ApiGuruAPI; originalFormat: "yaml" | "json"; securityScan: SecurityScanResult; metadata: { title: string; description: string; version: string; fileSize: number; }; } /** * Import command options */ export interface ImportOptions { name?: string; version?: string; source: string; skipSecurity?: boolean; strictSecurity?: boolean; interactive?: boolean; } /** * CLI import result */ export interface ImportResult { success: boolean; specId?: string; message: string; securityScan?: SecurityScanResult; warnings?: string[]; errors?: string[]; } /** * Custom spec storage paths */ export interface CustomSpecPaths { baseDir: string; manifestFile: string; specsDir: string; getSpecFile(name: string, version: string): string; } /** * Validation result for OpenAPI spec */ export interface ValidationResult { valid: boolean; version?: string; errors: string[]; warnings: string[]; } //# sourceMappingURL=types.d.ts.map