[{"data":1,"prerenderedAt":1175},["ShallowReactive",2],{"post-how-to-use-freecad-opencode-mcp-es":3,"related-posts-how-to-use-freecad-opencode-mcp-es":1165,"related-categories-how-to-use-freecad-opencode-mcp-es":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\u002Fes\u002Fblog\u002Fhow-to-use-freecad-opencode-mcp.md","Cómo usar FreeCAD con OpenCode y 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},"introducción","Introducción",[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"," es, sin duda, una de las aplicaciones CAD paramétricas más potentes que existen. Sin embargo, a veces construir un modelo desde cero puede implicar mucho trabajo repetitivo, buscar funciones en Internet y hacer un montón de deshacer... ¡muchísimo!",[18,33,34],{},"Seleccionas un banco de trabajo, creas un documento, añades bocetos, aplicas restricciones, creas operaciones, inspeccionas el árbol y repites el proceso hasta que el resultado es correcto. Un poco engorroso, ¿no?",[18,36,37],{},"Pero ¿y si pudieras describir la pieza que quieres construir y dejar que un agente de programación te ayudara a crearla dentro de FreeCAD, igual que haces con el código?",[18,39,40],{},"Sería genial, ¿no crees?",[18,42,43],{},"Pues estás en el lugar adecuado, porque eso es exactamente lo que vamos a explicar en esta guía.",[18,45,46,47,54],{},"Esa es la idea del ",[21,48,51],{"href":49,"rel":50,"target":26},"https:\u002F\u002Fgithub.com\u002Fneka-nat\u002Ffreecad-mcp",[25],[28,52,53],{},"servidor MCP de FreeCAD",", un proyecto de código abierto que permite conectar FreeCAD con un cliente de IA compatible con MCP para que podamos controlarlo directamente mediante instrucciones en lenguaje natural.",[18,56,57],{},"El objetivo no es sustituir los conocimientos de CAD ni aceptar a ciegas la geometría generada, sino hacer que la interacción entre la persona y la máquina sea más conversacional y programable. Podemos pedir al agente que cree un documento, genere una pieza sencilla, inspeccione el árbol de objetos, cambie una dimensión o explique por qué ha fallado una operación, ¡igual que haríamos al hablar con otra persona!",[59,60],"hr",{},[13,62,64],{"id":63},"qué-necesitamos","Qué necesitamos",[18,66,67],{},"Primero, empecemos enumerando todo lo que necesitamos para este pequeño proyecto:",[69,70],"blog-list",{":items":71},"[\"Una instalación reciente de FreeCAD.\",\"Python y uv instalados para que OpenCode pueda iniciar el servidor MCP.\",\"OpenCode instalado y configurado con un proveedor de IA.\",\"El repositorio FreeCAD MCP de neka-nat.\",\"Conocimientos básicos de la interfaz de FreeCAD y del modelado paramétrico.\"]",[18,73,74,75,82],{},"La configuración más sencilla consiste en ejecutar FreeCAD y ",[21,76,79],{"href":77,"rel":78,"target":26},"https:\u002F\u002Fopencode.ai\u002F",[25],[28,80,81],{},"OpenCode"," en el mismo ordenador. De esta forma, el servidor MCP puede usar la conexión local predeterminada y no necesitamos exponer FreeCAD a la red ni editar configuraciones complejas.",[84,85,87],"h3",{"id":86},"por-qué-freecad","¿Por qué FreeCAD?",[18,89,90],{},"De acuerdo, pero ¿por qué FreeCAD en lugar de otra solución CAD 3D popular?",[18,92,93,94,96],{},"Decidí usar ",[28,95,30],{}," simplemente porque es completamente de código abierto y gratuito, sin reglas de licencia poco claras ni políticas extrañas relacionadas con el número de empleados de la empresa. ¿Quieres crear un proyecto 3D para ti, para tu familia o para una empresa con un millón de empleados? ¡No hay problema, no necesitas ninguna licencia!",[18,98,99],{},[100,101],"img",{"alt":102,"src":103},"Funciones de modelado 3D paramétrico de código abierto de FreeCAD","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Ffreecad-infos.png",[18,105,106,108],{},[28,107,30],{}," nos ofrece todas las herramientas que necesitamos para crear piezas precisas, ensamblajes, dibujos técnicos y mucho más, manteniendo editables las dimensiones, los bocetos y las relaciones.",[18,110,111],{},"A diferencia de un programa de dibujo sencillo, FreeCAD recuerda cómo se construyó el modelo. Si cambiamos la longitud de un boceto, la posición de un agujero o el grosor de una operación, el resto del modelo puede actualizarse según esas relaciones en lugar de obligarnos a volver a dibujarlo todo manualmente.",[18,113,114],{},"FreeCAD organiza sus herramientas en diferentes bancos de trabajo, así que podemos elegir solo el conjunto de funciones que tenga sentido para la tarea que estamos realizando. Esto hace que el proceso de creación sea mucho más fácil y ordenado.",[18,116,117],{},"Otra característica muy interesante de FreeCAD es que su comportamiento se puede ampliar mediante complementos y scripts. Por eso es una opción perfecta para experimentar con un agente de programación basado en IA sin dejar de controlar el diseño y los archivos que creamos.",[84,119,121],{"id":120},"por-qué-opencode","¿Por qué OpenCode?",[18,123,124,125,127],{},"Para la parte del agente, decidí usar ",[28,126,81],{},".",[18,129,130,132],{},[28,131,81],{}," es un agente de programación muy popular y, teniendo en cuenta que es de código abierto, encaja perfectamente con FreeCAD.",[18,134,135],{},[100,136],{"alt":137,"src":138,"height":139,"width":140},"Funciones del agente de programación OpenCode basado en IA","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Fopencode-infos.png",941,1672,[18,142,143],{},"Con los modelos disponibles, puede entender solicitudes en lenguaje natural, planificar una secuencia de acciones y utilizar herramientas conectadas para completar una tarea. Puedes usar OpenCode con tu LLM o suscripción de IA favorita, como GitHub Copilot, o conectarlo a una plataforma externa basada en API, como OpenRouter.",[18,145,146],{},"En lugar de tratar el terminal como un lugar en el que tenemos que escribir cada comando perfectamente, podemos describir lo que queremos conseguir y dejar que el agente nos ayude a elegir los siguientes pasos.",[18,148,149],{},"En nuestro caso concreto, OpenCode nos ofrece una forma conversacional de pedir a FreeCAD que cree documentos, construya modelos, inspeccione objetos y explique claramente cómo ha realizado esas tareas.",[18,151,152],{},"Podemos describir en lenguaje sencillo el resultado que queremos, revisar el trabajo del agente y pedir un cambio concreto cuando haya que corregir algo. OpenCode también puede devolvernos las respuestas de las herramientas, lo que nos permite pedirle que compruebe el árbol de documentos, verifique las dimensiones o tome una captura de pantalla antes de tomar otra decisión.",[18,154,155],{},"Como es de código abierto, podemos inspeccionar su proyecto, configurarlo localmente y conectarlo a herramientas como el servidor MCP de FreeCAD en lugar de depender únicamente de un flujo de trabajo cerrado e invariable.",[84,157,159],{"id":158},"por-qué-usar-un-servidor-mcp","¿Por qué usar un servidor MCP?",[18,161,162,163,170,171,174],{},"El ",[21,164,167],{"href":165,"rel":166,"target":26},"https:\u002F\u002Fmodelcontextprotocol.io\u002F",[25],[28,168,169],{},"Model Context Protocol",", o ",[28,172,173],{},"MCP"," para abreviar, ofrece a un cliente de IA una forma estándar de descubrir y llamar a herramientas externas que pueden proporcionar contexto para las llamadas a un LLM.",[18,176,177,178,180,181,183],{},"En lugar de controlar FreeCAD mediante clics en la pantalla y movimientos del ratón, ",[28,179,81],{}," puede llamar directamente a las herramientas que expone el ",[28,182,53],{},", lo que le permite controlar el software CAD mediante una API adaptada a la IA.",[18,185,186],{},"El proyecto FreeCAD MCP que usaremos en esta guía ofrece herramientas para tareas como las siguientes:",[69,188],{":items":189,"variant":190},"[\"Crear y abrir documentos de FreeCAD.\",\"Crear, editar y eliminar objetos de FreeCAD.\",\"Ejecutar código Python dentro de FreeCAD.\",\"Inspeccionar objetos y el árbol de documentos.\",\"Solicitar una captura de la vista actual.\",\"Insertar piezas de la biblioteca de piezas de FreeCAD.\"]","circle",[18,192,193],{},"Esto proporciona al agente un ciclo de retroalimentación muy útil. Puede hacer un cambio, inspeccionar el resultado y ajustar su siguiente acción en lugar de limitarse a escribir código que tengamos que pegar manualmente. Muy práctico, ¿verdad?",[59,195],{},[13,197,199],{"id":198},"_1-descargar-freecad-mcp","1. Descargar FreeCAD MCP",[18,201,202],{},"De acuerdo, lo primero que vamos a hacer es descargar el repositorio oficial creado por el increíble neka-nat.",[18,204,205],{},"Para ello, abre un terminal, ve a un directorio que elijas y ejecuta el siguiente comando:",[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},"Repositorio FreeCAD MCP clonado en la carpeta Documents","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Ffreecad-mcp-download.png",[18,239,240,241,244,245,248,249,251],{},"El repositorio contiene tanto el ",[28,242,243],{},"servidor MCP de Python"," como el ",[28,246,247],{},"complemento de FreeCAD",". Guárdalo en una ubicación estable porque ",[28,250,81],{}," necesitará su ruta cuando inicie el servidor.",[18,253,254],{},"En Windows, te recomiendo guardarlo dentro de tu carpeta Documents. Por ejemplo, puedes usar esta ubicación:",[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 utilizas otra ubicación, no te preocupes. Solo tendremos que sustituir la ruta de ejemplo en la configuración de OpenCode más adelante.",[59,267],{},[13,269,271],{"id":270},"_2-instalar-el-complemento-de-freecad","2. Instalar el complemento de FreeCAD",[18,273,162,274,277,278,280,281,127],{},[28,275,276],{},"servidor MCP"," también necesita tener instalado un complemento en ",[28,279,30],{},". El repositorio oficial contiene todo lo necesario en el directorio ",[214,282,283],{},"addon\u002FFreeCADMCP",[18,285,286],{},"En Windows, FreeCAD 1.1 utiliza el siguiente directorio del complemento específico de la versión:",[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],{},"Para instalar el complemento, abre el repositorio clonado y copia la carpeta ",[28,297,298],{},"FreeCADMCP"," desde ",[214,301,302],{},"addon",[18,304,305,306,309],{},"Después, pégala en la siguiente carpeta de FreeCAD. Crea la carpeta ",[214,307,308],{},"Mod"," si todavía no existe:",[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 resumen, copia la siguiente carpeta:",[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],{},"en esta carpeta:",[207,329,331],{"className":330,"code":313,"language":260,"meta":212},[258],[214,332,313],{"__ignoreMap":212},[18,334,335,336,339],{},"Las versiones antiguas de FreeCAD pueden utilizar la carpeta ",[214,337,338],{},"C:\\Users\\YourName\\AppData\\Roaming\\FreeCAD\\Mod"," para los complementos. Usa el directorio que corresponda a la carpeta específica de la versión creada por tu instalación de FreeCAD.",[18,341,342],{},"Después de copiar el complemento, reinicia FreeCAD si ya estaba abierto. El repositorio también documenta las ubicaciones de los complementos para Linux y macOS si utilizas otro sistema operativo.",[84,344,346],{"id":345},"seleccionar-el-banco-de-trabajo-mcp-addon","Seleccionar el banco de trabajo MCP Addon",[18,348,349,350,352,353,356,357,127],{},"Después de reiniciar ",[28,351,30],{},", abre el selector de bancos de trabajo y elige ",[28,354,355],{},"MCP Addon",". Ahora deberías ver la barra de herramientas o el menú de ",[28,358,359],{},"FreeCAD MCP",[18,361,362],{},[100,363],{"alt":364,"src":365},"Banco de trabajo MCP de FreeCAD y controles del servidor RPC","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Ffreecad-mcp-addon.png",[18,367,368,369,372,373,375,376,378,379,127],{},"Haz clic en ",[28,370,371],{},"Start RPC Server"," para iniciar el puente local. El ",[28,374,276],{}," iniciado por ",[28,377,81],{}," utilizará este puente para comunicarse con ",[28,380,30],{},[18,382,383,384,386,387,390],{},"Normalmente hay que iniciar el servidor RPC cada vez que se abre FreeCAD. Si quieres que se inicie automáticamente, abre el menú ",[28,385,359],{}," y activa ",[28,388,389],{},"Auto-Start Server",". El complemento guarda esta opción y se mantiene entre sesiones.",[59,392],{},[13,394,396],{"id":395},"_3-instalar-opencode","3. Instalar OpenCode",[18,398,399],{},"El siguiente paso es instalar OpenCode.",[18,401,402],{},[100,403],{"alt":404,"src":405},"Página de instalación de OpenCode","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Fopencode-website.jpg",[18,407,408,409,411],{},"Podemos instalar ",[28,410,81],{}," utilizando el instalador oficial con el siguiente comando de Bash:",[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, como yo, prefieres utilizar npm, puedes usar el siguiente comando en su lugar:",[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],{},"Cuando termine la instalación, abre un terminal nuevo para que el comando ",[214,462,463],{},"opencode"," esté disponible en tu ",[214,466,467],{},"PATH",". Vamos a comprobar que funciona:",[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},"Salida del comando de versión de OpenCode","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Fopencode-version.png",[18,488,489,490,493,494,496,497,504],{},"También tendrás que configurar un ",[28,491,492],{},"proveedor de IA"," antes de que ",[28,495,81],{}," pueda actuar como agente de programación. Si es la primera vez que instalas OpenCode, consulta la ",[21,498,501],{"href":499,"rel":500,"target":26},"https:\u002F\u002Fopencode.ai\u002Fdocs\u002F",[25],[28,502,503],{},"documentación de OpenCode"," para configurar el proveedor.",[59,506],{},[13,508,510],{"id":509},"_4-configurar-opencode","4. Configurar OpenCode",[18,512,513,514,517,518,521],{},"OpenCode lee la configuración del proyecto desde un archivo ",[214,515,516],{},"opencode.json"," o ",[214,519,520],{},"opencode.jsonc",". Podemos colocar este archivo en la raíz de un proyecto o utilizar la configuración global de OpenCode si queremos que FreeCAD esté disponible en todas partes.",[18,523,524],{},"En Windows, el archivo de configuración global suele estar aquí:",[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 el directorio o el archivo todavía no existe, créalo antes de añadir la configuración.",[18,535,536,537,540,541,543,544,547],{},"Ahora crea o edita la ",[28,538,539],{},"configuración de OpenCode"," y añade el ",[28,542,53],{}," bajo la clave ",[214,545,546],{},"mcp",", tal como se muestra a continuación:",[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],{},"Sustituye ",[214,713,714],{},"C:\\\\Users\\\\YourName\\\\Documents\\\\freecad-mcp"," por la ruta real de tu copia. Las rutas JSON utilizan barras invertidas escapadas, por lo que una ruta de Windows como ",[214,717,718],{},"C:\\Users\\YourName\\Documents\\freecad-mcp"," debe escribirse como ",[214,721,714],{}," dentro del archivo JSON.",[59,724],{},[13,726,728],{"id":727},"_5-iniciar-opencode","5. Iniciar OpenCode",[18,730,731,732,734,735,737,738,740,741,744],{},"Antes de iniciar ",[28,733,81],{},", confirmemos que ",[28,736,30],{}," está abierto, que el banco de trabajo ",[28,739,355],{}," está seleccionado y que el ",[28,742,743],{},"servidor RPC"," está funcionando.",[18,746,747],{},"Si todo parece correcto, inicia OpenCode desde el directorio que contiene la configuración:",[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],{}," debería detectar el ",[28,763,276],{}," ",[214,766,767],{},"freecad"," durante el inicio. Si el servidor no aparece, comprueba la ruta en ",[214,770,516],{},", confirma que ",[214,773,774],{},"uv"," está disponible en tu ",[214,777,467],{}," y revisa el ",[28,780,781],{},"estado del servidor MCP de OpenCode",[18,783,784,785,787,788,790],{},"También podemos preguntar a ",[28,786,81],{}," si puede acceder al ",[28,789,359],{}," con una instrucción sencilla:",[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],{},"No empieces con un proyecto CAD complejo. Una prueba de conectividad pequeña facilita mucho determinar si un problema posterior procede de OpenCode, del servidor MCP o del propio FreeCAD.",[18,801,802,803,805,806,127],{},"Si la respuesta es positiva, ¡enhorabuena! ",[28,804,81],{}," ya está conectado correctamente al ",[28,807,359],{},[59,809],{},[13,811,813],{"id":812},"_6-crear-el-primer-proyecto","6. Crear el primer proyecto",[18,815,816],{},"De acuerdo, continuemos con una solicitud un poco más detallada:",[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],{},"El agente debería llamar a ",[214,827,828],{},"create_document"," y después a ",[214,831,832],{},"get_objects",". Dependiendo de la configuración del servidor, la respuesta también puede incluir una captura de la ",[28,835,836],{},"vista de FreeCAD",[18,838,839,840,843],{},"Si la solicitud funciona, habrás confirmado toda la ",[28,841,842],{},"cadena de conexión",":",[69,845],{":items":846,"variant":847},"[\"OpenCode puede ver el servidor MCP configurado.\",\"El servidor MCP puede conectarse al puente RPC de FreeCAD.\",\"El complemento de FreeCAD puede recibir y procesar una solicitud.\",\"El agente puede leer un resultado de FreeCAD.\"]","numbered",[18,849,850],{},"¡Genial! En este punto, guarda el documento manualmente o pide al agente que lo guarde utilizando Python de FreeCAD. Conservar este primer documento de prueba resulta útil para solucionar problemas más adelante.",[59,852],{},[13,854,856],{"id":855},"_7-crear-una-pieza-paramétrica-sencilla","7. Crear una pieza paramétrica sencilla",[18,858,859],{},"Una vez que la conexión funcione, podemos pedir al agente que cree un modelo pequeño con dimensiones explícitas. Una placa sencilla con cuatro agujeros es un buen primer proyecto porque su geometría es clara y fácil de inspeccionar.",[18,861,862],{},"Por ejemplo, podemos utilizar una instrucción como esta:",[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],{},"La implementación exacta depende del agente. Puede crear ",[28,873,874],{},"primitivas de Part",", utilizar un ",[28,877,878],{},"boceto"," y una ",[28,881,882],{},"extrusión",", o ejecutar ",[28,885,886],{},"Python de FreeCAD"," para construir la forma. Lo importante es indicar claramente las dimensiones, las restricciones, cómo deben llamarse los objetos y los límites de seguridad.",[84,889,891],{"id":890},"inspeccionar-el-resultado","Inspeccionar el resultado",[18,893,894],{},"Después de crear el modelo, pidamos al agente que lo inspeccione en lugar de solicitar inmediatamente otra función:",[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],{},"Aquí es donde el ",[28,905,906],{},"flujo de trabajo MCP"," resulta más útil que generar código de una sola vez. Podemos comparar el informe del agente con el ",[28,909,910],{},"árbol de FreeCAD"," y la vista, y después pedir una corrección concreta.",[18,913,914],{},"Por ejemplo, si los agujeros no están en el lugar correcto, podemos decir:",[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],{},"Formula solicitudes de cambio precisas. Pedir al agente que \"lo haga más bonito\" le da demasiada libertad y hace que el resultado sea más difícil de revisar.",[59,925],{},[13,927,929],{"id":928},"_8-trabajar-con-python-de-freecad","8. Trabajar con Python de FreeCAD",[18,931,932,933,936,937,939,940,942],{},"La herramienta ",[214,934,935],{},"execute_code"," permite al agente ejecutar Python dentro de ",[28,938,30],{},". Es una función realmente potente, porque ",[28,941,30],{}," expone gran parte de sus capacidades de modelado mediante Python, pero también significa que debemos revisar el código generado antes de permitir cambios importantes.",[18,944,945],{},"Empecemos con una solicitud exploratoria segura:",[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],{},"Para una tarea de modelado controlada, pide primero al agente que explique las operaciones que tiene previsto realizar:",[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],{},"Este paso adicional resulta útil cuando estamos aprendiendo la API o trabajando con un modelo que contiene un diseño importante.",[18,965,966,967,970],{},"Recuerda que las ",[28,968,969],{},"operaciones de FreeCAD"," pueden tener dependencias. Eliminar o cambiar un objeto puede afectar a bocetos, extrusiones, cortes u operaciones posteriores. Un modelo que parece correcto en una captura puede seguir teniendo relaciones paramétricas frágiles o incorrectas.",[59,972],{},[13,974,976],{"id":975},"solución-de-problemas","Solución de problemas",[18,978,979],{},"Cuando algo falle, esta es una lista rápida que puedes seguir:",[69,981],{":items":982},"[\"Si OpenCode no encuentra el servidor, comprueba la clave mcp, el nombre del servidor, la matriz de comandos y la ruta en opencode.json.\",\"Si uv no se inicia, instala uv y confirma que el comando está disponible en el terminal desde el que ejecutas OpenCode.\",\"Si el servidor se inicia pero FreeCAD no responde, abre FreeCAD, selecciona el banco de trabajo MCP Addon y reinicia el servidor RPC.\",\"Si una herramienta informa de un problema de distribución de la GUI, utiliza get_rpc_status y espera a que FreeCAD vuelva a estar en un estado correcto antes de enviar otra solicitud de GUI.\",\"Si la geometría generada es incorrecta, inspecciona el árbol del documento y las dimensiones antes de pedir al agente una corrección concreta.\"]",[18,984,162,985,988,989,992,993,996,997,999],{},[28,986,987],{},"proyecto FreeCAD MCP"," advierte de que las ",[28,990,991],{},"operaciones de GUI"," no siempre se pueden cancelar de forma segura. Si una operación de GUI se queda bloqueada, enviar más solicitudes de GUI puede empeorar la situación. Comprueba el ",[28,994,995],{},"estado del RPC"," y reinicia ",[28,998,30],{}," cuando sea necesario.",[18,1001,1002,1003,1005,1006,1009],{},"Si ",[214,1004,935],{}," genera una excepción al crear un objeto ",[214,1007,1008],{},"FeaturePython",", inspecciona el objeto nuevo antes de intentar modificarlo o eliminarlo. Es posible que un objeto creado parcialmente no tenga instalado el proxy esperado.",[59,1011],{},[13,1013,1015],{"id":1014},"consejos-prácticos","Consejos prácticos",[18,1017,1018,1019,1022],{},"Un ",[28,1020,1021],{},"agente de programación basado en IA"," resulta más útil cuando lo tratamos como un colaborador capaz cuyo trabajo debe revisarse. Dale requisitos medibles, pídele que inspeccione el resultado y mantén los cambios lo bastante pequeños como para poder deshacerlos.",[18,1024,1025],{},"Para el trabajo repetible, describe las dimensiones y las restricciones en lugar de limitarte a explicar el aspecto visual. \"Crea una placa de 100 mm por 60 mm con cuatro agujeros de 6 mm\" es mucho más útil que \"haz una placa de montaje pequeña\".",[18,1027,1028],{},"También es buena idea guardar versiones de nuestros archivos de FreeCAD antes de realizar cambios importantes. Los modelos paramétricos pueden contener dependencias ocultas y un cambio aparentemente pequeño puede invalidar una operación posterior.",[18,1030,1031],{},"Por último, recuerda que el CAD generado no es automáticamente seguro para fabricar. Comprueba personalmente las unidades, las tolerancias, los grosores de pared, las holguras de los elementos de fijación, las suposiciones sobre los materiales y los ajustes de exportación. El agente puede acelerar el proceso de diseño, pero la responsabilidad de ingeniería sigue siendo de la persona que aprueba el modelo.",[59,1033],{},[13,1035,1037],{"id":1036},"conclusión","Conclusión",[18,1039,1040,1041,1043,1044,1047,1048,1050,1051,1054],{},"¡Por fin hemos llegado al final de este viaje! ",[28,1042,359],{}," permite conectar una sesión de FreeCAD en ejecución con un ",[28,1045,1046],{},"agente compatible con MCP",". Con ",[28,1049,81],{},", podemos describir una tarea de modelado en lenguaje natural, dejar que el agente cree o modifique ",[28,1052,1053],{},"objetos de FreeCAD",", inspeccionar el resultado y repetir el proceso con instrucciones concretas.",[18,1056,1057],{},"Este es un breve resumen de lo que hemos hecho:",[69,1059],{":items":1060,"variant":847},"[\"Clonar el repositorio FreeCAD MCP.\",\"Instalar el complemento FreeCADMCP y reiniciar FreeCAD.\",\"Iniciar el servidor RPC de FreeCAD.\",\"Añadir el servidor MCP de FreeCAD a la configuración de OpenCode.\",\"Probar la conexión con un documento nuevo y una lista de objetos.\",\"Crear una pieza pequeña y medible e inspeccionarla con cuidado.\"]",[18,1062,1063,1064,1068,1069,127],{},"Para ver más ejemplos y las últimas instrucciones de instalación, consulta el ",[21,1065,1067],{"href":49,"rel":1066,"target":26},[25],"repositorio FreeCAD MCP"," y la ",[21,1070,1073],{"href":1071,"rel":1072,"target":26},"https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fmcp-servers\u002F",[25],"documentación de OpenCode MCP",[18,1075,1076],{},"Si la prueba de conexión ha funcionado y el agente ha creado tu primera pieza, ¡enhorabuena! Ahora tienes un puente conversacional entre OpenCode y FreeCAD y puedes empezar a experimentar con tus propios modelos paramétricos.",[18,1078,1079,1080,1082],{},"Recuerda mantener FreeCAD, el repositorio FreeCAD MCP, OpenCode y ",[214,1081,774],{}," actualizados para que la configuración siga funcionando de forma fiable. Antes de realizar cambios importantes, guarda una copia de tu modelo y revisa siempre la geometría generada antes de utilizarla en un proyecto real.",[18,1084,1085,1086,1090,1091,1095],{},"Si te gustan los proyectos prácticos de código abierto como este, quizá también quieras consultar nuestra ",[21,1087,1089],{"href":1088},"\u002Fes\u002Fblog\u002Fhow-to-configure-pi-hole-and-mullvad-on-a-raspberry-pi","guía para configurar Pi-hole y Mullvad en una Raspberry Pi"," para crear una configuración de privacidad para toda la red, o nuestra ",[21,1092,1094],{"href":1093},"\u002Fes\u002Fblog\u002Fhow-to-setup-and-use-mullvad-vpn-mobile-app","guía para usar la aplicación móvil Mullvad VPN"," cuando quieras proteger dispositivos individuales mientras estás fuera de casa.",[18,1097,1098],{},[100,1099],{"alt":1100,"src":1101},"Chica usando FreeCAD con un agente de programación basado en IA","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Fgirl-using-freecad.png",[18,1103,1104],{},"¡Eso es todo por hoy! Espero que hayas disfrutado de esta guía y que volvamos a vernos pronto!",[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","Guías","2026-08-22","Guía práctica para controlar FreeCAD con el servidor MCP de FreeCAD y OpenCode, desde la instalación del complemento hasta la creación e inspección de un modelo paramétrico mediante instrucciones en lenguaje natural.","md",[1138,1141,1144,1147,1150],{"question":1139,"answer":1140},"¿Qué es el servidor MCP de FreeCAD?","FreeCAD MCP conecta un agente de programación compatible con MCP a FreeCAD. Utiliza el complemento FreeCADMCP y un pequeño servidor MCP para que el agente pueda crear documentos, ejecutar código Python dentro de FreeCAD, inspeccionar objetos y solicitar vistas del modelo.",{"question":1142,"answer":1143},"¿Puede OpenCode controlar FreeCAD directamente?","Sí. OpenCode puede iniciar el servidor MCP de FreeCAD como un proceso MCP local. El servidor se comunica con el complemento de FreeCAD, que debe estar ejecutándose en una sesión abierta de FreeCAD.",{"question":1145,"answer":1146},"¿Necesito saber Python de FreeCAD para usar esta configuración?","No, aunque es útil tener conocimientos básicos de FreeCAD y Python. Un agente puede escribir gran parte del código, mientras que entender los documentos, cuerpos, bocetos, restricciones y mediciones te ayudará a revisar el resultado.",{"question":1148,"answer":1149},"¿Dónde debería ejecutar el servidor MCP de FreeCAD?","Ejecútalo en el mismo ordenador que FreeCAD para conseguir la configuración más sencilla. El proyecto FreeCAD MCP también admite conexiones remotas cuando el complemento está configurado para permitir la dirección IP o la subred del ordenador del agente.",{"question":1151,"answer":1152},"¿Puede el agente crear automáticamente modelos CAD listos para producción?","Puede crear modelos paramétricos útiles y acelerar el trabajo repetitivo, pero cualquier modelo generado debe ser revisado por una persona. Comprueba las dimensiones, las restricciones, la topología, las holguras, la fabricabilidad y el archivo guardado antes de usarlo en un proyecto real.","\u002Fimages\u002Fblog\u002Ffreecad-opencode\u002Fguy-using-freecad.png","es",{},true,"\u002Fes\u002Fblog\u002Fhow-to-use-freecad-opencode-mcp",{"title":5,"description":1135},{"loc":1157},"es\u002Fblog\u002Fhow-to-use-freecad-opencode-mcp",[30,81,173,1162,1163],"CAD","AI","NOC73y3tZFe-2r1uUtE0E8cMro4Dr9u154AhcERTeSE",[1166,1170],{"title":1167,"description":1168,"image":1169,"categoryText":1133,"path":1088},"Cómo usar Pi-hole y Mullvad VPN en una Raspberry Pi","Guía práctica para instalar Pi-hole y configurar una Raspberry Pi como puerta de enlace Mullvad WireGuard, incluyendo DNS, reenvío, NAT y solución de fugas.","\u002Fimages\u002Fblog\u002Fpi-hole-and-mullvad\u002Fraspberry-pi-network.png",{"title":1171,"description":1172,"image":1173,"categoryText":1133,"path":1093},"Cómo configurar y usar la aplicación móvil Mullvad VPN","Una guía práctica para instalar, configurar y usar la aplicación móvil Mullvad VPN en Android e iOS, incluida la configuración de la cuenta, la elección del servidor, el comportamiento del kill switch y la solución de problemas de conexión.","\u002Fimages\u002Fblog\u002Fmullvad-app\u002Fmullvad-app.png",[],1789897414708]