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