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

52 lines 2.4 kB
/** * Pipeline редакции ErrorLog items перед возвратом из tools. * * Контракт: * - Не мутирует исходный объект, возвращает плоский клон. * - Применяет PII regex ко всем string-полям (включая компактные варианты). * - Анонимизирует `ip` (last octet → 0 для IPv4, /64 для IPv6). * - Усекает `userAgent` до family. * - Strip query из `url` и `referrer`. * - Оборачивает `message`/`stack` в `<untrusted>...</untrusted>` для compact/full форматов. * - Считает `suspiciousContent` по deny-list (см. promptInjection.ts). * * Конфиг управляется ENV (см. src/config.ts): * - MCP_REDACTION_ENABLED (default true) * - MCP_REDACTION_FIELDS (csv override — например `email,phone,jwt`) */ export interface RedactionConfig { enabled: boolean; /** Опциональный whitelist полей. Если задан — применяем только их. */ fields?: Set<string>; /** Оборачивать ли строковые поля в <untrusted> при выводе. Default true. */ wrapUntrusted?: boolean; } export interface RedactionStats { fieldsHit: string[]; suspiciousContentBlocked: boolean; suspiciousRule?: string; } export declare const DEFAULT_REDACTION_CONFIG: RedactionConfig; export interface RedactItemOptions { config?: RedactionConfig; } /** * Редактирует один ErrorLog (или его compact-вариант). Возвращает новый объект. */ export declare function redactErrorLog<T extends Record<string, unknown>>(log: T, opts?: RedactItemOptions): { value: T; stats: RedactionStats; }; /** * Массовая редакция items. Объединяет stats по всем. */ export declare function redactErrorLogs<T extends Record<string, unknown>>(logs: T[], opts?: RedactItemOptions): { items: T[]; stats: RedactionStats; }; export { redactValue } from './argsRedactor.js'; export { wrapUntrusted, detectSuspicious, containsSuspicious } from './promptInjection.js'; export { userAgentFamily } from './userAgent.js'; export { stripUrlQuery } from './url.js'; export { redactString } from './fields.js'; //# sourceMappingURL=index.d.ts.map