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

49 lines 2.1 kB
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { type Logger } from 'pino'; import type { Config } from './config.js'; import { ElsClient } from './elsClient.js'; import type { ToolContext, MiddlewareDeps } from './middleware/withMiddleware.js'; import type { ProjectConfig } from './discovery/projectConfig.js'; /** * Создаёт McpServer, регистрирует tools, возвращает готовый объект. * * Transport подключается отдельно: stdio через `cli.ts`, HTTP через * `transports/http-server.ts`. * * Логи всегда идут в stderr (pino.destination(2)) — stdout зарезервирован * для JSON-RPC. */ export interface CreateMcpServerOptions { config: Config; log?: Logger; /** Для тестов: использовать готовый ELS клиент вместо создания нового. */ client?: ElsClient; /** * Opt-in contextProvider. Если задан — все tools будут обёрнуты в * `withMiddleware` (quota + audit + usage + redaction). */ contextProvider?: () => ToolContext; /** Middleware deps (audit/usage/redaction). */ middleware?: MiddlewareDeps; /** * Auto-discovered project config (если найден `els.config.json` или * `package.json[inso.els]` в workdir / roots). */ projectConfig?: ProjectConfig | null; /** * Готовый text instructions для init-response. Если не задан, но передан * `projectConfig` — генерим автоматически. Если оба не заданы — базовый * блок без project-context. */ instructions?: string; } export interface McpServerHandle { server: McpServer; client: ElsClient; log: Logger; registeredTools: string[]; registeredResources: string[]; registeredPrompts: string[]; } export declare function createMcpServer(opts: CreateMcpServerOptions): McpServerHandle; //# sourceMappingURL=server.d.ts.map