@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
TypeScript
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