Saltar al contenido

Automatización (API y MCP)

LinceCAD se puede manejar desde otros programas del mismo equipo: scripts de Python, otros programas y asistentes de IA (Claude, por ejemplo) a través de MCP (Model Context Protocol). Pueden abrir y guardar dibujos, consultar y crear entidades, cambiar capas, ejecutar comandos, evaluar AutoLISP, trazar a PDF y ver el dibujo como imagen. Todo va por canales locales: nada sale del equipo.

Activarla

La automatización está desactivada por defecto. Se activa en OPCIONES, pestaña Automatización:

AjusteQué hace
Permitir automatización (API/MCP)Abre el canal local de la API. Sin esto, ningún programa puede conectar con la ventana
Solo lectura (pueden leer, no cambiar)Los programas pueden leer el dibujo pero no cambiarlo, guardarlo ni ejecutar comandos
Confirmar los cambios de los asistentes de IA (paleta Acciones de la IA)Lo que un asistente de IA quiera cambiar espera en la paleta ACCIONESIA hasta que lo acepte
Carpetas permitidasSolo se abre, se guarda y se traza en esas carpetas (vacío: en cualquiera)
Servidor MCP por HTTP en 127.0.0.1, puertoServidor MCP por HTTP, solo en 127.0.0.1, para conectar un asistente con el LinceCAD abierto

Los ajustes se guardan al momento en api.toml, en la carpeta de configuración del usuario (%APPDATA%\lince en Windows, ~/.config/lince en Linux), junto con la ficha: la contraseña que los programas presentan al conectar. Solo su usuario puede leerla. Generar una ficha nueva la cambia (los programas que tenían la anterior dejan de poder entrar).

Control de lo que hace la IA

Sin ventana

Los dos son el mismo LinceCAD con la ventana fuera de la pantalla: mismos comandos y misma vista (para las capturas). No abren diálogos ni preguntan nada; respetan el modo solo lectura y las carpetas permitidas de api.toml. En Linux necesitan una sesión gráfica (o xvfb-run).

Conectar un asistente de IA (MCP)

Claude Desktop: en %APPDATA%\Claude\claude_desktop_config.json (Windows):

    {
      "mcpServers": {
        "lince": { "command": "C:\\Program Files\\lince\\lince.exe", "args": ["--mcp"] }
      }
    }

Claude Code (sin ventana, en un proyecto): claude mcp add --scope project lince -- "C:\Program Files\lince\lince.exe" --mcp

Claude Code con el LinceCAD abierto (active Servidor MCP por HTTP en 127.0.0.1, puerto; la ficha está en api.toml): claude mcp add --transport http lince http://127.0.0.1:7341/mcp --header "Authorization: Bearer <ficha>"

El asistente ve las herramientas (abrir, consultar, crear, acotar, insertar bloques, trazar a PDF, capturar la vista, deshacer…), los recursos (resumen, entidades, capas y bloques de cada dibujo abierto, y estas páginas de ayuda como documentación) y tres prompts: revisar el plano, acotar una planta y limpiar las capas.

Python

Hay dos paquetes de Python (requieren Python 3.9 o posterior):

    import lince
    with lince.iniciar() as s:              # arranca «lince --servidor» sin ventana
        dib = s.nuevo()
        dib.crear_capa("MUROS", color=1)
        with dib.transaccion():             # un solo paso de deshacer
            dib.linea([0, 0], [100, 0], layer="MUROS")
            dib.circulo([50, 50], 20)
        dib.trazar_pdf("plano.pdf")
        dib.guardar_como("plano.dwg")

Para una instancia abierta (con la automatización activada): s = lince.conectar(); dib = s.dibujo.

    import lince_nucleo as ln
    dib = ln.abrir("plano.dwg")
    for e in dib.consultar(tipo="CIRCLE"):
        print(e["handle"], e["radius"])
    dib.guardar("salida.dwg", "2018")

Las entidades usan el mismo formato tipado de §5.1. Ejemplos en python/ejemplos del código fuente.

Programas propios (JSON-RPC)

Los programas conectan por la tubería \\.\pipe\lince-<usuario> (Windows) o el socket $XDG_RUNTIME_DIR/lince.sock (Linux) y mandan un mensaje JSON-RPC 2.0 por línea. El primero es session.hello con la ficha:

    {"jsonrpc":"2.0","id":1,"method":"session.hello","params":{"token":"<ficha>"}}
    {"jsonrpc":"2.0","id":2,"method":"entity.create","params":{"entity":{"type":"LINE","start":[0,0],"end":[100,0]}}}
    {"jsonrpc":"2.0","id":3,"method":"document.saveAs","params":{"path":"C:\\planos\\prueba.dwg"}}

Hay métodos para dibujos (document.*), comandos (command.run), AutoLISP (lisp.eval), entidades (entity.query/get/create/set/delete, como objetos o como listas DXF de entget), capas, bloques, estilos, variables, designación, deshacer, trazado, captura de la vista y eventos. La especificación completa está en docs/api.md del código fuente.

Véase también

OPCIONES · ACCIONESIA · AutoLISP · SCRIPT

Descargar LinceCAD Índice del manual