UNPKG

@inso_web/els-mcp

Version:

MCP-сервер поверх INSO Error Logs Service. Read-only tools (search, analytics, fingerprinting, correlations) для подключения Claude Desktop/Code и ChatGPT к логам ошибок. Streamable HTTP transport + stdio для npx-запуска.

51 lines 2.37 kB
/** * Унифицированный класс ошибок для всех ELS-запросов и tool handler'ов. * * Мапится 1-в-1 в MCP-стандартный error shape: * { isError: true, content: [{ type: 'text', text: <msg> }], * _meta: { code, retryAfter?, suggestedAction? } } * * Коды: * - RATE_LIMITED — 429 от ELS * - UPSTREAM_UNAVAILABLE — 5xx от ELS (после retry) * - INVALID_ARGS — 400 от ELS, либо локальная валидация * - NOT_FOUND — 404 (отсутствует traceId, app и т.д.) * - INSUFFICIENT_SCOPE — 403 от ELS * - QUOTA_EXCEEDED — generic квота (legacy) * - TIER_QUOTA_EXCEEDED — основной дневной лимит tier'а * - AI_QUOTA_EXCEEDED — отдельная AI-квота для AI-tools * - INTERNAL — fallback для непредвиденных ситуаций */ export type ToolErrorCode = 'RATE_LIMITED' | 'UPSTREAM_UNAVAILABLE' | 'INVALID_ARGS' | 'NOT_FOUND' | 'INSUFFICIENT_SCOPE' | 'QUOTA_EXCEEDED' | 'TIER_QUOTA_EXCEEDED' | 'AI_QUOTA_EXCEEDED' | 'INTERNAL'; export declare class ToolError extends Error { readonly code: ToolErrorCode; readonly retryAfter?: number; readonly suggestedAction?: string; readonly meta?: Record<string, unknown>; constructor(code: ToolErrorCode, message: string, options?: { retryAfter?: number; suggestedAction?: string; meta?: Record<string, unknown>; cause?: unknown; }); /** * Сериализация в MCP-tool error response. */ toToolResult(): { isError: true; content: Array<{ type: 'text'; text: string; }>; structuredContent: Record<string, unknown>; _meta: Record<string, unknown>; }; } /** * Преобразовать HTTP-статус и тело ответа ELS в ToolError. * * `body` приходит как уже-распарсенный JSON (или string, если parse не удался). * `retryAfterHeader` — содержимое заголовка Retry-After (секунды). */ export declare function mapHttpToToolError(status: number, body: unknown, retryAfterHeader?: string | null): ToolError; //# sourceMappingURL=errors.d.ts.map