/** * Protocol Comparator — A2A vs MCP Comparison Testing * * Run identical test cases against both MCP servers and A2A agents, * comparing latency, accuracy, cost, and reliability across protocols. */ export interface ComparisonTestCase { name: string; /** Input message / tool call */ input: string; /** For MCP: tool name to invoke */ mcpTool?: string; /** For MCP: tool arguments */ mcpArgs?: Record; /** Expected output substring */ expectedOutput?: string; /** Maximum acceptable latency in ms */ maxLatency_ms?: number; /** Number of repetitions for statistical comparison */ repetitions?: number; } export interface ProtocolResult { protocol: 'mcp' | 'a2a'; latency_ms: number; success: boolean; output?: string; error?: string; tokens?: { input?: number; output?: number; }; cost_usd?: number; } export interface ComparisonResult { testCase: string; mcp: ProtocolStats; a2a: ProtocolStats; winner: 'mcp' | 'a2a' | 'tie'; latencyDiff_ms: number; accuracyDiff: number; } export interface ProtocolStats { avgLatency_ms: number; p50Latency_ms: number; p95Latency_ms: number; p99Latency_ms: number; successRate: number; totalCost_usd: number; samples: ProtocolResult[]; } export interface ComparisonReport { timestamp: string; mcpServer: string; a2aAgent: string; results: ComparisonResult[]; summary: ComparisonSummary; } export interface ComparisonSummary { totalTests: number; mcpWins: number; a2aWins: number; ties: number; mcpAvgLatency_ms: number; a2aAvgLatency_ms: number; mcpSuccessRate: number; a2aSuccessRate: number; mcpTotalCost_usd: number; a2aTotalCost_usd: number; recommendation: string; } export interface ComparatorConfig { mcpServer: string; a2aAgent: string; testCases: ComparisonTestCase[]; /** Default repetitions per test case */ repetitions?: number; /** Timeout per request */ timeout_ms?: number; /** Auth for A2A agent */ a2aAuth?: { type: 'bearer'; token: string; }; /** Env vars for MCP stdio server */ mcpEnv?: Record; } export declare class ProtocolComparator { private config; constructor(config: ComparatorConfig); /** * Run comparison across all test cases */ compareMCPvsA2A(): Promise; private runMCPTests; private runA2ATests; private computeSummary; } /** * Format a comparison report for display */ export declare function formatComparisonReport(report: ComparisonReport): string; //# sourceMappingURL=protocol-compare.d.ts.map