munin/internal/hilfe/seiten/mcp-einrichten.md

128 lines
3.9 KiB
Markdown

Über **MCP** (Model Context Protocol) greifen KI-Werkzeuge auf Munin zu. Die
Einrichtung dauert wenige Minuten.
## 1. Einen Key besorgen
Du brauchst einen eigenen API-Key für das Projekt. Wer im Projekt die Rolle
`admin` hat, legt ihn unter *Zugänge* an. Bitte um einen **eigenen Key je
Werkzeug**, zum Beispiel `anna-claude-code` und `anna-cline`. Dann steht im
Protokoll, welches Werkzeug was geschrieben hat.
Der Key wird nur ein einziges Mal angezeigt. Direkt darunter stehen die
fertigen Konfigurationsblöcke mit dem Key schon eingesetzt.
## 2. Das Werkzeug einrichten
Alle Werkzeuge sprechen denselben Endpunkt an:
```
{{SERVER}}/mcp
```
Der Key legt fest, welches Projekt du siehst. Weitere Angaben braucht es nicht.
Wer mit mehreren Projekten arbeitet, trägt mehrere Server ein, jeden mit
seinem eigenen Key.
> **Achtung:** Die drei Werkzeuge verwenden unterschiedliche Schreibweisen.
> Ein aus Claude Code kopierter Block funktioniert in Cline nicht.
| Werkzeug | Datei | Abschnitt | `type` |
|---|---|---|---|
| Claude Code | `.mcp.json` oder `~/.claude.json` | `mcpServers` | `http` |
| Cline | `cline_mcp_settings.json` | `mcpServers` | `streamableHttp` |
| OpenCode | `opencode.json` | `mcp` | `remote` |
### Claude Code
Am schnellsten auf der Kommandozeile:
```bash
claude mcp add --transport http munin-{{PROJEKT}} {{SERVER}}/mcp \
--header "Authorization: Bearer wk_DEIN_KEY"
```
Mit `--scope user` gilt der Eintrag in allen Verzeichnissen, sonst nur im
aktuellen.
Soll die Einrichtung für das ganze Team ins Repository, dann als `.mcp.json`
**ohne** den Key im Klartext. Jede Person setzt die Umgebungsvariable
`MUNIN_KEY` auf ihren eigenen Key:
```json
{
"mcpServers": {
"munin-{{PROJEKT}}": {
"type": "http",
"url": "{{SERVER}}/mcp",
"headers": { "Authorization": "Bearer ${MUNIN_KEY}" }
}
}
}
```
### Cline
In Cline: *MCP Servers* → *Configure* → *Configure MCP Servers*.
```json
{
"mcpServers": {
"munin-{{PROJEKT}}": {
"type": "streamableHttp",
"url": "{{SERVER}}/mcp",
"headers": { "Authorization": "Bearer wk_DEIN_KEY" },
"disabled": false,
"autoApprove": ["recall", "get", "list", "related"]
}
}
}
```
`autoApprove` nennt die Werkzeuge, die ohne Rückfrage laufen dürfen. Die vier
lesenden gehören hinein, sonst muss jede Suche einzeln bestätigt werden.
`remember` und `forget` gehören **nicht** hinein, denn sie verändern das
gemeinsame Wissen.
### OpenCode
In `opencode.json` im Projektverzeichnis oder global unter
`~/.config/opencode/opencode.json`:
```json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"munin-{{PROJEKT}}": {
"type": "remote",
"url": "{{SERVER}}/mcp",
"enabled": true,
"headers": { "Authorization": "Bearer {env:MUNIN_KEY}" }
}
}
}
```
`{env:MUNIN_KEY}` liest den Key aus der Umgebung.
## 3. Prüfen, ob es geht
Das Werkzeug sollte sechs Munin-Werkzeuge anbieten: `recall`, `get`, `list`,
`related`, `remember` und `forget`. Ein einfacher Test:
```
Rufe list auf und sag mir, welche Schlagworte es im Munin gibt.
```
## Wenn es nicht klappt
| Anzeichen | Wahrscheinliche Ursache |
|---|---|
| Fehler `401` | Key falsch, unvollständig kopiert oder zurückgezogen. Bei OpenCode: Die Umgebungsvariable ist nicht gesetzt, dann wird sie zu einem leeren Text. |
| Werkzeug zeigt keine Munin-Werkzeuge | Falscher `type` für dieses Werkzeug (siehe Tabelle oben) oder Tippfehler in der Adresse. |
| Schreiben schlägt fehl, Lesen geht | Der Key hat nur die Rolle `read`. |
| Meldung über ein erschöpftes Schreibbudget | Das Projekt hat seine Obergrenze an Schreibvorgängen je Stunde erreicht. Das deutet meist auf einen Agenten in einer Schleife hin. Siehe [Zugänge und Sicherheit](/hilfe/zugaenge). |
Wenn die Verbindung steht, geht es mit
[Mit Agenten arbeiten](/hilfe/mit-agenten-arbeiten) weiter. Ohne eine kurze
Anweisung in `AGENTS.md` oder `CLAUDE.md` benutzt ein Agent das Gedächtnis
selten von selbst.