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

41 lines 2 kB
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import type { Logger } from 'pino'; import type { ElsClient } from '../elsClient.js'; import { type ToolContext, type MiddlewareDeps } from '../middleware/withMiddleware.js'; import type { Tier } from '../billing/limits.js'; /** * Регистрирует все read-only tools на MCP-сервере. * * Каждый tool регистрируется через `server.registerTool(name, config, cb)`. * SDK 1.x принимает Zod raw shape (Record<string, ZodType>) в `inputSchema` и * автоматически валидирует args перед вызовом handler'а. На выходе handler * возвращает `{ structuredContent, content, isError? }`. * * Опционально tool можно отключить через ENV `MCP_DISABLE_TOOLS=name1,name2`. */ export interface RegisterToolsOptions { client: ElsClient; disabled?: readonly string[]; log?: Logger; /** * Дополнительный contextProvider для извлечения appId/keyId/tier из * текущего request-контекста (в stdio-режиме обычно константа из config, * в HTTP-режиме — из OIDC claim / API-key). Если не задан, middleware * пропускается и handler вызывается напрямую (legacy-режим). */ contextProvider?: () => ToolContext; /** Deps для middleware (audit/usage/redaction). */ middleware?: MiddlewareDeps; } export declare function registerTools(server: McpServer, opts: RegisterToolsOptions): string[]; /** * Helper: создаёт ToolContext из переменных окружения для stdio-режима. */ export declare function makeStdioContext(args: { appId: string; apiKey: string; tier: Tier; log?: Logger; }): ToolContext; export declare const ALL_TOOL_NAMES: string[]; //# sourceMappingURL=index.d.ts.map