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