Lewati ke konten utama

Konfigurasi

Objek konfigurasi utama adalah ServerConfig, yang diterima oleh startAdminServer(). Tipe konteks terkait digunakan dalam eksekusi alat.

ServerConfig​

Hanya port yang wajib diisi.

KolomTipeNilai bawaanDeskripsi
portnumber— (wajib)Port TCP untuk mendengarkan, bilangan bulat 0–65535.
hoststring"127.0.0.1"Antarmuka jaringan; loopback secara bawaan untuk menghindari akses eksternal yang tidak disengaja.
apiKeystringundefinedRahasia bersama yang diwajibkan oleh API admin dan transport HTTP jika ditetapkan.
specPathstringundefinedSpesifikasi yang dimuat sekali saat mulai.
baseUrlOverridestringundefinedMengganti URL dasar layanan tujuan yang berasal dari servers[0].url.
upstreamHeadersRecord<string, string>undefinedHeader yang digabungkan ke setiap permintaan layanan tujuan.
requestTimeoutMsnumberundefinedBatas waktu per permintaan layanan tujuan dalam milidetik.
persistStatebooleantrueMenyimpan spesifikasi yang dimuat agar tetap tersedia setelah mulai ulang.
stateFilePathstringundefinedLokasi berkas status persisten.
allowedOriginsstring[]undefinedOrigin CORS yang diizinkan; kosong atau tidak disertakan menonaktifkan akses lintas origin.
allowedHostsstring[]undefinedNilai header Host yang diizinkan.
maxLogEntriesnumber200Jumlah maksimum entri log yang disimpan dalam memori.
redactSensitiveHeadersbooleantrueMenyamarkan nilai header sensitif sebelum dicatat.
redactHeaderNamesstring[]undefinedNama header tambahan yang disamarkan selain daftar bawaan.
securitySecurityContextundefinedKredensial yang diteruskan ke API tujuan untuk setiap panggilan alat.

SecurityContext​

KolomTipeDikirim sebagai
bearerTokenstringAuthorization: Bearer <token>
basicAuth{ username, password }Authorization: Basic <base64>
apiKeysRecord<string, string>Pasangan nama header dan nilai yang persis.

Kredensial disisipkan oleh eksekutor dan tidak pernah diekspos sebagai argumen alat yang diterima model.

ExecutionContext​

Konteks per panggilan yang diteruskan ke executeToolCall dan dikembalikan oleh ContextProvider:

KolomTipeDeskripsi
baseUrlOverridestringMengganti URL server spesifikasi untuk panggilan ini.
upstreamHeadersRecord<string, string>Header tambahan untuk layanan tujuan.
requestTimeoutMsnumberBatas waktu per panggilan, dengan minimum 1 detik.
securitySecurityContextKredensial per panggilan.
correlationIdstringMenghubungkan entri log dari satu pemanggilan.
protocolProtocolHintTransport yang memulai panggilan.
onLog(entry) => voidMenerima entri log permintaan/respons; tidak boleh melempar exception.
signalAbortSignalMembatalkan permintaan layanan tujuan yang sedang berlangsung.

Union literal dan fungsi pemeriksa​

UnionNilaiFungsi pemeriksa
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​

Diteruskan sebagai argumen ketiga ke buildMcpServer():

KolomTipeNilai bawaanDeskripsi
protocolProtocolHintundefinedPetunjuk protokol yang diumumkan.
namestring"openapi-mcp"Nama server yang diumumkan.
versionstring"1.1.0"Versi server yang diumumkan.
pageSizenumber100Jumlah maksimum entri per respons daftar, dibatasi hingga 500.
instructionsstringbawaanPetunjuk penggunaan yang disediakan melalui MCP instructions.

Opsi lapisan transport (AttachMcpRoutesOptions)​

Impor attachMcpRoutes dari @powerduck/openapi-mcp-server dan berikan objek opsi sebagai argumen kedua. Pembungkus lama attachSseRoutes() hanya menerima argumen posisi (app, specProvider, contextProvider, routeGuard?).

KolomTipeNilai bawaanDeskripsi
specProviderSpecProvider— (wajib)Menyediakan dokumen untuk sesi baru.
contextProviderContextProvider— (wajib)Menyediakan konteks layanan tujuan untuk setiap panggilan.
routeGuardRequestHandlerundefinedMiddleware yang diterapkan ke setiap rute MCP.
maxSessionsnumber64Batas jumlah sesi bersamaan.
sessionIdleMsnumber600000Batas waktu tidak aktif dalam milidetik; 0 menonaktifkannya.
allowedOriginsstring[]undefinedOrigin yang diizinkan; daftar yang tidak kosong mengaktifkan perlindungan DNS rebinding.
allowedHostsstring[]undefinedNilai header Host yang diizinkan.
enableLegacySsebooleantrueMemasang transport HTTP+SSE yang sudah usang.
onEvent(event: McpSessionEvent) => voidundefinedMenerima peristiwa siklus hidup; tidak boleh melempar exception.

Ini adalah opsi untuk attachMcpRoutes, bukan kolom tambahan ServerConfig. Server admin meneruskan pengaturan origin dan host, tetapi menggunakan batas sesi dan batas waktu tidak aktif bawaan transport. Gunakan fungsi transport publik secara langsung jika perlu menyesuaikan batas tersebut.

Lihat juga​