[{"data":1,"prerenderedAt":1175},["ShallowReactive",2],{"post-how-to-use-freecad-opencode-mcp-fr":3,"related-posts-how-to-use-freecad-opencode-mcp-fr":1165,"related-categories-how-to-use-freecad-opencode-mcp-fr":1174},{"id":4,"title":5,"author":6,"authorImageUrl":7,"authorUrl":8,"body":9,"categorySlug":1132,"categoryText":1133,"dateModified":1134,"datePublished":1134,"description":1135,"extension":1136,"faqs":1137,"image":1153,"language":1154,"meta":1155,"navigation":1156,"path":1157,"seo":1158,"sitemap":1159,"stem":1160,"tags":1161,"__hash__":1164},"blog\u002Ffr\u002Fblog\u002Fhow-to-use-freecad-opencode-mcp.md","Comment utiliser FreeCAD avec OpenCode et MCP","Bruma","\u002Fimages\u002Fauthors\u002Fbruma.jpg","https:\u002F\u002Fbrumaombra.com",{"type":10,"value":11,"toc":1109},"minimark",[12,17,32,35,38,41,44,55,58,61,65,68,72,83,88,91,97,104,109,112,115,118,122,128,133,141,144,147,150,153,156,160,175,184,187,191,194,196,200,203,206,232,238,252,255,263,266,268,272,284,287,293,303,310,316,319,325,328,333,340,343,347,360,366,381,391,393,397,400,406,412,436,439,458,469,481,487,505,507,511,522,525,531,534,548,709,723,725,729,745,748,757,782,791,797,800,808,810,814,817,823,837,844,848,851,853,857,860,863,869,888,892,895,901,912,915,921,924,926,930,943,946,952,955,961,964,971,973,977,980,983,1000,1010,1012,1016,1023,1026,1029,1032,1034,1038,1055,1058,1061,1074,1077,1083,1096,1102,1105],[13,14,16],"h2",{"id":15},"introduction","Introduction",[18,19,20,31],"p",{},[21,22,27],"a",{"href":23,"rel":24,"target":26},"https:\u002F\u002Fwww.freecad.org\u002F",[25],"nofollow","_blank",[28,29,30],"strong",{},"FreeCAD"," est sans aucun doute l'une des applications de CAO paramétrique les plus puissantes qui existent. Pourtant, construire un modèle à partir de zéro peut parfois demander beaucoup de travail répétitif, de recherches de fonctionnalités en ligne et une tonne d'annulations... vraiment beaucoup !",[18,33,34],{},"Vous sélectionnez un atelier, créez un document, ajoutez des esquisses, appliquez des contraintes, créez des fonctions, inspectez l'arborescence et répétez le processus jusqu'à obtenir le bon résultat. Un peu pénible, non ?",[18,36,37],{},"Mais que diriez-vous de pouvoir décrire la pièce que vous souhaitez construire et de laisser un agent de programmation vous aider à la créer dans FreeCAD, comme vous le feriez avec du code ?",[18,39,40],{},"Ce serait vraiment génial, vous ne trouvez pas ?",[18,42,43],{},"Vous êtes donc au bon endroit, car c'est exactement ce que nous allons expliquer dans ce guide.",[18,45,46,47,54],{},"C'est l'idée derrière le ",[21,48,51],{"href":49,"rel":50,"target":26},"https:\u002F\u002Fgithub.com\u002Fneka-nat\u002Ffreecad-mcp",[25],[28,52,53],{},"serveur MCP de FreeCAD",", un projet open source qui vous permet de connecter FreeCAD à un client d'IA compatible avec MCP afin de le contrôler directement à l'aide d'instructions en langage naturel !",[18,56,57],{},"L'objectif n'est pas de remplacer les connaissances en CAO ou d'accepter aveuglément la géométrie générée, mais de rendre l'interaction entre l'être humain et la machine plus conversationnelle et programmable. Nous pouvons demander à l'agent de créer un document, de générer une pièce simple, d'inspecter l'arborescence des objets, de modifier une dimension ou d'expliquer pourquoi une fonction a échoué, exactement comme nous le ferions avec une autre personne !",[59,60],"hr",{},[13,62,64],{"id":63},"ce-quil-nous-faut","Ce qu'il nous faut",[18,66,67],{},"Commençons par dresser la liste de tout ce dont nous avons besoin pour ce petit projet :",[69,70],"blog-list",{":items":71},"[\"Une installation récente de FreeCAD.\",\"Python et uv installés afin qu'OpenCode puisse lancer le serveur MCP.\",\"OpenCode installé et configuré avec un fournisseur d'IA.\",\"Le dépôt FreeCAD MCP de neka-nat.\",\"Une compréhension de base de l'interface FreeCAD et de la modélisation paramétrique.\"]",[18,73,74,75,82],{},"La configuration la plus simple consiste à exécuter FreeCAD et ",[21,76,79],{"href":77,"rel":78,"target":26},"https:\u002F\u002Fopencode.ai\u002F",[25],[28,80,81],{},"OpenCode"," sur le même ordinateur. Ainsi, le serveur MCP peut utiliser la connexion locale par défaut et nous n'avons pas besoin d'exposer FreeCAD sur le réseau ni de modifier des configurations complexes.",[84,85,87],"h3",{"id":86},"pourquoi-freecad","Pourquoi FreeCAD ?",[18,89,90],{},"D'accord, mais pourquoi FreeCAD plutôt qu'une autre solution de CAO 3D populaire ?",[18,92,93,94,96],{},"J'ai choisi ",[28,95,30],{}," tout simplement parce qu'il est entièrement open source et gratuit, sans règles de licence obscures ni politiques étranges liées au nombre d'employés d'une entreprise. Vous voulez créer un projet 3D pour vous, votre famille ou une entreprise d'un million d'employés ? Aucun problème, aucune licence n'est nécessaire !",[18,98,99],{},[100,101],"img",{"alt":102,"src":103},"Fonctionnalités de modélisation 3D paramétrique open source de FreeCAD","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Ffreecad-infos.png",[18,105,106,108],{},[28,107,30],{}," nous offre tous les outils nécessaires pour créer des pièces précises, des assemblages, des dessins techniques et bien plus, tout en conservant la possibilité de modifier les dimensions, les esquisses et les relations.",[18,110,111],{},"Contrairement à un simple programme de dessin, FreeCAD se souvient de la manière dont le modèle a été construit. Si nous modifions la longueur d'une esquisse, la position d'un trou ou l'épaisseur d'une fonction, le reste du modèle peut être mis à jour en fonction de ces relations au lieu de nous obliger à tout redessiner manuellement !",[18,113,114],{},"FreeCAD organise ses outils en différents ateliers. Nous pouvons donc choisir uniquement l'ensemble de fonctions qui correspond à la tâche à réaliser, ce qui rend le processus de création beaucoup plus simple et structuré.",[18,116,117],{},"Une autre fonctionnalité très intéressante de FreeCAD est que son comportement peut être étendu à l'aide d'extensions et de scripts. C'est donc un choix parfait pour expérimenter avec un agent de programmation utilisant l'IA tout en gardant le contrôle du design et des fichiers que nous créons.",[84,119,121],{"id":120},"pourquoi-opencode","Pourquoi OpenCode ?",[18,123,124,125,127],{},"Pour la partie agent, j'ai choisi ",[28,126,81],{},".",[18,129,130,132],{},[28,131,81],{}," est un agent de programmation très populaire et, comme il est open source, il s'accorde parfaitement avec FreeCAD.",[18,134,135],{},[100,136],{"alt":137,"src":138,"height":139,"width":140},"Fonctionnalités de l'agent de programmation OpenCode basé sur l'IA","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Fopencode-infos.png",941,1672,[18,142,143],{},"Avec les modèles disponibles, il peut comprendre les demandes en langage naturel, planifier une suite d'actions et utiliser des outils connectés pour accomplir une tâche. Vous pouvez utiliser OpenCode avec votre LLM ou votre abonnement d'IA préféré, comme GitHub Copilot, ou le connecter à une plateforme externe basée sur une API comme OpenRouter.",[18,145,146],{},"Au lieu de considérer le terminal comme un endroit où nous devons saisir chaque commande à la perfection, nous pouvons décrire ce que nous voulons accomplir et laisser l'agent nous aider à choisir les étapes suivantes.",[18,148,149],{},"Dans notre cas précis, OpenCode nous offre une façon conversationnelle de demander à FreeCAD de créer des documents, de construire des modèles, d'inspecter des objets et d'expliquer clairement comment ces tâches ont été réalisées.",[18,151,152],{},"Nous pouvons décrire le résultat souhaité en termes simples, examiner le travail de l'agent et demander une modification précise lorsque quelque chose doit être corrigé. OpenCode peut également nous transmettre les réponses des outils, ce qui nous permet de lui demander de vérifier l'arborescence du document, de contrôler les dimensions ou de prendre une capture d'écran avant de prendre une nouvelle décision.",[18,154,155],{},"Comme il est open source, nous pouvons examiner son projet, le configurer localement et le connecter à des outils tels que le serveur MCP de FreeCAD au lieu de dépendre uniquement d'un flux de travail fermé et immuable.",[84,157,159],{"id":158},"pourquoi-utiliser-un-serveur-mcp","Pourquoi utiliser un serveur MCP ?",[18,161,162,163,170,171,174],{},"Le ",[21,164,167],{"href":165,"rel":166,"target":26},"https:\u002F\u002Fmodelcontextprotocol.io\u002F",[25],[28,168,169],{},"Model Context Protocol",", ou ",[28,172,173],{},"MCP"," en abrégé, offre à un client d'IA une manière standard de découvrir et d'appeler des outils externes capables de fournir du contexte aux appels LLM.",[18,176,177,178,180,181,183],{},"Au lieu de contrôler FreeCAD à l'aide de clics à l'écran et de mouvements de souris, ",[28,179,81],{}," peut appeler directement les outils exposés par le ",[28,182,53],{},", ce qui lui permet de contrôler le logiciel de CAO via une API adaptée à l'IA.",[18,185,186],{},"Le projet FreeCAD MCP que nous allons utiliser dans ce guide fournit des outils pour des tâches telles que les suivantes :",[69,188],{":items":189,"variant":190},"[\"Créer et ouvrir des documents FreeCAD.\",\"Créer, modifier et supprimer des objets FreeCAD.\",\"Exécuter du code Python dans FreeCAD.\",\"Inspecter les objets et l'arborescence du document.\",\"Demander une capture d'écran de la vue actuelle.\",\"Insérer des pièces depuis la bibliothèque de pièces FreeCAD.\"]","circle",[18,192,193],{},"L'agent dispose ainsi d'une boucle de rétroaction très utile. Il peut effectuer une modification, inspecter le résultat et adapter l'action suivante au lieu de simplement écrire du code que nous devrions coller manuellement. Plutôt pratique, non ?",[59,195],{},[13,197,199],{"id":198},"_1-télécharger-freecad-mcp","1. Télécharger FreeCAD MCP",[18,201,202],{},"D'accord, la première chose à faire est de télécharger le dépôt officiel créé par l'incroyable neka-nat.",[18,204,205],{},"Pour cela, ouvrez un terminal, placez-vous dans le dossier de votre choix et exécutez la commande suivante :",[207,208,213],"pre",{"className":209,"code":210,"language":211,"meta":212,"style":212},"language-bash shiki shiki-themes github-light github-dark","git clone https:\u002F\u002Fgithub.com\u002Fneka-nat\u002Ffreecad-mcp.git\n","bash","",[214,215,216],"code",{"__ignoreMap":212},[217,218,221,225,229],"span",{"class":219,"line":220},"line",1,[217,222,224],{"class":223},"sScJk","git",[217,226,228],{"class":227},"sZZnC"," clone",[217,230,231],{"class":227}," https:\u002F\u002Fgithub.com\u002Fneka-nat\u002Ffreecad-mcp.git\n",[18,233,234],{},[100,235],{"alt":236,"src":237},"Dépôt FreeCAD MCP cloné dans le dossier Documents","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Ffreecad-mcp-download.png",[18,239,240,241,244,245,248,249,251],{},"Le dépôt contient à la fois le ",[28,242,243],{},"serveur MCP Python"," et l'",[28,246,247],{},"extension FreeCAD",". Conservez-le dans un emplacement stable, car ",[28,250,81],{}," utilisera son chemin lorsqu'il démarrera le serveur.",[18,253,254],{},"Sous Windows, je vous conseille de le conserver dans votre dossier Documents. Vous pouvez par exemple utiliser :",[207,256,261],{"className":257,"code":259,"language":260,"meta":212},[258],"language-text","C:\\Users\\YourName\\Documents\\freecad-mcp\n","text",[214,262,259],{"__ignoreMap":212},[18,264,265],{},"Si vous utilisez un autre emplacement, ne vous inquiétez pas. Nous devrons simplement remplacer le chemin d'exemple dans la configuration OpenCode plus loin dans ce guide.",[59,267],{},[13,269,271],{"id":270},"_2-installer-lextension-freecad","2. Installer l'extension FreeCAD",[18,273,162,274,277,278,280,281,127],{},[28,275,276],{},"serveur MCP"," a également besoin d'une extension installée dans ",[28,279,30],{},". Le dépôt officiel contient tout ce dont nous avons besoin dans le répertoire ",[214,282,283],{},"addon\u002FFreeCADMCP",[18,285,286],{},"Sous Windows, FreeCAD 1.1 utilise le répertoire d'extension spécifique à la version suivant :",[207,288,291],{"className":289,"code":290,"language":260,"meta":212},[258],"C:\\Users\\YourName\\AppData\\Roaming\\FreeCAD\\v1-1\\Mod\\FreeCADMCP\n",[214,292,290],{"__ignoreMap":212},[18,294,295,296,299,300,127],{},"Pour installer l'extension, ouvrez le dépôt cloné et copiez le dossier ",[28,297,298],{},"FreeCADMCP"," depuis ",[214,301,302],{},"addon",[18,304,305,306,309],{},"Collez-le ensuite dans le dossier FreeCAD suivant. Créez le dossier ",[214,307,308],{},"Mod"," s'il n'existe pas encore :",[207,311,314],{"className":312,"code":313,"language":260,"meta":212},[258],"C:\\Users\\YourName\\AppData\\Roaming\\FreeCAD\\v1-1\\Mod\n",[214,315,313],{"__ignoreMap":212},[18,317,318],{},"En résumé, copiez le dossier suivant :",[207,320,323],{"className":321,"code":322,"language":260,"meta":212},[258],"C:\\Users\\YourName\\Documents\\freecad-mcp\\addon\\FreeCADMCP\n",[214,324,322],{"__ignoreMap":212},[18,326,327],{},"dans ce dossier :",[207,329,331],{"className":330,"code":313,"language":260,"meta":212},[258],[214,332,313],{"__ignoreMap":212},[18,334,335,336,339],{},"Les anciennes versions de FreeCAD utilisent peut-être le dossier ",[214,337,338],{},"C:\\Users\\YourName\\AppData\\Roaming\\FreeCAD\\Mod"," pour les extensions. Utilisez le répertoire correspondant au dossier spécifique à la version créé par votre installation de FreeCAD.",[18,341,342],{},"Après avoir copié l'extension, redémarrez FreeCAD s'il était déjà ouvert. Le dépôt documente également les emplacements des extensions pour Linux et macOS si vous utilisez un autre système d'exploitation.",[84,344,346],{"id":345},"sélectionner-latelier-mcp-addon","Sélectionner l'atelier MCP Addon",[18,348,349,350,352,353,356,357,127],{},"Après avoir redémarré ",[28,351,30],{},", ouvrez le sélecteur d'ateliers et choisissez ",[28,354,355],{},"MCP Addon",". Vous devriez maintenant voir la barre d'outils ou le menu ",[28,358,359],{},"FreeCAD MCP",[18,361,362],{},[100,363],{"alt":364,"src":365},"Atelier FreeCAD MCP et contrôles du serveur RPC","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Ffreecad-mcp-addon.png",[18,367,368,369,372,373,375,376,378,379,127],{},"Cliquez sur ",[28,370,371],{},"Start RPC Server"," pour démarrer le pont local. Le ",[28,374,276],{}," lancé par ",[28,377,81],{}," utilisera ce pont pour communiquer avec ",[28,380,30],{},[18,382,383,384,386,387,390],{},"Le serveur RPC doit normalement être démarré à chaque ouverture de FreeCAD. Si vous souhaitez le démarrer automatiquement, ouvrez le menu ",[28,385,359],{}," et activez ",[28,388,389],{},"Auto-Start Server",". Le réglage est enregistré par l'extension et reste actif d'une session à l'autre.",[59,392],{},[13,394,396],{"id":395},"_3-installer-opencode","3. Installer OpenCode",[18,398,399],{},"L'étape suivante consiste à installer OpenCode.",[18,401,402],{},[100,403],{"alt":404,"src":405},"Page d'installation d'OpenCode","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Fopencode-website.jpg",[18,407,408,409,411],{},"Nous pouvons installer ",[28,410,81],{}," avec l'installateur officiel et la commande Bash suivante :",[207,413,415],{"className":209,"code":414,"language":211,"meta":212,"style":212},"curl -fsSL https:\u002F\u002Fopencode.ai\u002Finstall | bash\n",[214,416,417],{"__ignoreMap":212},[217,418,419,422,426,429,433],{"class":219,"line":220},[217,420,421],{"class":223},"curl",[217,423,425],{"class":424},"sj4cs"," -fsSL",[217,427,428],{"class":227}," https:\u002F\u002Fopencode.ai\u002Finstall",[217,430,432],{"class":431},"szBVR"," |",[217,434,435],{"class":223}," bash\n",[18,437,438],{},"Si, comme moi, vous préférez utiliser npm, vous pouvez utiliser la commande suivante à la place :",[207,440,442],{"className":209,"code":441,"language":211,"meta":212,"style":212},"npm i -g opencode-ai\n",[214,443,444],{"__ignoreMap":212},[217,445,446,449,452,455],{"class":219,"line":220},[217,447,448],{"class":223},"npm",[217,450,451],{"class":227}," i",[217,453,454],{"class":424}," -g",[217,456,457],{"class":227}," opencode-ai\n",[18,459,460,461,464,465,468],{},"Une fois l'installation terminée, ouvrez un nouveau terminal afin que la commande ",[214,462,463],{},"opencode"," soit disponible dans votre ",[214,466,467],{},"PATH",". Vérifions qu'elle fonctionne :",[207,470,472],{"className":209,"code":471,"language":211,"meta":212,"style":212},"opencode --version\n",[214,473,474],{"__ignoreMap":212},[217,475,476,478],{"class":219,"line":220},[217,477,463],{"class":223},[217,479,480],{"class":424}," --version\n",[18,482,483],{},[100,484],{"alt":485,"src":486},"Sortie de la commande de version OpenCode","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Fopencode-version.png",[18,488,489,490,493,494,496,497,504],{},"Vous devrez également configurer un ",[28,491,492],{},"fournisseur d'IA"," avant qu'",[28,495,81],{}," puisse agir comme agent de programmation. S'il s'agit de votre première installation d'OpenCode, consultez la ",[21,498,501],{"href":499,"rel":500,"target":26},"https:\u002F\u002Fopencode.ai\u002Fdocs\u002F",[25],[28,502,503],{},"documentation OpenCode"," pour configurer le fournisseur.",[59,506],{},[13,508,510],{"id":509},"_4-configurer-opencode","4. Configurer OpenCode",[18,512,513,514,517,518,521],{},"OpenCode lit la configuration de son projet dans un fichier ",[214,515,516],{},"opencode.json"," ou ",[214,519,520],{},"opencode.jsonc",". Nous pouvons placer ce fichier à la racine d'un projet ou utiliser la configuration globale d'OpenCode si nous voulons que FreeCAD soit disponible partout.",[18,523,524],{},"Sous Windows, le fichier de configuration globale se trouve généralement ici :",[207,526,529],{"className":527,"code":528,"language":260,"meta":212},[258],"C:\\Users\\YourName\\.config\\opencode\\opencode.json\n",[214,530,528],{"__ignoreMap":212},[18,532,533],{},"Si le répertoire ou le fichier n'existe pas encore, créez-le avant d'ajouter la configuration.",[18,535,536,537,540,541,543,544,547],{},"Créez ou modifiez maintenant la ",[28,538,539],{},"configuration OpenCode"," et ajoutez le ",[28,542,53],{}," sous la clé ",[214,545,546],{},"mcp",", comme indiqué ci-dessous :",[207,549,553],{"className":550,"code":551,"language":552,"meta":212,"style":212},"language-json shiki shiki-themes github-light github-dark","{\n    \"$schema\": \"https:\u002F\u002Fopencode.ai\u002Fconfig.json\",\n    \"mcp\": {\n        \"freecad\": {\n            \"type\": \"local\",\n            \"command\": [\n                \"uv\",\n                \"--directory\",\n                \"C:\\\\Users\\\\YourName\\\\Documents\\\\freecad-mcp\",\n                \"run\",\n                \"freecad-mcp\"\n            ],\n            \"enabled\": true\n        }\n    }\n}\n","json",[214,554,555,561,576,585,593,606,615,623,631,660,668,674,680,691,697,703],{"__ignoreMap":212},[217,556,557],{"class":219,"line":220},[217,558,560],{"class":559},"sVt8B","{\n",[217,562,564,567,570,573],{"class":219,"line":563},2,[217,565,566],{"class":424},"    \"$schema\"",[217,568,569],{"class":559},": ",[217,571,572],{"class":227},"\"https:\u002F\u002Fopencode.ai\u002Fconfig.json\"",[217,574,575],{"class":559},",\n",[217,577,579,582],{"class":219,"line":578},3,[217,580,581],{"class":424},"    \"mcp\"",[217,583,584],{"class":559},": {\n",[217,586,588,591],{"class":219,"line":587},4,[217,589,590],{"class":424},"        \"freecad\"",[217,592,584],{"class":559},[217,594,596,599,601,604],{"class":219,"line":595},5,[217,597,598],{"class":424},"            \"type\"",[217,600,569],{"class":559},[217,602,603],{"class":227},"\"local\"",[217,605,575],{"class":559},[217,607,609,612],{"class":219,"line":608},6,[217,610,611],{"class":424},"            \"command\"",[217,613,614],{"class":559},": [\n",[217,616,618,621],{"class":219,"line":617},7,[217,619,620],{"class":227},"                \"uv\"",[217,622,575],{"class":559},[217,624,626,629],{"class":219,"line":625},8,[217,627,628],{"class":227},"                \"--directory\"",[217,630,575],{"class":559},[217,632,634,637,640,643,645,648,650,653,655,658],{"class":219,"line":633},9,[217,635,636],{"class":227},"                \"C:",[217,638,639],{"class":424},"\\\\",[217,641,642],{"class":227},"Users",[217,644,639],{"class":424},[217,646,647],{"class":227},"YourName",[217,649,639],{"class":424},[217,651,652],{"class":227},"Documents",[217,654,639],{"class":424},[217,656,657],{"class":227},"freecad-mcp\"",[217,659,575],{"class":559},[217,661,663,666],{"class":219,"line":662},10,[217,664,665],{"class":227},"                \"run\"",[217,667,575],{"class":559},[217,669,671],{"class":219,"line":670},11,[217,672,673],{"class":227},"                \"freecad-mcp\"\n",[217,675,677],{"class":219,"line":676},12,[217,678,679],{"class":559},"            ],\n",[217,681,683,686,688],{"class":219,"line":682},13,[217,684,685],{"class":424},"            \"enabled\"",[217,687,569],{"class":559},[217,689,690],{"class":424},"true\n",[217,692,694],{"class":219,"line":693},14,[217,695,696],{"class":559},"        }\n",[217,698,700],{"class":219,"line":699},15,[217,701,702],{"class":559},"    }\n",[217,704,706],{"class":219,"line":705},16,[217,707,708],{"class":559},"}\n",[18,710,711,712,715,716,719,720,722],{},"Remplacez ",[214,713,714],{},"C:\\\\Users\\\\YourName\\\\Documents\\\\freecad-mcp"," par le chemin réel de votre copie. Les chemins JSON utilisent des barres obliques inverses échappées. Un chemin Windows tel que ",[214,717,718],{},"C:\\Users\\YourName\\Documents\\freecad-mcp"," doit donc être écrit ",[214,721,714],{}," dans le fichier JSON.",[59,724],{},[13,726,728],{"id":727},"_5-démarrer-opencode","5. Démarrer OpenCode",[18,730,731,732,734,735,737,738,740,741,744],{},"Avant de lancer ",[28,733,81],{},", vérifions que ",[28,736,30],{}," est ouvert, que l'atelier ",[28,739,355],{}," est sélectionné et que le ",[28,742,743],{},"serveur RPC"," fonctionne.",[18,746,747],{},"Si tout semble correct, démarrez OpenCode depuis le répertoire qui contient la configuration :",[207,749,751],{"className":209,"code":750,"language":211,"meta":212,"style":212},"opencode\n",[214,752,753],{"__ignoreMap":212},[217,754,755],{"class":219,"line":220},[217,756,750],{"class":223},[18,758,759,761,762,764,765,768,769,771,772,775,776,778,779,127],{},[28,760,81],{}," devrait détecter le ",[28,763,276],{}," ",[214,766,767],{},"freecad"," au démarrage. Si le serveur n'apparaît pas, vérifiez le chemin dans ",[214,770,516],{},", confirmez que ",[214,773,774],{},"uv"," est disponible dans votre ",[214,777,467],{}," et consultez le ",[28,780,781],{},"statut du serveur MCP OpenCode",[18,783,784,785,787,788,790],{},"Nous pouvons également demander à ",[28,786,81],{}," s'il peut accéder au ",[28,789,359],{}," avec une instruction simple :",[207,792,795],{"className":793,"code":794,"language":260,"meta":212},[258],"Do you have access to the FreeCAD MCP?\n",[214,796,794],{"__ignoreMap":212},[18,798,799],{},"Ne commencez pas par un projet de CAO complexe. Un petit test de connexion permet de déterminer beaucoup plus facilement si un problème ultérieur vient d'OpenCode, du serveur MCP ou de FreeCAD lui-même.",[18,801,802,803,805,806,127],{},"Si la réponse est positive, félicitations ! ",[28,804,81],{}," est maintenant connecté au ",[28,807,359],{},[59,809],{},[13,811,813],{"id":812},"_6-créer-le-premier-projet","6. Créer le premier projet",[18,815,816],{},"D'accord, continuons avec une demande un peu plus détaillée :",[207,818,821],{"className":819,"code":820,"language":260,"meta":212},[258],"Use the freecad MCP server to create a new document named AgentTest, then list the objects in the document.\n",[214,822,820],{"__ignoreMap":212},[18,824,825,826,829,830,833,834,127],{},"L'agent devrait appeler ",[214,827,828],{},"create_document",", puis ",[214,831,832],{},"get_objects",". Selon les réglages du serveur, la réponse peut également inclure une capture de la ",[28,835,836],{},"vue FreeCAD",[18,838,839,840,843],{},"Si la demande aboutit, vous avez confirmé toute la ",[28,841,842],{},"chaîne de connexion"," :",[69,845],{":items":846,"variant":847},"[\"OpenCode peut voir le serveur MCP configuré.\",\"Le serveur MCP peut se connecter au pont RPC FreeCAD.\",\"L'extension FreeCAD peut recevoir et traiter une demande.\",\"L'agent peut lire un résultat renvoyé par FreeCAD.\"]","numbered",[18,849,850],{},"Excellent ! À ce stade, enregistrez le document manuellement ou demandez à l'agent de l'enregistrer avec Python pour FreeCAD. Conserver ce premier document de test est utile pour résoudre les problèmes plus tard.",[59,852],{},[13,854,856],{"id":855},"_7-créer-une-pièce-paramétrique-simple","7. Créer une pièce paramétrique simple",[18,858,859],{},"Une fois la connexion fonctionnelle, nous pouvons demander à l'agent de créer un petit modèle avec des dimensions précises. Une plaque simple avec quatre trous est un bon premier projet, car sa géométrie est claire et facile à inspecter.",[18,861,862],{},"Nous pouvons par exemple utiliser une instruction comme celle-ci :",[207,864,867],{"className":865,"code":866,"language":260,"meta":212},[258],"Use the freecad MCP tools to create a new document containing a parametric rectangular plate.\n\nRequirements:\n- The plate should be 100 mm long, 60 mm wide, and 8 mm thick.\n- Add four through-holes with a diameter of 6 mm.\n- Place the holes symmetrically, 10 mm from the nearest two edges.\n- Use meaningful object names.\n- Recompute the document and report the objects and final dimensions.\n- Do not overwrite any existing document.\n",[214,868,866],{"__ignoreMap":212},[18,870,871,872,875,876,879,880,883,884,887],{},"L'implémentation exacte dépend de l'agent. Il peut créer des ",[28,873,874],{},"primitives Part",", utiliser une ",[28,877,878],{},"esquisse"," et un ",[28,881,882],{},"pad",", ou exécuter du ",[28,885,886],{},"Python FreeCAD"," pour construire la forme. L'essentiel est d'indiquer clairement les dimensions, les contraintes, les attentes concernant les noms et les limites de sécurité.",[84,889,891],{"id":890},"inspecter-le-résultat","Inspecter le résultat",[18,893,894],{},"Une fois le modèle créé, demandons à l'agent de l'inspecter au lieu de demander immédiatement une autre fonction :",[207,896,899],{"className":897,"code":898,"language":260,"meta":212},[258],"Inspect the current FreeCAD document with the freecad MCP tools. List every object, its type, its dimensions, and any visible errors. Take an isometric view screenshot if available.\n",[214,900,898],{"__ignoreMap":212},[18,902,903,904,907,908,911],{},"C'est ici que le ",[28,905,906],{},"flux de travail MCP"," devient plus utile qu'une génération de code en une seule étape. Nous pouvons comparer le rapport de l'agent avec l'",[28,909,910],{},"arborescence FreeCAD"," et la vue, puis demander une correction ciblée.",[18,913,914],{},"Par exemple, si les trous ne sont pas au bon endroit, nous pouvons dire :",[207,916,919],{"className":917,"code":918,"language":260,"meta":212},[258],"The plate looks correct, but the holes are not symmetric around the center. Inspect the model and move only the hole locations so the four hole centers are 10 mm from the corresponding edges. Preserve the plate thickness and hole diameter.\n",[214,920,918],{"__ignoreMap":212},[18,922,923],{},"Formulez des demandes de modification précises. Demander à l'agent de « rendre le modèle plus joli » lui donne trop de liberté et rend le résultat plus difficile à vérifier.",[59,925],{},[13,927,929],{"id":928},"_8-travailler-avec-python-pour-freecad","8. Travailler avec Python pour FreeCAD",[18,931,932,933,936,937,939,940,942],{},"L'outil ",[214,934,935],{},"execute_code"," permet à l'agent d'exécuter du Python dans ",[28,938,30],{},". C'est une fonctionnalité vraiment puissante, car ",[28,941,30],{}," expose une grande partie de ses fonctions de modélisation via Python. Cela signifie également que nous devons vérifier le code généré avant d'autoriser des modifications importantes.",[18,944,945],{},"Commençons par une demande d'exploration sans risque :",[207,947,950],{"className":948,"code":949,"language":260,"meta":212},[258],"Use execute_code only to inspect the active document. Return the document name and a list of object names and types. Do not create, delete, or modify anything.\n",[214,951,949],{"__ignoreMap":212},[18,953,954],{},"Pour une tâche de modélisation contrôlée, demandez d'abord à l'agent d'expliquer les opérations prévues :",[207,956,959],{"className":957,"code":958,"language":260,"meta":212},[258],"Before executing code, describe the FreeCAD objects and operations you plan to use to create the plate. Wait for confirmation before modifying the document.\n",[214,960,958],{"__ignoreMap":212},[18,962,963],{},"Cette étape supplémentaire est utile lorsque nous apprenons l'API ou travaillons sur un modèle qui contient un travail de conception important.",[18,965,966,967,970],{},"N'oubliez pas que les ",[28,968,969],{},"opérations FreeCAD"," peuvent avoir des dépendances. Supprimer ou modifier un objet peut affecter des esquisses, des pads, des découpes ou des fonctions en aval. Un modèle qui semble correct sur une capture d'écran peut tout de même contenir des relations paramétriques fragiles ou incorrectes.",[59,972],{},[13,974,976],{"id":975},"dépannage","Dépannage",[18,978,979],{},"En cas de problème, voici une courte liste de vérifications à suivre :",[69,981],{":items":982},"[\"Si OpenCode ne trouve pas le serveur, vérifiez la clé mcp, le nom du serveur, le tableau de commandes et le chemin dans opencode.json.\",\"Si uv ne démarre pas, installez uv et vérifiez que la commande est disponible dans le terminal utilisé pour lancer OpenCode.\",\"Si le serveur démarre mais que FreeCAD ne répond pas, ouvrez FreeCAD, sélectionnez l'atelier MCP Addon et redémarrez le serveur RPC.\",\"Si un outil signale un problème de dispatch GUI, utilisez get_rpc_status et attendez que FreeCAD retrouve un état normal avant d'envoyer une autre demande GUI.\",\"Si la géométrie générée est incorrecte, inspectez l'arborescence du document et les dimensions avant de demander une correction ciblée à l'agent.\"]",[18,984,162,985,988,989,992,993,996,997,999],{},[28,986,987],{},"projet FreeCAD MCP"," avertit que les ",[28,990,991],{},"opérations GUI"," ne peuvent pas toujours être annulées de force en toute sécurité. Si une opération GUI reste bloquée, envoyer d'autres demandes GUI peut aggraver la situation. Vérifiez le ",[28,994,995],{},"statut RPC"," et redémarrez ",[28,998,30],{}," si nécessaire.",[18,1001,1002,1003,1005,1006,1009],{},"Si ",[214,1004,935],{}," lève une exception lors de la création d'un objet ",[214,1007,1008],{},"FeaturePython",", inspectez le nouvel objet avant d'essayer de le modifier ou de le supprimer. Un objet partiellement créé peut ne pas avoir le proxy attendu.",[59,1011],{},[13,1013,1015],{"id":1014},"conseils-pratiques","Conseils pratiques",[18,1017,1018,1019,1022],{},"Un ",[28,1020,1021],{},"agent de programmation utilisant l'IA"," est particulièrement utile lorsque nous le considérons comme un collaborateur compétent dont le travail doit être vérifié. Donnez-lui des exigences mesurables, demandez-lui d'inspecter son résultat et limitez les modifications afin de pouvoir les annuler facilement.",[18,1024,1025],{},"Pour les tâches répétitives, décrivez les dimensions et les contraintes plutôt que l'apparence visuelle uniquement. « Crée une plaque de 100 mm sur 60 mm avec quatre trous de 6 mm » est beaucoup plus utile que « crée une petite plaque de montage ».",[18,1027,1028],{},"Il est également conseillé d'enregistrer des versions de nos fichiers FreeCAD avant les modifications importantes. Les modèles paramétriques peuvent contenir des dépendances cachées et une modification apparemment mineure peut invalider une fonction ultérieure.",[18,1030,1031],{},"Enfin, n'oubliez pas qu'une CAO générée n'est pas automatiquement sûre à fabriquer. Vérifiez vous-même les unités, les tolérances, les épaisseurs de paroi, les dégagements des fixations, les hypothèses concernant les matériaux et les paramètres d'exportation. L'agent peut accélérer le processus de conception, mais la responsabilité technique reste entre les mains de la personne qui approuve le modèle.",[59,1033],{},[13,1035,1037],{"id":1036},"conclusion","Conclusion",[18,1039,1040,1041,1043,1044,1047,1048,1050,1051,1054],{},"Nous voici enfin arrivés au bout de cette aventure ! ",[28,1042,359],{}," permet de connecter une session FreeCAD en cours d'exécution à un ",[28,1045,1046],{},"agent compatible avec MCP",". Avec ",[28,1049,81],{},", nous pouvons décrire une tâche de modélisation en langage naturel, laisser l'agent créer ou modifier des ",[28,1052,1053],{},"objets FreeCAD",", inspecter le résultat et poursuivre avec des instructions ciblées.",[18,1056,1057],{},"Voici un bref résumé de ce que nous avons fait :",[69,1059],{":items":1060,"variant":847},"[\"Cloner le dépôt FreeCAD MCP.\",\"Installer l'extension FreeCADMCP et redémarrer FreeCAD.\",\"Démarrer le serveur RPC FreeCAD.\",\"Ajouter le serveur MCP FreeCAD à la configuration OpenCode.\",\"Tester la connexion avec un nouveau document et une liste d'objets.\",\"Créer une petite pièce mesurable et l'inspecter attentivement.\"]",[18,1062,1063,1064,1068,1069,127],{},"Pour découvrir d'autres exemples et les dernières instructions d'installation, consultez le ",[21,1065,1067],{"href":49,"rel":1066,"target":26},[25],"dépôt FreeCAD MCP"," et la ",[21,1070,1073],{"href":1071,"rel":1072,"target":26},"https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fmcp-servers\u002F",[25],"documentation MCP d'OpenCode",[18,1075,1076],{},"Si votre test de connexion a fonctionné et que l'agent a créé votre première pièce, félicitations ! Vous disposez maintenant d'un pont conversationnel entre OpenCode et FreeCAD et pouvez commencer à expérimenter avec vos propres modèles paramétriques !",[18,1078,1079,1080,1082],{},"Pensez à maintenir FreeCAD, le dépôt FreeCAD MCP, OpenCode et ",[214,1081,774],{}," à jour afin que la configuration continue de fonctionner de manière fiable. Avant toute modification importante, enregistrez une copie de votre modèle et vérifiez toujours la géométrie générée avant de l'utiliser dans un vrai projet.",[18,1084,1085,1086,1090,1091,1095],{},"Si vous aimez les projets open source pratiques comme celui-ci, vous pouvez également consulter notre ",[21,1087,1089],{"href":1088},"\u002Ffr\u002Fblog\u002Fhow-to-configure-pi-hole-and-mullvad-on-a-raspberry-pi","guide pour configurer Pi-hole et Mullvad sur un Raspberry Pi"," pour mettre en place une solution de confidentialité à l'échelle du réseau, ou notre ",[21,1092,1094],{"href":1093},"\u002Ffr\u002Fblog\u002Fhow-to-setup-and-use-mullvad-vpn-mobile-app","guide pour utiliser l'application mobile Mullvad VPN"," lorsque vous souhaitez protéger des appareils individuels en déplacement !",[18,1097,1098],{},[100,1099],{"alt":1100,"src":1101},"Jeune fille utilisant FreeCAD avec un agent de programmation basé sur l'IA","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Fgirl-using-freecad.png",[18,1103,1104],{},"Voilà, c'est tout pour aujourd'hui ! J'espère que ce guide vous a plu et que nous nous retrouverons bientôt !",[1106,1107,1108],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":212,"searchDepth":563,"depth":563,"links":1110},[1111,1112,1117,1118,1121,1122,1123,1124,1125,1128,1129,1130,1131],{"id":15,"depth":563,"text":16},{"id":63,"depth":563,"text":64,"children":1113},[1114,1115,1116],{"id":86,"depth":578,"text":87},{"id":120,"depth":578,"text":121},{"id":158,"depth":578,"text":159},{"id":198,"depth":563,"text":199},{"id":270,"depth":563,"text":271,"children":1119},[1120],{"id":345,"depth":578,"text":346},{"id":395,"depth":563,"text":396},{"id":509,"depth":563,"text":510},{"id":727,"depth":563,"text":728},{"id":812,"depth":563,"text":813},{"id":855,"depth":563,"text":856,"children":1126},[1127],{"id":890,"depth":578,"text":891},{"id":928,"depth":563,"text":929},{"id":975,"depth":563,"text":976},{"id":1014,"depth":563,"text":1015},{"id":1036,"depth":563,"text":1037},"guides","Guides","2026-08-22","Guide pratique pour contrôler FreeCAD avec le serveur MCP de FreeCAD et OpenCode, de l'installation de l'extension à la création et à l'inspection d'un modèle paramétrique à l'aide d'instructions en langage naturel.","md",[1138,1141,1144,1147,1150],{"question":1139,"answer":1140},"Qu'est-ce que le serveur MCP de FreeCAD ?","FreeCAD MCP connecte un agent de programmation compatible avec MCP à FreeCAD. Il utilise l'extension FreeCADMCP et un petit serveur MCP afin que l'agent puisse créer des documents, exécuter du code Python dans FreeCAD, inspecter des objets et demander des vues du modèle.",{"question":1142,"answer":1143},"OpenCode peut-il contrôler FreeCAD directement ?","Oui. OpenCode peut démarrer le serveur MCP de FreeCAD en tant que processus MCP local. Le serveur communique avec l'extension FreeCAD, qui doit être active dans une session FreeCAD ouverte.",{"question":1145,"answer":1146},"Dois-je connaître Python pour FreeCAD pour utiliser cette configuration ?","Non, mais des connaissances de base de FreeCAD et de Python sont utiles. Un agent peut écrire une grande partie du code, tandis que votre compréhension des documents, des corps, des esquisses, des contraintes et des mesures vous aidera à vérifier le résultat.",{"question":1148,"answer":1149},"Où dois-je exécuter le serveur MCP de FreeCAD ?","Exécutez-le sur le même ordinateur que FreeCAD pour obtenir la configuration la plus simple. Le projet FreeCAD MCP prend également en charge les connexions distantes lorsque l'extension est configurée pour autoriser l'adresse IP ou le sous-réseau de l'ordinateur de l'agent.",{"question":1151,"answer":1152},"L'agent peut-il créer automatiquement des modèles CAO prêts pour la production ?","Il peut créer des modèles paramétriques utiles et accélérer les tâches répétitives, mais chaque modèle généré doit toujours être vérifié par une personne. Vérifiez les dimensions, les contraintes, la topologie, les dégagements, la fabricabilité et le fichier enregistré avant de l'utiliser pour un projet réel.","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Fguy-using-freecad.png","fr",{},true,"\u002Ffr\u002Fblog\u002Fhow-to-use-freecad-opencode-mcp",{"title":5,"description":1135},{"loc":1157},"fr\u002Fblog\u002Fhow-to-use-freecad-opencode-mcp",[30,81,173,1162,1163],"CAD","AI","cqawW0ofN0dUxRSvarK4-Qhtc893zrxvFiJCKHz7K-g",[1166,1170],{"title":1167,"description":1168,"image":1169,"categoryText":1133,"path":1093},"Comment configurer et utiliser l'application mobile Mullvad VPN","Un guide pratique pour installer, configurer et utiliser l'application mobile Mullvad VPN sur Android et iOS, avec la création du compte, le choix du serveur, le fonctionnement du kill switch et le dépannage des problèmes de connexion.","\u002Fimages\u002Fblog\u002Fmullvad-app\u002Fmullvad-app.png",{"title":1171,"description":1172,"image":1173,"categoryText":1133,"path":1088},"Utiliser Pi-hole et le VPN Mullvad sur un Raspberry Pi","Guide pratique pour installer Pi-hole et configurer un Raspberry Pi comme passerelle Mullvad WireGuard, avec DNS, transfert, NAT et dépannage des fuites.","\u002Fimages\u002Fblog\u002Fpi-hole-and-mullvad\u002Fraspberry-pi-network.png",[],1789897414591]