Comment connecter des serveurs MCP à l'API Agents d'OpenAI en toute sécurité
OpenAI a détaillé les mécanismes d'intégration des serveurs MCP (Model Context Protocol, protocole standard de connexion d'outils aux IA) dans son API Agents (interface de programmation pour agents). Le guide précise les modes de connexion réseau et insiste sur l'isolation des clés d'accès vis-à-vis du code généré par le modèle.
Fil « Documentation OpenAI sur la connexion des serveurs MCP et la gestion des secrets »

La documentation de l'API Agents (interface de programmation pour déployer des agents) d'OpenAI clarifie les méthodes pour connecter un serveur MCP (Model Context Protocol, un standard ouvert permettant à l'IA d'interagir avec des outils externes). La connexion s'articule autour de deux modes de transport principaux : l'utilisation du protocole web HTTP ou le passage par stdio (standard input/output, l'utilisation des flux d'entrée et sortie standard d'un processus).
Trois configurations de connexion réseau
Le choix du transport dépend de l'emplacement de votre serveur d'outils. Trois options de raccordement sont proposées :
- HTTP depuis OpenAI (
connection_origin: "service") : configuration par défaut pour les serveurs HTTP accessibles publiquement sur Internet. - HTTP depuis l'environnement (
connection_origin: "environment") : utilisé pour joindre un serveur situé sur un réseau privé ou sur l'hôte local (localhost). - Processus
stdio: l'exécuteur lance directement un processus dans l'environnement de la session. Ce mode nécessite de fournir une commande (command) et un répertoire de travail absolu (cwd).
Exemple de configuration JSON pour l'enregistrement d'un serveur stdio exécutant un script Python :
{
"type": "mcp",
"server_label": "customer_lookup",
"transport": {
"type": "stdio",
"command": "/workspace/mcp-demo/bin/python",
"args": ["/workspace/lookup_mcp.py", "stdio"],
"cwd": "/workspace"
},
"required": true
}
Gestion des identifiants et transmission des secrets
Pour authentifier les requêtes HTTP, vous pouvez déclarer des jetons dans authorization ou configurer des en-têtes personnalisés (headers) lors de la création de la session. L'API Agents chiffre ces données et les masque dans l'objet de session retourné. Alternativement, pour les connexions initiées par OpenAI, les jetons peuvent être stockés dans un vault (coffre-fort numérique de clés) et liés via le champ vault_ids.
Pour les serveurs en stdio, les variables d'environnement sont listées dans transport.env_vars. Toutefois, OpenAI rappelle une règle de sécurité essentielle : dans un environnement auto-hébergé, le code exécuté par l'agent peut lire les variables d'environnement. Il est donc recommandé d'utiliser un proxy (serveur intermédiaire de confiance) pour injecter les secrets hors de portée du code généré par l'IA.
Contrôle de l'exécution et débogage
L'intégration propose des paramètres pour fiabiliser le comportement de l'agent. La propriété required: true interrompt immédiatement le tour de l'agent (turn, une étape de traitement) si le serveur MCP échoue à s'initialiser. Le filtre allowed_tools permet quant à lui de limiter la liste des outils que l'agent a le droit de découvrir et d'appeler.
En cas d'échec d'initialisation d'un serveur requis, les détails de l'erreur sont consignés dans la propriété agent.session.turn.failed. Pour les serveurs locaux en stdio, il convient également de contrôler les journaux d'exécution du processus sous-jacent.