Serveur MCP Unreal : Blueprints et configuration de Claude, étape par étape
Configurez un serveur MCP Unreal pour que Claude puisse créer des Blueprints, faire apparaître des acteurs et modifier des assets dans un éditeur Unreal Engine 5 en cours d’exécution. Choisissez un serveur, activez les plugins, rédigez la configuration de Claude Code ou Claude Desktop et corrigez les erreurs de connexion les plus courantes.
Vous tapez une phrase dans une fenêtre de chat, et un asset Blueprint apparaît dans votre Content Browser. C’est la promesse d’un serveur MCP Unreal : un petit programme pont qui permet à Claude de dialoguer avec un éditeur Unreal Engine en cours d’exécution via le Model Context Protocol. La promesse est réelle, mais la mise en place présente des pièges. Vous gérez deux plugins d’éditeur, un ou deux ports, un fichier JSON et quelques limites dont personne ne parle tant que vous ne les rencontrez pas. Cet article parcourt toute la chaîne, de l’activation des bons plugins à la rédaction de prompts qui produisent des Blueprints propres, et il ne cache rien de ce que Claude ne peut pas encore faire à l’intérieur d’un graphe de Blueprint.
Ce que fait un serveur MCP Unreal
Un serveur MCP est un programme qui expose des outils à un client d’IA. Claude voit un menu tel que « créer un Blueprint », « faire apparaître un acteur » ou « exécuter un script de l’éditeur », et il choisit dans ce menu chaque fois que votre prompt exige une action dans le moteur. Côté Unreal, le fonctionnement est simple, car l’éditeur dispose déjà de moyens d’accepter des commandes venues de l’extérieur. Le serveur traduit les appels d’outils de Claude en ces commandes et renvoie la réponse de l’éditeur.
Les trois éléments en jeu
Chaque configuration repose sur les mêmes trois éléments, quel que soit le serveur choisi :
Élément
Ce que c’est
Où il s’exécute
Client Claude
Claude Code ou Claude Desktop
Votre machine
Serveur MCP
Un programme pont en Python ou Node
Votre machine, lancé par le client
Éditeur Unreal
Plugin Python plus exécution à distance ou API Remote Control
Votre machine, avec un projet ouvert
Le client lance le serveur comme processus enfant et communique avec lui via l’entrée et la sortie standard. Le serveur atteint ensuite l’éditeur sur localhost. Rien ne quitte votre ordinateur, à part les prompts que vous envoyez à Claude lui-même.
Pourquoi ne pas coller du code à la place
Sans pont, vous demandez à Claude un script Python, vous le copiez, vous le collez dans la console Python de l’éditeur, vous lisez l’erreur et vous la recopiez dans le chat. Avec le serveur, Claude exécute lui-même le script, lit la réponse de l’éditeur et corrige ses propres erreurs. La boucle se referme sans que vous ayez à intervenir.
Claude voit le résultat réel, donc un mauvais chemin d’asset est corrigé sur-le-champ
Les tâches répétitives, comme renommer 200 assets, tiennent dans un seul prompt
Vos mains restent dans l’éditeur pendant que le chat s’occupe de la configuration
Les serveurs les plus aboutis vont bien au-delà des tâches sur les assets. La page d’UEMCP indique que Claude peut faire apparaître des acteurs, construire des matériaux, créer des Blueprints, gérer les assets, déplacer la caméra de la fenêtre d’affichage et prendre des captures d’écran, le tout depuis une conversation. Les captures d’écran comptent plus qu’il n’y paraît : lorsque votre client prend en charge les résultats sous forme d’image, Claude peut regarder la fenêtre d’affichage après une modification et vérifier le résultat par rapport à votre demande, au lieu de se fier au seul message de succès.
Choisir d’abord le bon serveur
Plusieurs serveurs open source existent, et ils atteignent le moteur par trois voies différentes. Choisissez selon votre façon de travailler, pas selon leur popularité.
Serveurs à exécution Python à distance
UEMCP en est l’exemple le plus clair. Il parle le protocole d’exécution Python à distance intégré au moteur, la même recherche multicast et le même canal de commandes TCP que celui livré avec Unreal. Sa page PyPI indique la prise en charge d’Unreal Engine 5.0 à 5.6 et de Python 3.10 ou plus récent, et il expose des outils Blueprint permettant de créer un Blueprint, d’ajouter un composant et de définir une propriété par défaut. Rien à compiler.
Serveurs à API Remote Control
unreal-engine-mcp emprunte la voie HTTP. Il combine l’API Remote Control avec du Python dans l’éditeur, écoute par défaut sur le port 30010, et sa page recense 162 outils, dont l’import d’assets, la création de niveaux, les graphes de matériaux, la génération de classes C++ et le packaging. Il indique des tests sur Unreal Engine 5.8. Là aussi, rien à compiler.
Serveurs à plugin C++
Certains projets livrent un plugin C++ qui ouvre un socket dans l’éditeur, et un serveur Python s’y connecte. Vous obtenez un accès plus profond, car le code du plugin atteint des éléments internes de l’éditeur que Python ne peut pas atteindre. Le prix à payer est une compilation par version du moteur. Le plugin UnrealMCP fonctionne ainsi : vous le déposez dans le dossier Plugins de votre projet, vous lancez son script d’installation et vous indiquez à Claude Desktop son script d’exécution.
Voie
Compilation nécessaire
Connexion
Idéal pour
Exécution Python à distance
Non
Recherche multicast UDP, puis TCP
Mise en place rapide, tâches sur les assets
API Remote Control
Non
HTTP sur le port 30010
Longues listes d’outils, construction de niveaux
Plugin C++
Oui
Socket TCP personnalisé
Accès profond à l’éditeur
💡 Choix rapide : Si vous n’avez jamais utilisé de serveur MCP, prenez la voie d’exécution Python à distance. Elle ne demande qu’une commande dans Claude Code et aucun compilateur. Passez à un plugin C++ seulement lorsque vous vous heurtez à un mur que Python ne peut pas franchir.
Préparer l’éditeur Unreal
Les deux voies sans compilation reposent sur des plugins livrés avec le moteur. Activez-les une fois par projet. Vérifiez d’abord que votre version du moteur figure dans la plage indiquée par le serveur : UEMCP annonce 5.0 à 5.6, tandis que le serveur Remote Control indique des tests sur la 5.8. Sur une version hors de cette liste, attendez-vous à ce que certains appels de l’API Python se comportent différemment.
💡 Utilisez un projet de test : Lancez votre première session sur un projet vierge, avec la même version du moteur. Un niveau jetable ne vous coûte rien, et les surprises restent à l’écart de vos assets réels.
Activer les plugins
Ouvrez Edit ▸ Plugins dans l’éditeur.
Recherchez Python Editor Script Plugin et cochez-le.
Pour la voie Remote Control, recherchez aussi Remote Control API et cochez-le.
Ce réglage se trouve dans la configuration de votre projet, vous ne le faites donc qu’une fois. Versionnez la modification de configuration dans votre gestionnaire de sources pour que vos coéquipiers en héritent.
Démarrer le serveur web
La voie Remote Control a besoin de son serveur HTTP en marche. Ouvrez la console dans le Journal de sortie (Output Log) et exécutez :
WebControl.StartServer
Le serveur répond sur le port 30010, sauf si vous l’avez modifié. Gardez l’éditeur ouvert et inactif pendant vos tests : les commandes s’exécutent à l’intérieur de l’éditeur, donc un éditeur occupé à compiler des shaders répond lentement. Le délai d’attente par défaut d’UEMCP est de 120 secondes par commande, ce qui est généreux sans être infini.
Connecter Claude à l’éditeur
Une fois l’éditeur prêt, enregistrez le serveur auprès de votre client Claude. Choisissez le client que vous utilisez déjà.
Claude Code en une seule commande
Pour la voie d’exécution Python à distance :
claude mcp add unreal -- uvx uemcp
Pour la voie Remote Control :
claude mcp add unreal-mcp -- python -m unreal_mcp.server
La première commande nécessite l’installation de uv, car uvx exécute le paquet sans installation manuelle. Exécutez claude mcp list pour vérifier que le serveur est bien enregistré, ou tapez /mcp dans une session pour voir son état de connexion.
Configuration JSON de Claude Desktop
Ouvrez Settings ▸ Developer ▸ Edit Config. Sous Windows, le fichier se trouve à %APPDATA%\Claude\claude_desktop_config.json. Ajoutez une entrée sous mcpServers :
Quittez complètement Claude Desktop, pas seulement la fenêtre, puis relancez-le.
💡 Surveillez les virgules : Une virgule finale ou une accolade manquante rend tout le fichier invalide, et le serveur n’apparaît jamais, sans message d’erreur. Collez le fichier dans un validateur JSON avant de redémarrer.
Tester avec un prompt simple
Ouvrez d’abord un projet dans l’éditeur, puis demandez :
Listez les acteurs du niveau actuel et dites-moi combien d’entre eux sont des lumières.
Si Claude répond avec des noms qui correspondent à votre World Outliner, la chaîne fonctionne. S’il dit ne pas avoir d’outils Unreal, le client n’a jamais chargé le serveur : vérifiez la configuration avant de toucher à l’éditeur.
Créer des Blueprints depuis le chat
Une fois la connexion stable, le travail utile commence. Un Blueprint est une classe, et créer une classe avec des composants et des valeurs par défaut est exactement le genre de tâche structurée que Claude gère bien via des appels d’outils.
Ce que Claude peut construire aujourd’hui
Avec les serveurs basés sur Python, les tâches fiables comprennent :
Créer une classe Blueprint à partir d’un parent tel qu’Actor, Pawn ou Character
Ajouter des composants : static meshes, collisions en boîte et en sphère, lumières ponctuelles
Définir les valeurs par défaut des variables, des meshes, des matériaux et des préréglages de collision
Faire apparaître des instances de Blueprint dans le niveau ouvert, à des positions exactes
Créer des matériaux et des data assets, puis les enregistrer
Voici un prompt qui exploite une bonne partie de cette liste :
Create an Actor Blueprint at /Game/Blueprints/BP_Pickup.
Add a StaticMesh component named PickupMesh using the engine Sphere mesh,
and a SphereCollision component named PickupTrigger with radius 120.
Set PickupMesh scale to 0.5 on every axis.
Then spawn three instances in the open level, 400 units apart along X.
Report the asset path and actor names when you are done.
Claude découpe ce prompt en plusieurs appels d’outils, vérifie chaque réponse et réessaie lorsque l’éditeur renvoie une erreur. Vous voyez les assets apparaître dans le Content Browser au fur et à mesure.
Une bonne première session comporte quatre étapes :
Demandez un rapport en lecture seule, par exemple « listez chaque Blueprint dans /Game/Blueprints ».
Demandez un nouveau Blueprint avec deux composants.
Ouvrez-le dans l’éditeur et comparez-le avec ce que Claude a annoncé.
Demandez une petite modification, comme un rayon de sphère plus grand, et vérifiez la valeur dans le panneau Details.
Si les quatre étapes fonctionnent, vous savez que le processus lit, écrit et vérifie. Ce n’est qu’à ce moment-là que vous devriez demander des tâches plus importantes, comme décorer une pièce entière d’accessoires.
Là où les graphes de Blueprint s’arrêtent
Voici la limite que la plupart des tutoriels passent sous silence. La documentation d’un serveur indique clairement que les graphes de nœuds de Blueprint ne peuvent pas être créés depuis Python. Les composants, les valeurs par défaut et les variables fonctionnent. Câbler un Event Graph nœud par nœud n’est pas fiable sur cette voie.
Le contournement consiste en une répartition claire du travail. Claude écrit la logique dans une classe parent C++, qu’il expose avec UFUNCTION(BlueprintCallable) et BlueprintImplementableEvent. Vous compilez. Ensuite, Claude crée un Blueprint enfant, définit ses valeurs par défaut et le place dans le niveau. Le graphe reste minuscule, car la logique réelle vit en C++.
Tâche
Voie Python uniquement
Avec une classe parent C++
Ajouter des composants
Fiable
Fiable
Définir les valeurs par défaut
Fiable
Fiable
Câbler les nœuds de l’Event Graph
Peu fiable
Appelle des fonctions C++ à la place
Logique réutilisable
Difficile à partager
Réside dans une seule classe
Les serveurs plus récents annoncent la lecture et la modification directes des graphes de Blueprint sur les versions récentes du moteur. Considérez cela comme prometteur et testez-le sur une copie de votre projet avant de le confier à un travail réel.
Des prompts qui fonctionnent dans Unreal
Le serveur se charge de la saisie. Votre prompt, lui, détermine toujours le résultat. Ces habitudes réduisent nettement le taux de reprise :
Nommez chaque asset et chaque chemin. « BP_Pickup dans /Game/Blueprints » vaut mieux que « un ramassable ».
Demandez un seul changement à la fois. Les petites étapes sont faciles à vérifier et faciles à annuler.
Terminez par une demande de rapport. « Listez ce que vous avez modifié » vous donne une liste de contrôle à comparer avec l’éditeur.
Indiquez votre version du moteur. Les noms de l’API Python changent d’une version à l’autre, donc écrivez « Unreal 5.6 » dès le début.
Retenez la sauvegarde. Demandez à Claude d’attendre avant d’enregistrer tous les assets, le temps que vous examiniez le résultat.
Versionnez d’abord. Utilisez Git avec LFS ou Perforce, et validez avant chaque session pour qu’un mauvais passage se défasse d’un seul retour en arrière.
Prompt vague
Prompt plus précis
« Faites une porte »
« Créez BP_Door dans /Game/Props avec un composant static mesh DoorMesh et un déclencheur en boîte de 200 unités de large. Indique le chemin. »
« Corrige mon éclairage »
« Liste chaque lumière du niveau avec son intensité et sa mobilité. Ne modifie encore rien. »
« Nettoie les assets »
« Liste les textures de /Game/Textures dont la taille dépasse 4096 pixels. Ne supprimez rien. »
💡 Modèle en quatre lignes : Objectif, chemin de l’asset, contraintes, ce qu’il faut rapporter. Utilisez-le à chaque fois et vos prompts resteront courts et précis.
Les longues sessions dérivent. Après 20 ou 30 appels d’outils, Claude peut perdre la trace des assets existants et commencer à deviner des chemins. Dans ce cas, ouvrez un nouveau chat et collez un bref résumé de l’état actuel : les dossiers utilisés, les noms des Blueprints et la règle de nommage. Un résumé de dix lignes vaut mieux qu’un historique de deux heures.
Corriger rapidement les problèmes de connexion
La plupart des échecs entrent dans quelques schémas :
Symptôme
Cause probable
Correction
Serveur absent dans Claude
JSON invalide, ou uvx et python absents du PATH
Valider le JSON, exécuter uvx --version, redémarrer le client
Aucune réponse HTTP
Serveur web non démarré
Exécuter WebControl.StartServer dans la console de l’éditeur
Commandes rejetées
L’exécution à distance est désactivée
Vérifier Enable Remote Execution et redémarrer l’éditeur
Délais dépassés
Éditeur occupé par des shaders ou un chargement de niveau
Attendre que l’éditeur soit inactif, puis réessayer
Port déjà utilisé
Une autre application occupe 30010
Modifier UE_MCP_PORT et le port Remote Control pour qu’ils correspondent
Éditeur introuvable
Un pare-feu ou un VPN bloque le multicast
Autoriser l’UDP sur 239.0.0.1:6766 ou suspendre le VPN
En cas d’échec, lisez d’abord le Journal de sortie (Output Log) de l’éditeur. Les erreurs Python des commandes distantes s’y affichent, et Claude a souvent besoin de ce texte exact pour corriger le problème. Si votre client n’a pas transmis l’erreur, collez-la vous-même dans le chat.
Une documentation de serveur renvoie aussi à bEnableRemotePythonExecution=True dans DefaultRemoteControl.ini lorsque l’exécution à distance reste bloquée. Consultez ce fichier si la liste ci-dessus ne résout pas le problème.
Sécuriser la connexion
La page d’UEMCP avertit elle-même que le protocole d’exécution à distance n’a aucune authentification. Quiconque peut atteindre le port peut exécuter du Python dans votre éditeur. Gardez la connexion sur localhost, n’exposez jamais les ports sur un Wi-Fi de bureau partagé, et ajoutez une règle de pare-feu si votre machine se trouve sur un réseau que vous ne contrôlez pas. Claude Code demande aussi une autorisation avant les appels d’outils : lisez attentivement toute demande d’exécution de Python arbitraire avant de l’approuver.
Essayer avec PicassoIA
Un projet Unreal a besoin de plus que des Blueprints. Il lui faut des spécifications de conception, des briefs de niveau et des références visuelles, et PicassoIA s’occupe de cette partie dans le navigateur.
Utiliser Claude Sonnet 5 sur PicassoIA
Planifiez d’abord le système sur PicassoIA, puis transmettez le résultat soigné à votre session Unreal. Voici la routine avec Claude Sonnet 5 :
Ouvrez la page de Claude Sonnet 5 sur PicassoIA.
Décrivez l’objectif en termes simples : « Un acteur ramassable qui tourne, joue un son et se détruit au contact. Unreal 5.6. »
Demandez une spécification numérotée listant les composants, les variables, les événements et les chemins d’assets.
Demandez de réécrire chaque ligne de la spécification comme un prompt autonome qui se termine par « rapportez ce que vous avez modifié ».
Collez ces prompts, un à la fois, dans votre session Claude Code connectée au serveur MCP Unreal.
Deux conseils de paramétrage : limitez la demande à un seul système par exécution, et indiquez la version du moteur dans la première phrase. Pour un système de gameplay plus ambitieux, essayez Claude Fable 5 ou Claude Opus 4.7, et pour des ébauches rapides de headers C++, Gemini 3.5 Flash est rapide.
Avant de demander à Claude de construire une cour, un intérieur de vaisseau ou une clairière en forêt, donnez à tout le monde la même image de l’ambiance visée. Les modèles d’image de PicassoIA comme Seedream 5 Pro, GPT Image 2 et Flux 2 Pro transforment une phrase en image de référence photoréaliste en quelques secondes. Ils produisent des images 2D, utilisez-les donc comme brief visuel pour l’éclairage, les matériaux et la décoration, puis demandez à Claude de construire le niveau en conséquence.
Choisissez une scène de votre projet Unreal actuel et rédigez-en une description d’un paragraphe. Ouvrez PicassoIA, générez trois images de référence à partir de ce paragraphe et gardez celle qui vous semble juste. Collez sa description dans votre prochain prompt Claude, et voyez à quel point la première passe est plus proche du résultat visé. Votre processus gagne en rapidité dès que les prompts et les images concordent.