Passa al contenuto principale

Configurazione

L’oggetto centrale di configurazione è ServerConfig, accettato da startAdminServer(). I tipi di contesto associati vengono usati nell’esecuzione degli strumenti.

ServerConfig​

Solo port è obbligatorio.

CampoTipoValore predefinitoDescrizione
portnumber— (obbligatorio)Porta TCP di ascolto, intero da 0 a 65535.
hoststring"127.0.0.1"Interfaccia di ascolto; loopback per impostazione predefinita, per evitare esposizioni involontarie.
apiKeystringundefinedSegreto condiviso richiesto dall’API di amministrazione e dal trasporto HTTP quando è impostato.
specPathstringundefinedSpecifica caricata una sola volta all’avvio.
baseUrlOverridestringundefinedSovrascrive l’URL di base del servizio a monte derivato da servers[0].url.
upstreamHeadersRecord<string, string>undefinedHeader aggiunti a ogni richiesta al servizio a monte.
requestTimeoutMsnumberundefinedTimeout per richiesta al servizio a monte, in millisecondi.
persistStatebooleantrueConserva la specifica caricata tra i riavvii.
stateFilePathstringundefinedPercorso del file di stato persistente.
allowedOriginsstring[]undefinedOrigini CORS consentite; un elenco vuoto o omesso disabilita l’accesso tra origini diverse.
allowedHostsstring[]undefinedValori consentiti dell’header Host.
maxLogEntriesnumber200Numero massimo di voci di log conservate in memoria.
redactSensitiveHeadersbooleantrueOscura i valori degli header sensibili prima di registrarli.
redactHeaderNamesstring[]undefinedNomi di header aggiuntivi da oscurare oltre all’elenco integrato.
securitySecurityContextundefinedCredenziali inoltrate all’API a monte per ogni chiamata a uno strumento.

SecurityContext​

CampoTipoInviato come
bearerTokenstringAuthorization: Bearer <token>
basicAuth{ username, password }Authorization: Basic <base64>
apiKeysRecord<string, string>Coppie esatte di nome dell’header e valore.

Le credenziali vengono inserite dall’esecutore e non sono mai esposte al modello come argomenti degli strumenti.

ExecutionContext​

Contesto per chiamata passato a executeToolCall e restituito da un ContextProvider:

CampoTipoDescrizione
baseUrlOverridestringSovrascrive l’URL del server della specifica per questa chiamata.
upstreamHeadersRecord<string, string>Header aggiuntivi per il servizio a monte.
requestTimeoutMsnumberTimeout per chiamata, con un minimo di 1 secondo.
securitySecurityContextCredenziali per la singola chiamata.
correlationIdstringCollega le voci di log di una stessa invocazione.
protocolProtocolHintTrasporto che ha avviato la chiamata.
onLog(entry) => voidRiceve le voci di log di richieste e risposte; non deve mai generare eccezioni.
signalAbortSignalAnnulla una richiesta in corso al servizio a monte.

Unioni di letterali e funzioni di controllo​

UnioneValoriFunzione di controllo
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​

Passato come terzo argomento a buildMcpServer():

CampoTipoValore predefinitoDescrizione
protocolProtocolHintundefinedIndicazione del protocollo annunciata.
namestring"openapi-mcp"Nome del server annunciato.
versionstring"1.1.0"Versione del server annunciata.
pageSizenumber100Numero massimo di voci per risposta di elenco, fino a 500.
instructionsstringintegratoIndicazione d’uso esposta tramite MCP instructions.

Opzioni del livello di trasporto (AttachMcpRoutesOptions)​

Importa attachMcpRoutes da @powerduck/openapi-mcp-server e passa un oggetto di opzioni come secondo argomento. Il wrapper legacy attachSseRoutes() accetta solo gli argomenti posizionali (app, specProvider, contextProvider, routeGuard?).

CampoTipoValore predefinitoDescrizione
specProviderSpecProvider— (obbligatorio)Fornisce il documento per le nuove sessioni.
contextProviderContextProvider— (obbligatorio)Fornisce il contesto del servizio a monte per ogni chiamata.
routeGuardRequestHandlerundefinedMiddleware applicato a ogni rotta MCP.
maxSessionsnumber64Limite delle sessioni simultanee.
sessionIdleMsnumber600000Timeout di inattività in millisecondi; 0 lo disabilita.
allowedOriginsstring[]undefinedOrigini consentite; un elenco non vuoto abilita la protezione dal DNS rebinding.
allowedHostsstring[]undefinedValori consentiti dell’header Host.
enableLegacySsebooleantrueMonta il trasporto HTTP+SSE deprecato.
onEvent(event: McpSessionEvent) => voidundefinedRiceve gli eventi del ciclo di vita; non deve mai generare eccezioni.

Queste sono opzioni di attachMcpRoutes, non campi aggiuntivi di ServerConfig. Il server di amministrazione inoltra le impostazioni di origini e host, ma usa il limite delle sessioni e il timeout di inattività predefiniti del trasporto. Per modificarli, usa direttamente la funzione pubblica di trasporto.

Vedi anche​