Перейти к основному содержимому

Конфигурация

Основной объект конфигурации — ServerConfig, который принимает startAdminServer(). Связанные типы контекста используются при выполнении инструментов.

ServerConfig​

Обязателен только port.

ПолеТипПо умолчаниюОписание
portnumber— (обязательно)TCP-порт для прослушивания, целое число от 0 до 65535.
hoststring"127.0.0.1"Сетевой интерфейс; по умолчанию loopback, чтобы избежать случайного внешнего доступа.
apiKeystringundefinedОбщий секрет, который при настройке требуется для API управления и HTTP-транспорта.
specPathstringundefinedСпецификация, загружаемая один раз при запуске.
baseUrlOverridestringundefinedЗаменяет базовый URL целевого сервиса, полученный из servers[0].url.
upstreamHeadersRecord<string, string>undefinedЗаголовки, добавляемые к каждому запросу в целевой сервис.
requestTimeoutMsnumberundefinedТайм-аут каждого запроса в целевой сервис, в миллисекундах.
persistStatebooleantrueСохраняет загруженную спецификацию между перезапусками.
stateFilePathstringundefinedРасположение файла сохранённого состояния.
allowedOriginsstring[]undefinedРазрешённые источники CORS; пустое или отсутствующее значение отключает межсайтовый доступ.
allowedHostsstring[]undefinedРазрешённые значения заголовка Host.
maxLogEntriesnumber200Максимальное число записей журнала в памяти.
redactSensitiveHeadersbooleantrueМаскирует значения конфиденциальных заголовков до журналирования.
redactHeaderNamesstring[]undefinedДополнительные имена заголовков для маскирования сверх встроенного списка.
securitySecurityContextundefinedУчётные данные, передаваемые целевому API при каждом вызове инструмента.

SecurityContext​

ПолеТипФормат передачи
bearerTokenstringAuthorization: Bearer <token>
basicAuth{ username, password }Authorization: Basic <base64>
apiKeysRecord<string, string>Точные пары имени заголовка и значения.

Учётные данные добавляет исполнитель; они никогда не передаются модели в качестве аргументов инструмента.

ExecutionContext​

Контекст отдельного вызова, передаваемый в executeToolCall и возвращаемый ContextProvider:

ПолеТипОписание
baseUrlOverridestringЗаменяет URL сервера из спецификации для этого вызова.
upstreamHeadersRecord<string, string>Дополнительные заголовки целевого запроса.
requestTimeoutMsnumberТайм-аут вызова, не менее 1 секунды.
securitySecurityContextУчётные данные для отдельного вызова.
correlationIdstringСвязывает записи журнала одного вызова.
protocolProtocolHintТранспорт, инициировавший вызов.
onLog(entry) => voidПолучает записи журнала запросов и ответов; не должен выбрасывать исключения.
signalAbortSignalОтменяет выполняющийся запрос в целевой сервис.

Объединения литералов и функции проверки​

ОбъединениеЗначенияФункция проверки
TransportMode"stdio" | "web"—
SpecSource"startup-file" | "upload" | "paste" | "runtime"isSpecSource()
ServiceStatus"running" | "stopped" | "error"isServiceStatus()
ProtocolHint"streamable-http" | "sse" | "stdio"isProtocolHint()
LogDirection"request" | "response" | "internal"—
LogLevel"debug" | "info" | "warn" | "error"—
ParameterLocation"path" | "query" | "header" | "cookie"isParameterLocation()
BodyEncoding"json" | "form-urlencoded" | "multipart" | "text" | "binary"isBodyEncoding()

BuildMcpServerOptions​

Передаётся третьим аргументом в buildMcpServer():

ПолеТипПо умолчаниюОписание
protocolProtocolHintundefinedОбъявляемая подсказка о протоколе.
namestring"openapi-mcp"Объявляемое имя сервера.
versionstring"1.1.0"Объявляемая версия сервера.
pageSizenumber100Максимальное число элементов в ответе со списком, не более 500.
instructionsstringвстроеноПодсказка по использованию, доступная через MCP instructions.

Параметры транспортного слоя (AttachMcpRoutesOptions)​

Импортируйте attachMcpRoutes из @powerduck/openapi-mcp-server и передайте объект параметров вторым аргументом. Устаревшая обёртка attachSseRoutes() принимает только позиционные аргументы (app, specProvider, contextProvider, routeGuard?).

ПолеТипПо умолчаниюОписание
specProviderSpecProvider— (обязательно)Предоставляет документ для новых сессий.
contextProviderContextProvider— (обязательно)Предоставляет контекст целевого запроса для каждого вызова.
routeGuardRequestHandlerundefinedMiddleware, применяемый ко всем маршрутам MCP.
maxSessionsnumber64Максимальное число одновременных сессий.
sessionIdleMsnumber600000Тайм-аут бездействия в миллисекундах; 0 отключает его.
allowedOriginsstring[]undefinedРазрешённые источники; непустой список включает защиту от DNS rebinding.
allowedHostsstring[]undefinedРазрешённые значения заголовка Host.
enableLegacySsebooleantrueПодключает устаревший транспорт HTTP+SSE.
onEvent(event: McpSessionEvent) => voidundefinedПолучает события жизненного цикла; не должен выбрасывать исключения.

Это параметры attachMcpRoutes, а не дополнительные поля ServerConfig. Сервер управления передаёт настройки источников и хостов, но использует ограничения сессий и тайм-аут бездействия транспорта по умолчанию. Чтобы изменить эти ограничения, используйте публичную транспортную функцию напрямую.

См. также​