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-запуска.

43 lines 1.95 kB
import { type Express, type Request, type Response, type NextFunction } from 'express'; import type { Logger } from 'pino'; import type { Config } from '../config.js'; import { ElsClient } from '../elsClient.js'; import { HttpTransportManager } from '../transports/http.js'; import { createJwksResolver } from './jwks.js'; import type { RedisService } from '../cache/redis.js'; import type { MiddlewareDeps } from '../middleware/withMiddleware.js'; import type { LkResolver } from './lkResolver.js'; /** * Создаёт Express-приложение для Streamable HTTP transport. * * Структура: * - `/els/healthz`, `/els/readyz` — public, без auth * - `/els/metrics` — public, Prometheus (отключаемо через MCP_METRICS_ENABLED=false) * - `/els/.well-known/*` — public, без auth * - `/els/mcp` — требует Bearer (ELS-key или OIDC JWT), + originGuard * * Возвращает app + manager (нужен для graceful shutdown). */ export interface CreateHttpAppOptions { config: Config; log: Logger; /** Для тестов: ManaualTransportManager / mock JWKS. */ transportManager?: HttpTransportManager; jwksResolver?: ReturnType<typeof createJwksResolver>; /** Для тестов: внешний ElsClient (probe). */ probeElsClient?: ElsClient; /** Redis для readyz / cache / DCR. */ redis?: RedisService | null; /** Middleware deps (передаём в transport manager). */ middlewareDeps?: MiddlewareDeps; /** LK resolver для OIDC sub → apps (передаётся в auth middleware). */ lkResolver?: LkResolver | null; } export interface HttpAppHandle { app: Express; manager: HttpTransportManager; probeClient: ElsClient | undefined; } export declare function createHttpApp(opts: CreateHttpAppOptions): HttpAppHandle; export type { NextFunction, Request, Response }; //# sourceMappingURL=app.d.ts.map