UNPKG

mcp-server-tester-sse-http-stdio

Version:

MCP Server Tester with SSE support - Test MCP servers using HTTP, SSE, and STDIO transports

71 lines (70 loc) 2.54 kB
/** * SDK Error Detection System * Captures and translates MCP SDK errors into compliance test results */ import type { McpClient } from '../../shared/core/mcp-client.js'; import { type DiagnosticResult, type ComplianceConfig, type TestSeverity, type IssueType } from './types.js'; export interface SdkErrorTest { readonly name: string; readonly description: string; readonly category: 'base-protocol' | 'lifecycle' | 'server-features'; readonly feature: string; readonly severity: TestSeverity; readonly mcpSpecSection?: string; readonly operation: (_client: McpClient) => Promise<unknown>; readonly expectsError?: boolean; readonly expectedErrorCode?: number; } export interface SdkErrorResult { testName: string; category: string; status: 'passed' | 'failed' | 'skipped'; message: string; severity: TestSeverity; duration: number; sdkError?: { type: 'McpError' | 'JSONRPCError' | 'Error' | 'Unknown'; code?: number; message: string; data?: unknown; }; issueType?: IssueType; expected?: string; actual?: string; recommendations?: string[]; specLinks?: string[]; } export declare class SdkErrorDetector { /** * Standard SDK error tests that replace manual validation */ static readonly STANDARD_TESTS: SdkErrorTest[]; /** * Execute SDK error detection tests */ static executeTests(client: McpClient, config: ComplianceConfig, tests?: SdkErrorTest[]): Promise<SdkErrorResult[]>; /** * Execute a single SDK error detection test */ static executeTest(test: SdkErrorTest, client: McpClient, config: ComplianceConfig): Promise<SdkErrorResult>; /** * Analyze SDK error and categorize it */ static analyzeSdkError(error: unknown): SdkErrorResult['sdkError']; /** * Validate that an error matches expected criteria */ static validateExpectedError(sdkError: SdkErrorResult['sdkError'], expectedCode?: number): boolean; /** * Create a failure result for unexpected errors */ static createFailureResult(test: SdkErrorTest, sdkError: SdkErrorResult['sdkError'], duration: number): SdkErrorResult; /** * Create a timeout promise for test execution */ static createTimeoutPromise(testName: string, timeoutMs: number): Promise<never>; /** * Convert SDK error results to standard diagnostic results */ static convertTodiagnosticResults(sdkResults: SdkErrorResult[]): DiagnosticResult[]; }