Comment connecter Claude et Cursor directement à Unity via MCP
https://github.com/IvanMurzak/Unity-MCP/raw/main/docs/img/promo/ai-developer-banner.jpg
La plupart des développeurs ont l'habitude de traiter les réseaux de neurones comme un presse-papiers intelligent. Nous copions une erreur de la console dans un chat avec un modèle, recevons un script C# corrigé en retour, et le collons dans le projet. Mais quand vous devez faire plus que réécrire une classe—quand vous avez besoin de placer trente prefabs en cercle, de créer une douzaine de matériaux, ou d'exécuter rapidement des tests directement dans l'éditeur—ce ping-pong commence à prendre trop de temps.
Le dépôt Unity-MCP résout fondamentalement cette routine. Le projet connecte Unity aux assistants populaires via le Model Context Protocol. Il s'agit d'une norme ouverte d'Anthropic qui transforme un modèle de langage en exécuteur actif dans votre environnement de développement.
https://github.com/IvanMurzak/Unity-MCP/blob/main/docs/img/editor/ai-game-developer-windows.png?raw=true
Ce qu'Unity et MCP peuvent faire ensemble
Le dépôt comprend plus de 70 outils prêts à l'emploi, organisés en groupes logiques. L'assistant obtient accès à la structure des fichiers, à la hiérarchie des scènes, au compilateur Roslyn et même au profileur.
Vous pouvez écrire dans Cursor ou Claude Code une simple phrase : « Crée trois sphères empilées les unes sur les autres et applique-leur un matériau métallique doré. » Le modèle appellera les API nécessaires de lui-même, créera l'asset de matériau, configurera les paramètres du shader et ajoutera les objets à la scène.
https://github.com/IvanMurzak/Unity-MCP/blob/main/docs/img/editor/setup-skills.jpg?raw=true
Voici les principaux groupes d'opérations gérés par le plugin :
- Gestion des assets et des packages via UPM
- Manipulation des GameObjects, composants et prefabs
- Exécution de tests en EditMode et PlayMode avec retour du rapport dans le chat
- Exécution dynamique de code C# via Roslyn sans recompilation longue
- Capture d'écrans depuis la caméra ou la vue Scène pour évaluation visuelle des résultats
- Collecte des métriques de performance et de mémoire via le profileur intégré
Le support de la réflexion est particulièrement appréciable. Le réseau de neurones peut trouver des méthodes dans la base de code et les appeler avec les arguments requis, même si ces méthodes sont privées ou situées dans des DLL externes.
Comment fonctionnent le serveur et l'échange de données
L'architecture se compose de deux parties : un plugin C# pour Unity et un serveur MCP distinct qui s'exécute en tant que binaire ou conteneur Docker. Le client (par exemple, Claude Desktop ou VS Code) communique avec le serveur via le protocole stdio ou HTTP, et le serveur transmet les commandes à l'instance Unity en cours d'exécution.
https://github.com/IvanMurzak/Unity-MCP/raw/main/docs/img/ai-connector-window.gif
Démarrage rapide via CLI
Le projet inclut un package CLI pratique qui automatise l'installation du plugin et la génération de compétences pour les modèles :
npm install -g unity-mcp-cli
unity-mcp-cli install-plugin ./MyUnityProject
unity-mcp-cli open ./MyUnityProject
Si CLI n'est pas votre truc, vous pouvez télécharger un binaire prêt à l'emploi .unitypackage depuis les releases GitHub ou ajouter le package via OpenUPM.
Notez l'exigence stricte concernant les chemins. Le chemin vers votre projet Unity ne doit pas contenir d'espaces, sinon le serveur local refusera simplement de fonctionner.
Créer des outils personnalisés
Le plugin est facile à étendre. Pour donner au réseau de neurones accès à la logique spécifique de votre jeu, vous devez simplement écrire une méthode C# régulière et la marquer avec les attributs AiToolType et AiTool.
Tout appel à l'API Unity doit être encapsulé dans l'exécution du thread principal, car les requêtes entrantes du serveur arrivent sur un thread d'arrière-plan :
[AiToolType]
public class LevelBuildingTools
{
[AiTool("spawn-enemy-wave", Title = "Spawn Enemy Wave")]
[Description("Спавнит волну врагов заданного типа в указанных координатах")]
public string SpawnWave(
[Description("Имя префаба врага")] string enemyType,
[Description("Количество врагов")] int count
)
{
return MainThread.Instance.Run(() =>
{
EnemySpawner.Instance.Spawn(enemyType, count);
return $"Успешно заспавнено {count} врагов типа {enemyType}";
});
}
}
Les attributs Description jouent un rôle essentiel. Le modèle lit ces descriptions pour comprendre quand appeler l'outil et quels types de données passer en arguments.
Travailler en Runtime et dans les Builds
La plupart des intégrations similaires sont limitées au mode Editor. L'auteur de Unity-MCP est allé plus loin et a ajouté un client runtime. Vous pouvez intégrer le serveur directement dans un jeu compilé pour confier le contrôle des PNJ à un modèle de langage.
Voici à quoi ressemble l'initialisation du plugin runtime dans le code :
var mcpPlugin = UnityMcpPluginRuntime.Initialize(builder =>
{
builder.WithConfig(config =>
{
config.Host = "http://localhost:8080";
config.Token = "your-token";
});
builder.WithToolsFromAssembly(Assembly.GetExecutingAssembly());
})
.Build();
await mcpPlugin.Connect();
Le dépôt inclut un exemple de bot d'échecs où toute la logique de déplacement est déléguée à un LLM externe. Le modèle demande l'état actuel du plateau via un MCP Tool et renvoie le prochain coup.
Scénarios pratiques
En pratique, l'outil montre ses meilleurs résultats dans trois domaines :
Premièrement, la mise en page de routine des niveaux et de l'UI. Assembler une scène basique à partir d'une description textuelle est bien plus rapide que de placer les primitives manuellement.
Deuxièmement, les tests automatisés et la recherche de bugs. Le modèle peut exécuter des tests en EditMode, lire la stack trace d'un test échoué, ouvrir le script source, corriger l'erreur et réexécuter la vérification.
Troisièmement, le profilage. Les outils de mémoire et de rendu fournissent des chiffres de timing de frame précis directement dans le contexte du modèle, ce qui aide à localiser rapidement les goulots d'étranglement.
À qui le projet sera utile dès maintenant
Si vous travaillez sur des prototypes en solo ou sur un petit projet indie, Unity-MCP vous fera gagner beaucoup de temps sur les tâches routinières. La barrière à l'entrée est minimale : installez le CLI, choisissez votre éditeur de code préféré, et vous obtenez immédiatement un assistant fonctionnel avec accès à la scène.
Pour les équipes d'entreprise avec des dizaines de développeurs, la solution nécessitera un peu de soin. Vous devrez verrouiller les configurations via les paramètres du projet et surveiller les droits d'accès si le serveur est déployé à distance dans Docker. Le dépôt est activement développé, utilise la licence open Apache 2.0, et accueille les pull requests.
Projets similaires