跳至主要内容

設定

核心設定物件為 ServerConfig,由 startAdminServer() 接收。相關內容型別會用於工具執行過程。

ServerConfig​

只有 port 是必填欄位。

欄位型別預設值說明
portnumber—(必填)監聽的 TCP 連接埠,為 0–65535 的整數。
hoststring"127.0.0.1"監聽的網路介面;預設使用回送位址,避免意外對外開放。
apiKeystringundefined設定後,管理 API 與 HTTP 傳輸皆要求使用此共用密鑰。
specPathstringundefined啟動時載入一次的規格。
baseUrlOverridestringundefined覆寫從 servers[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():

欄位型別預設值說明
protocolProtocolHintundefined對外宣告的協定提示。
namestring"openapi-mcp"對外宣告的伺服器名稱。
versionstring"1.1.0"對外宣告的伺服器版本。
pageSizenumber100每次清單回應的項目上限,最多 500 項。
instructionsstring內建透過 MCP instructions 提供的使用說明。

傳輸層選項(AttachMcpRoutesOptions)​

從 @powerduck/openapi-mcp-server 匯入 attachMcpRoutes,將選項物件作為第二個引數傳入。舊版包裝函式 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 的額外欄位。管理伺服器會轉送來源與主機設定,但使用傳輸層預設的工作階段上限與閒置逾時。若需自訂這些限制,請直接呼叫公開的傳輸函式。

另請參閱​