Aller au contenu principal

Configuration

L’objet central de configuration est ServerConfig, accepté par startAdminServer(). Les types de contexte associés interviennent dans l’exécution des outils.

ServerConfig​

Seul port est obligatoire.

ChampTypeValeur par défautDescription
portnumber— (obligatoire)Port TCP d’écoute, entier de 0 à 65535.
hoststring"127.0.0.1"Interface d’écoute ; boucle locale par défaut pour éviter une exposition accidentelle.
apiKeystringundefinedSecret partagé exigé par l’API d’administration et le transport HTTP lorsqu’il est défini.
specPathstringundefinedSpécification chargée une seule fois au démarrage.
baseUrlOverridestringundefinedRemplace l’URL de base amont issue de servers[0].url.
upstreamHeadersRecord<string, string>undefinedEn-têtes ajoutés à chaque requête amont.
requestTimeoutMsnumberundefinedDélai maximal par requête amont, en millisecondes.
persistStatebooleantrueConserve la spécification chargée entre les redémarrages.
stateFilePathstringundefinedEmplacement du fichier d’état persistant.
allowedOriginsstring[]undefinedOrigines CORS autorisées ; une liste vide ou absente désactive l’accès interorigine.
allowedHostsstring[]undefinedValeurs autorisées de l’en-tête Host.
maxLogEntriesnumber200Nombre maximal d’entrées de journal conservées en mémoire.
redactSensitiveHeadersbooleantrueMasque les valeurs des en-têtes sensibles avant journalisation.
redactHeaderNamesstring[]undefinedNoms d’en-têtes supplémentaires à masquer, en plus de la liste intégrée.
securitySecurityContextundefinedIdentifiants transmis à l’API amont pour chaque appel d’outil.

SecurityContext​

ChampTypeEnvoyé sous la forme
bearerTokenstringAuthorization: Bearer <token>
basicAuth{ username, password }Authorization: Basic <base64>
apiKeysRecord<string, string>Paires exactes nom d’en-tête/valeur.

Les identifiants sont injectés par l’exécuteur et ne sont jamais exposés au modèle comme arguments d’outil.

ExecutionContext​

Contexte par appel transmis à executeToolCall et renvoyé par un ContextProvider :

ChampTypeDescription
baseUrlOverridestringRemplace l’URL du serveur de la spécification pour cet appel.
upstreamHeadersRecord<string, string>En-têtes amont supplémentaires.
requestTimeoutMsnumberDélai maximal par appel, avec un minimum de 1 seconde.
securitySecurityContextIdentifiants propres à l’appel.
correlationIdstringRelie les entrées de journal d’une même invocation.
protocolProtocolHintTransport à l’origine de l’appel.
onLog(entry) => voidReçoit les entrées de journal des requêtes et réponses ; ne doit jamais lever d’exception.
signalAbortSignalAnnule une requête amont en cours.

Unions littérales et fonctions de garde​

UnionValeursFonction de garde
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​

Transmis comme troisième argument à buildMcpServer() :

ChampTypeValeur par défautDescription
protocolProtocolHintundefinedIndication de protocole annoncée.
namestring"openapi-mcp"Nom du serveur annoncé.
versionstring"1.1.0"Version du serveur annoncée.
pageSizenumber100Nombre maximal d’entrées par réponse de liste, plafonné à 500.
instructionsstringintégréConseil d’utilisation exposé dans le champ MCP instructions.

Options de la couche de transport (AttachMcpRoutesOptions)​

Importez attachMcpRoutes depuis @powerduck/openapi-mcp-server et passez un objet d’options en deuxième argument. L’ancien wrapper attachSseRoutes() n’accepte que les arguments positionnels (app, specProvider, contextProvider, routeGuard?).

ChampTypeValeur par défautDescription
specProviderSpecProvider— (obligatoire)Fournit le document pour les nouvelles sessions.
contextProviderContextProvider— (obligatoire)Fournit le contexte amont pour chaque appel.
routeGuardRequestHandlerundefinedMiddleware appliqué à chaque route MCP.
maxSessionsnumber64Limite de sessions simultanées.
sessionIdleMsnumber600000Délai d’inactivité en millisecondes ; 0 le désactive.
allowedOriginsstring[]undefinedOrigines autorisées ; une liste non vide active la protection contre le DNS rebinding.
allowedHostsstring[]undefinedValeurs autorisées de l’en-tête Host.
enableLegacySsebooleantrueMonte le transport HTTP+SSE obsolète.
onEvent(event: McpSessionEvent) => voidundefinedReçoit les événements du cycle de vie ; ne doit jamais lever d’exception.

Ces options appartiennent à attachMcpRoutes et ne sont pas des champs supplémentaires de ServerConfig. Le serveur d’administration transmet ses réglages d’origines et d’hôtes, mais conserve les limites de sessions et le délai d’inactivité par défaut du transport. Pour modifier ces limites, utilisez directement la fonction publique de transport.

Voir aussi​