メインコンテンツまでスキップ

設定

中心となる設定オブジェクトは ServerConfig で、startAdminServer() に渡します。関連するコンテキスト型はツールの実行に使用されます。

ServerConfig​

必須なのは port のみです。

フィールド型デフォルト説明
portnumber—(必須)待ち受ける TCP ポート。0~65535 の整数。
hoststring"127.0.0.1"待ち受けインターフェース。意図しない公開を防ぐため、デフォルトはループバック。
apiKeystringundefined設定すると管理 API と HTTP トランスポートで要求される共有シークレット。
specPathstringundefined起動時に一度読み込む仕様。
baseUrlOverridestringundefinedservers[0].url から取得した上流のベース 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() の第 3 引数として渡します。

フィールド型デフォルト説明
protocolProtocolHintundefined通知するプロトコルのヒント。
namestring"openapi-mcp"通知するサーバー名。
versionstring"1.1.0"通知するサーバーバージョン。
pageSizenumber100一覧レスポンスあたりの最大件数。上限は 500。
instructionsstring組み込みMCP の instructions で公開する利用説明。

トランスポート層のオプション(AttachMcpRoutesOptions)​

@powerduck/openapi-mcp-server から attachMcpRoutes をインポートし、第 2 引数にオプションオブジェクトを渡します。従来のラッパー attachSseRoutes() は位置引数 (app, specProvider, contextProvider, routeGuard?) のみを受け取ります。

フィールド型デフォルト説明
specProviderSpecProvider—(必須)新しいセッションにドキュメントを提供します。
contextProviderContextProvider—(必須)呼び出しごとの上流コンテキストを提供します。
routeGuardRequestHandlerundefinedすべての MCP ルートに適用するミドルウェア。
maxSessionsnumber64同時セッション数の上限。
sessionIdleMsnumber600000アイドルタイムアウト(ミリ秒)。0 で無効化。
allowedOriginsstring[]undefined許可するオリジン。空でないリストを指定すると DNS リバインディング対策を有効化。
allowedHostsstring[]undefined許可する Host ヘッダーの値。
enableLegacySsebooleantrue非推奨の HTTP+SSE トランスポートをマウントします。
onEvent(event: McpSessionEvent) => voidundefinedライフサイクルイベントを受け取ります。例外を投げてはいけません。

これらは attachMcpRoutes のオプションであり、ServerConfig の追加フィールドではありません。管理サーバーはオリジンとホストの設定を引き渡しますが、セッション数の上限とアイドルタイムアウトにはトランスポートのデフォルトを使います。変更が必要な場合は、公開トランスポート関数を直接使用してください。

関連項目​