@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-запуска.
28 lines • 1.45 kB
TypeScript
import type { RequestHandler } from 'express';
import type { Logger } from 'pino';
/**
* Origin-validation middleware для /els/mcp.
*
* Семантика:
* - Если запрос пришёл с `Origin` header (browser-based MCP клиент или
* EventSource из веб-приложения) — origin валидируется против whitelist.
* При несовпадении → 403 + `forbidden_origin`.
* - Если `Origin` отсутствует (server-to-server: curl, MCP SDK из node,
* Claude Desktop через stdio-proxy и т. п.) — middleware пропускает.
*
* Это дополнительная защита над cors():
* - cors() блокирует preflight; но non-preflight POST без credentials
* может пройти.
* - originGuard явно отказывает unknown-origin'ам на пути /els/mcp.
*
* Wildcard `*` в whitelist: dev-only режим (NODE_ENV !== 'production').
*/
export interface CreateOriginGuardOptions {
/** Список разрешённых origin'ов. Пустой — guard отключён. */
allowed: string[];
/** Если true — `*` в whitelist означает «пропускать любой origin». */
allowWildcard?: boolean;
log?: Logger;
}
export declare function createOriginGuard(opts: CreateOriginGuardOptions): RequestHandler;
//# sourceMappingURL=originGuard.d.ts.map