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

74 lines 2.91 kB
/** * Тонкая обёртка над Prisma client, который **опционально** доступен. * * Подход: * - Импорт `@prisma/client` (path: ../../node_modules/.prisma/mcp) делается * лениво и в try/catch — если пакет не сгенерирован, audit/billing * модули переходят в no-op режим. * - Не требуем live Postgres для тестов / dev — все `prisma.*`-операции * в тестах подменяются через `vi.mock`. * * Контракт: * - `getPrisma()` возвращает либо живой client, либо null (если MCP_DATABASE_URL * не задан или пакет не сгенерирован). * - Идемпотентен: повторные вызовы возвращают тот же instance. */ import type { Logger } from 'pino'; /** * Минимальный интерфейс клиента, который мы используем. * Совпадает по форме с реальным Prisma client. */ export interface McpPrismaClient { $disconnect(): Promise<void>; $transaction<T>(fn: (tx: McpPrismaClient) => Promise<T>): Promise<T>; mcpAuditLog: { findFirst(args: { where?: Record<string, unknown>; orderBy?: Record<string, 'asc' | 'desc'>; select?: Record<string, boolean>; }): Promise<{ rowHash: string; } | null>; findMany(args: { where?: Record<string, unknown>; orderBy?: Record<string, 'asc' | 'desc'>; select?: Record<string, boolean>; take?: number; skip?: number; }): Promise<Array<Record<string, unknown>>>; create(args: { data: Record<string, unknown>; }): Promise<unknown>; }; mcpUsageDaily: { upsert(args: { where: Record<string, unknown>; update: Record<string, unknown>; create: Record<string, unknown>; }): Promise<unknown>; aggregate(args: { where: Record<string, unknown>; _sum: { count: true; }; }): Promise<{ _sum: { count: bigint | null; }; }>; }; } export interface PrismaInitOptions { databaseUrl?: string; log?: Logger; } /** * Lazy init. Если пакет недоступен — возвращает null, логирует warn. */ export declare function getPrisma(opts?: PrismaInitOptions): Promise<McpPrismaClient | null>; /** * Для тестов — позволяет инжектировать mock-client. */ export declare function setPrismaForTests(client: McpPrismaClient | null): void; export declare function resetPrismaForTests(): void; //# sourceMappingURL=prisma.d.ts.map