# Ihr Modell anbinden

Ein Modell erreicht den Hub über einen MCP-Client. Diese Seite gibt den Konfigurationseintrag für Claude Code und für opencode an, jeweils im Client selbst ausprobiert, und die Antwort, die jeder Client von `get_state` für `hub` erhalten hat. Sie richtet sich an Ingenieure, die den Hub bereits installiert haben.

*Ein Funke, dessen Strahlen Zeilen der Konfigurationseinträge auf dieser Seite sind.*


## Vor dem Eintrag

Der Hub ist installiert, `libremodular-mcp init` wurde ausgeführt und Inkscape ist aktiviert, wie im [Schnellstart](https://libremodular.davalan.fr/de/quickstart/index.md). Ein Client führt den Hub als Befehl mit dem Argument `serve` aus, und der Hub braucht die Variable `XDG_RUNTIME_DIR`, die eine Desktop-Sitzung setzt.

Die Einträge unten nennen `/usr/bin/libremodular-mcp`, den Pfad des Pakets. Die Versuche haben den aus den Quellen gebauten Hub ausgeführt, ihr `command` war also der absolute Pfad von `target/release/libremodular-mcp` im Klon; der Rest jedes Eintrags ist so, wie er hier steht.

## Mit Claude Code

Claude Code liest die Server eines Projekts aus `.mcp.json` im Wurzelverzeichnis des Projekts. Tragen Sie dort diesen Eintrag ein:

```json
{
  "mcpServers": {
    "libremodular": {
      "command": "/usr/bin/libremodular-mcp",
      "args": ["serve"]
    }
  }
}
```

Der Befehl `claude mcp add --scope project libremodular -- /usr/bin/libremodular-mcp serve` schreibt denselben Eintrag, ergänzt um `"type": "stdio"` und `"env": {}`. Claude Code listet die beiden Werkzeuge des Hubs als `mcp__libremodular__get_state` und `mcp__libremodular__execute_script`.

Das Modell war Claude Haiku 5.5, gestartet mit `claude -p` auf diesem Eintrag und mit dieser Anfrage:

```text
Call the get_state tool of the libremodular MCP server with target_app set to "hub", then copy its JSON answer as it is.
```


Claude Code rief `mcp__libremodular__get_state` mit `{"target_app": "hub"}` auf, und die Antwort des Hubs kam so bei ihm an:

**Antwort des Hubs**

```json
{
  "app": "hub",
  "app_version": "0.1.0",
  "bridge_version": null,
  "captured_at": "2026-10-28T14:50:40.403Z",
  "connected": true,
  "content_origin": "hub",
  "screenshot": null,
  "state": {
    "modules": [
      {
        "app_version": "1.4",
        "bridge_version": null,
        "connected": true,
        "mode": "cli",
        "name": "inkscape"
      }
    ]
  },
  "warnings": []
}
```


Die Antwort listet Inkscape, die einzige aktivierte Anwendung, als verbunden im Modus `cli`.

## Mit opencode

opencode liest `opencode.json` im Projektverzeichnis. Der Befehl `opencode mcp add libremodular -- /usr/bin/libremodular-mcp serve`, in diesem Verzeichnis ausgeführt, schreibt diese Datei:

```json
{
  "mcp": {
    "servers": {
      "libremodular": {
        "type": "local",
        "command": [
          "/usr/bin/libremodular-mcp",
          "serve"
        ]
      }
    }
  }
}
```

opencode gibt seinem Modell nicht je MCP-Werkzeug ein eigenes Werkzeug: Das Modell schreibt JavaScript für sein Werkzeug `execute`, und die Werkzeuge des Hubs sind als `tools['libremodular']` erreichbar. Das Modell war Llama 3.1 8B, lokal von Ollama bereitgestellt und gestartet mit `opencode run --standalone --auto --model ollama/llama3.1:8b-instruct-q5_K_M` auf diese Anfrage:

```text
Use your execute tool to call the get_state tool of the libremodular MCP server with target_app set to "hub", then copy its JSON answer as it is.
```


Das Modell schrieb diesen Aufruf:

**Geschriebenes Skript**

```javascript
tools['libremodular'].get_state({target_app: "hub"})
```


und opencode gab die Antwort des Hubs zurück:

**Antwort des Hubs**

```json
{
  "app": "hub",
  "app_version": "0.1.0",
  "bridge_version": null,
  "captured_at": "2026-10-28T14:51:18.715Z",
  "connected": true,
  "content_origin": "hub",
  "screenshot": null,
  "state": {
    "modules": [
      {
        "app_version": "1.4",
        "bridge_version": null,
        "connected": true,
        "mode": "cli",
        "name": "inkscape"
      }
    ]
  },
  "warnings": []
}
```


> **Grenze**
>
> Ein Modell hat geantwortet, sobald die Anfrage das Werkzeug `execute` nannte. Eine Anfrage, die es nicht nannte, brachte die Antwort des Hubs nicht zurück; `qwen2.5-coder:14b`, ebenfalls lokal, schrieb den Aufruf als Text und führte nichts aus; die gehosteten kostenlosen Modelle von opencode hatten ihr Nutzungslimit erreicht. `opencode mcp list` zeigt keinen Server, obwohl `opencode run` den Hub erreicht: Die Antwort von `get_state` ist die Prüfung.


## Dem Modell seinen Leitfaden geben

Der [Leitfaden für das Modell](https://github.com/RonanDavalan/LibreModular-MCP/blob/main/docs/GUIDE_LLM.md) hat sechs Schritte. Der erste ist der oben gemachte Aufruf: `get_state` für `hub`, der die Anwendungen auflistet, die das Modell nutzen darf, und angibt, welche verbunden sind. Ein Client, der das Anhängen einer Datei erlaubt, nimmt den Leitfaden als Anhang.

## Andere Clients

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

