# LibreModular-MCP

## Servidor MCP universal escrito en Rust, con un Hub que solo expone dos herramientas

Si un modelo maneja una aplicación de escritorio con una herramienta por gesto, cada gesto cuesta una ida y vuelta. El Hub expone dos herramientas: un script hace el trabajo en una llamada. GIMP, Krita, Blender, Inkscape y LibreOffice funcionan hoy, cada una mediante un módulo y un puente; el Hub busca conectar cuantas sea posible en un solo servidor.

## Un script enviado, la respuesta del Hub

Este script dibuja un gráfico de tres barras en un documento de Inkscape. Un cliente lo envió en una sola llamada a `execute_script`, y el bloque de debajo es la respuesta del Hub. La [demostración](https://libremodular.davalan.fr/es/demonstration/index.md) ofrece un cliente de 25 líneas y todos los pasos para repetir una ejecución como esta.

**Script escrito**

```python
import json
import os

import inkex

document = inkex.load_svg(os.environ["LMM_DOCUMENT"])
layer = document.getroot().add(inkex.Layer.new("Chart"))
for index, value in enumerate([3, 7, 5]):
    layer.add(inkex.Rectangle.new(20 + index * 30, 100 - value * 10, 20, value * 10))
document.write(os.environ["LMM_DOCUMENT"])
print("LMM_RESULT: " + json.dumps({"bars": len(layer)}))
```

**Respuesta del Hub**

```json
{
  "app": "inkscape",
  "duration_ms": 151,
  "error": null,
  "result": {
    "bars": 3
  },
  "status": "ok",
  "stderr": "",
  "stdout": "",
  "truncated": false
}
```


Inkscape 1.4 lo ejecutó en el modo `cli`, sin ventana: el Hub inició un proceso de Python para el script y devolvió como `result` el valor que el script imprimió tras `LMM_RESULT: `.

## Dos herramientas, un módulo por aplicación

Esto es LibreModular-MCP. El Hub es un único binario de Rust que da al modelo exactamente dos herramientas. `execute_script` ejecuta un script de Python completo en una aplicación y devuelve lo que el script imprimió, su `result`, o la traza de error propia de la aplicación. `get_state` devuelve lo que hay abierto en la aplicación. Un módulo del lado del Hub y un puente del lado de la aplicación llegan a GIMP, Krita, Blender, Inkscape y LibreOffice; el Hub en sí no conoce ninguna de sus interfaces.

Estas cinco aplicaciones son las probadas, no el alcance del Hub: una aplicación más se añade mediante un módulo, un puente y su guía, como describe [CONTRIBUTING.md](https://github.com/RonanDavalan/LibreModular-MCP/blob/main/CONTRIBUTING.md), y el código tiene licencia MIT.

El [inicio rápido](https://libremodular.davalan.fr/es/quickstart/index.md) crea la configuración del Hub, [Conectar su modelo](https://libremodular.davalan.fr/es/clients/index.md) lo declara en Claude Code o en opencode, y la [instalación](https://libremodular.davalan.fr/es/installation/index.md) da el paquete para cada familia de Linux.

