Schnellstart
Auf dieser Seite
Fünf Schritte führen einen installierten Hub zu seinem ersten beantworteten Skript: Konfiguration und Token anlegen, Inkscape aktivieren, den Hub im MCP-Client eintragen, prüfen, was der Hub sieht, ein Skript senden. Die Seite richtet sich an Ingenieure, die das Paket schon haben; Inkscape braucht keine Brücke. Andernfalls beginnen Sie mit der Installation.
Konfiguration und Token anlegen
Führen Sie den Befehl einmal als Ihr eigener Benutzer aus:
libremodular-mcp init
Er gibt für jedes Verzeichnis und jede Datei, die er anlegt, eine Zeile aus; diese Seite schreibt $HOME für den Anfang jedes Pfads:
directory ready: $HOME/.config/libremodular-mcp
directory ready: $HOME/.local/state/libremodular-mcp
configuration created: $HOME/.config/libremodular-mcp/config.toml
token created: $HOME/.config/libremodular-mcp/token
Beide Dateien haben den Modus 600. Bei einem zweiten Lauf lässt init sie unverändert und meldet configuration exists, unchanged und token exists, unchanged.
Inkscape aktivieren
Nach init ist jede Anwendung deaktiviert. Dieser Befehl aktiviert Inkscape:
sed -i '/^\[apps.inkscape\]/,/^$/ s/enabled = false/enabled = true/' ~/.config/libremodular-mcp/config.toml
Der Eintrag in config.toml lautet danach:
[apps.inkscape]
enabled = true
mode = "cli"
Inkscape 1.4 ist die Version, gegen die diese Seite gelaufen ist. Im Modus cli startet der Hub pro Skript einen Python-Prozess, es gibt also keine Brücke zu starten. GIMP, Krita, Blender und LibreOffice erreicht man über eine Brücke, die Sie von Hand starten; die Befehle stehen im jeweiligen Leitfaden: GIMP, Krita, Blender und LibreOffice.
Den Hub im MCP-Client eintragen
Der Client führt den Hub als Befehl mit dem Argument serve aus. Mit dem Paket lautet der Befehl /usr/bin/libremodular-mcp; aus den Quellen gebaut, ist es der absolute Pfad von target/release/libremodular-mcp in Ihrem Klon.
{
"mcpServers": {
"libremodular": {
"command": "/usr/bin/libremodular-mcp",
"args": ["serve"]
}
}
}
Der Hub braucht die Variable XDG_RUNTIME_DIR, die eine Desktop-Sitzung setzt. Ohne sie bricht libremodular-mcp serve sofort ab mit error: XDG_RUNTIME_DIR is not set; refusing to write volatile files elsewhere.
Ihr Modell anbinden gibt diesen Eintrag für Claude Code und für opencode an, jeweils im Client ausprobiert, mit der Antwort auf get_state, die der Client erhalten hat.
Den ersten Aufruf machen
Der Leitfaden für das Modell macht get_state für hub zum ersten Aufruf: Er listet die Anwendungen auf, die der Hub erreichen kann. Bitten Sie Ihr Modell, ihn auszuführen, oder führen Sie den Client der Demonstration aus, dessen erste Antwort diese ist:
{
"app": "hub",
"app_version": "0.1.0",
"bridge_version": null,
"captured_at": "2026-10-21T07:57:39.858Z",
"connected": true,
"content_origin": "hub",
"screenshot": null,
"state": {
"modules": [
{
"app_version": "1.4",
"bridge_version": null,
"connected": true,
"mode": "cli",
"name": "inkscape"
}
]
},
"warnings": []
}inkscape ist im Modus cli verbunden, und sein app_version ist 1.4. Der Hub stellt zwei Werkzeuge bereit und keines mehr: Ein Client, der nach der Liste der Werkzeuge fragt, erhält ["execute_script", "get_state"].
Das erste Skript senden
Ein Modell sendet über execute_script ein Skript wie dieses. Um es selbst zu senden, speichern Sie es als first.py, speichern den Client der Demonstration als client.py und führen python3 client.py first.py aus.
import json
print("the script ran inside Inkscape's Python")
print("LMM_RESULT: " + json.dumps({"answer": 6 * 7}))Die dritte Antwort des Clients ist die Antwort des Hubs auf das Skript:
{
"app": "inkscape",
"duration_ms": 30,
"error": null,
"result": {
"answer": 42
},
"status": "ok",
"stderr": "",
"stdout": "the script ran inside Inkscape's Python\n",
"truncated": false
}stdout ist, was das Skript ausgegeben hat, result ist der Wert nach LMM_RESULT: , und status ist ok. Der Leitfaden für das Modell listet die übrigen Status (error, refused, timeout, busy und unavailable) und den Umgang mit jedem auf: Leitfaden für das Modell. Ein Skript, das zeichnet, und das Bild, das es erzeugt hat, stehen auf der Seite der Demonstration.