@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-запуска.
46 lines • 2.25 kB
TypeScript
/**
* Типы для HTTP-транспорта.
*
* `RequestContext` собирается в auth middleware и потом доступен в
* Express handler'ах через `req.context`. Декларация augmentation модуля
* `express-serve-static-core` лежит ниже — она добавляет `context` к Request.
*/
export type AuthMethod = 'els-key' | 'oidc';
export interface RequestContext {
/** Способ аутентификации, по которому пользователь прошёл. */
authMethod: AuthMethod;
/** Только для `els-key`: оригинальный Bearer-ключ для проксирования в ELS. */
elsApiKey?: string;
/** Только для `oidc`: `sub` claim из JWT. */
oidcSub?: string;
/** Только для `oidc`: scope claim (raw array). */
scopes?: string[];
/**
* Основной (default) slug приложения, к которому привязан этот запрос. Для
* `els-key` пока `unknown` (резолвится ELS upstream); для `oidc` — берётся
* либо из LK resolver, либо fallback на MCP_OIDC_DEMO_APP_SLUG.
*/
appSlug: string;
/**
* Полный список доступных пользователю apps (только для `oidc`).
* Если у пользователя более одного app — tool принимает optional
* `appSlug` параметр; иначе используется первый из списка (`appSlug`).
*/
availableApps?: string[];
/** Короткий identifier для логов: первые 8 chars ELS-key или OIDC sub. */
keyId: string;
ip: string;
userAgent: string;
/** MCP `Mcp-Session-Id` header (если есть). */
sessionId?: string;
/** request-id middleware: уникален per-запрос. */
requestId: string;
}
declare module 'express-serve-static-core' {
interface Request {
context?: RequestContext;
/** Per-request child logger (pino). Заполняется в requestId middleware. */
log?: import('pino').Logger;
}
}
//# sourceMappingURL=types.d.ts.map