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 1.81 kB
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import pino from 'pino'; import { ElsClient } from './elsClient.js'; import { registerTools } from './tools/index.js'; import { registerResources } from './resources/index.js'; import { registerPrompts } from './prompts/index.js'; import { buildInstructions } from './discovery/instructions.js'; export function createMcpServer(opts) { const log = opts.log ?? pino({ level: opts.config.logLevel, name: 'els-mcp' }, pino.destination({ dest: 2, sync: false })); const client = opts.client ?? new ElsClient({ baseUrl: opts.config.elsBaseUrl, apiKey: opts.config.elsApiKey, timeoutMs: opts.config.upstreamTimeoutMs, log, }); const instructions = opts.instructions ?? buildInstructions({ project: opts.projectConfig ?? null }); const server = new McpServer({ name: 'els-mcp', version: '0.3.0' }, { capabilities: { tools: {}, resources: {}, prompts: {} }, instructions, }); const registeredTools = registerTools(server, { client, disabled: opts.config.disabledTools, log, ...(opts.contextProvider ? { contextProvider: opts.contextProvider } : {}), ...(opts.middleware ? { middleware: opts.middleware } : {}), }); const registeredResources = registerResources(server, { client, log }); const registeredPrompts = registerPrompts(server, { log }); log.info({ tools: registeredTools, resources: registeredResources, prompts: registeredPrompts, baseUrl: opts.config.elsBaseUrl, }, 'MCP server initialized'); return { server, client, log, registeredTools, registeredResources, registeredPrompts }; } //# sourceMappingURL=server.js.map