# Schnellstart

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](https://libremodular.davalan.fr/de/installation/index.md).

## Konfiguration und Token anlegen

Führen Sie den Befehl einmal als Ihr eigener Benutzer aus:

```sh
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:

```text
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:

```sh
sed -i '/^\[apps.inkscape\]/,/^$/ s/enabled = false/enabled = true/' ~/.config/libremodular-mcp/config.toml
```

Der Eintrag in `config.toml` lautet danach:

```toml
[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](https://github.com/RonanDavalan/LibreModular-MCP/blob/main/docs/modules/gimp.md), [Krita](https://github.com/RonanDavalan/LibreModular-MCP/blob/main/docs/modules/krita.md), [Blender](https://github.com/RonanDavalan/LibreModular-MCP/blob/main/docs/modules/blender.md) und [LibreOffice](https://github.com/RonanDavalan/LibreModular-MCP/blob/main/docs/modules/libreoffice.md).

## 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.

```json
{
  "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](https://libremodular.davalan.fr/de/clients/index.md) 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.

> **Grenze**
>
> Kein anderer MCP-Client wurde ausprobiert. In welche Datei der Eintrag gehört und wie seine Schlüssel heißen, hängt von Ihrem Client ab.


## 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:

**Antwort des Hubs**

```json
{
  "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](https://libremodular.davalan.fr/de/demonstration/index.md) als `client.py` und führen `python3 client.py first.py` aus.

**Geschriebenes Skript**

```python
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:

**Antwort des Hubs**

```json
{
  "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](https://github.com/RonanDavalan/LibreModular-MCP/blob/main/docs/GUIDE_LLM.md). Ein Skript, das zeichnet, und das Bild, das es erzeugt hat, stehen auf der Seite der [Demonstration](https://libremodular.davalan.fr/de/demonstration/index.md).

