# BUBU Brain — Technische Referenz

https://bubu-brain.com/static/BUBU_BRAIN_TechDocs_DE_v2.3.html

MCP: POST https://bubu-brain.com/mcp
X-API-Key: DEIN_API_KEY

```sh
export BUBU_API_KEY='DEIN_API_KEY'
```

## bubu_health
Betriebsstatus des Memory-Service abrufen.

Liest den Betriebsstatus. arguments bleibt ein leeres Objekt.

Keine Eingabefelder. Verwende arguments: {}.

```json
{
  "jsonrpc": "2.0",
  "id": 10,
  "method": "tools/call",
  "params": {
    "name": "bubu_health",
    "arguments": {}
  }
}
```

```sh
curl --request POST \
  --url https://bubu-brain.com/mcp \
  --header "Content-Type: application/json" \
  --header "Accept: application/json, text/event-stream" \
  --header "X-API-Key: $BUBU_API_KEY" \
  --data-binary '{
  "jsonrpc": "2.0",
  "id": 10,
  "method": "tools/call",
  "params": {
    "name": "bubu_health",
    "arguments": {}
  }
}'
```

## bubu_stats
Sessions und Nachrichten im aktiven Memory-Fenster zählen.

Liest die Statistik. arguments bleibt ein leeres Objekt.

Keine Eingabefelder. Verwende arguments: {}.

```json
{
  "jsonrpc": "2.0",
  "id": 11,
  "method": "tools/call",
  "params": {
    "name": "bubu_stats",
    "arguments": {}
  }
}
```

```sh
curl --request POST \
  --url https://bubu-brain.com/mcp \
  --header "Content-Type: application/json" \
  --header "Accept: application/json, text/event-stream" \
  --header "X-API-Key: $BUBU_API_KEY" \
  --data-binary '{
  "jsonrpc": "2.0",
  "id": 11,
  "method": "tools/call",
  "params": {
    "name": "bubu_stats",
    "arguments": {}
  }
}'
```

## bubu_recall
Gespeicherte Beiträge über eine Keyword-Suche abrufen.

Sucht nach den angegebenen Keywords. limit und offset steuern die Seite; window begrenzt das Zeitfenster. Übernimm für spätere Eintragsaufrufe die id=… aus einem Treffer, nicht seine Listennummer.

Für die Suche entweder window oder from/to verwenden. Eine Timeline entsteht, indem dein Agent die abgerufenen Beiträge nach ihrem Zeitpunkt ordnet. Erfasst werden dabei die tatsächlich abgerufenen Beiträge.

```json
{
  "jsonrpc": "2.0",
  "id": 12,
  "method": "tools/call",
  "params": {
    "name": "bubu_recall",
    "arguments": {
      "query": "Projekt Atlas Budget",
      "limit": 5,
      "offset": 0,
      "window": "30d"
    }
  }
}
```

```sh
curl --request POST \
  --url https://bubu-brain.com/mcp \
  --header "Content-Type: application/json" \
  --header "Accept: application/json, text/event-stream" \
  --header "X-API-Key: $BUBU_API_KEY" \
  --data-binary '{
  "jsonrpc": "2.0",
  "id": 12,
  "method": "tools/call",
  "params": {
    "name": "bubu_recall",
    "arguments": {
      "query": "Projekt Atlas Budget",
      "limit": 5,
      "offset": 0,
      "window": "30d"
    }
  }
}'
```

## bubu_write
Eine eigenständige Notiz speichern; Gesprächsbeiträge gehören in bubu_ingest_turn.

Schreibt eine eigenständige Notiz. Verwende für Gesprächsbeiträge bubu_ingest_turn. Vergib für einen neuen Schreibvorgang einen eigenen idempotency_key; bei einem Retry desselben Vorgangs bleibt er gleich.

```json
{
  "jsonrpc": "2.0",
  "id": 13,
  "method": "tools/call",
  "params": {
    "name": "bubu_write",
    "arguments": {
      "content": "Projekt Atlas: Das Budget beträgt 12.000 EUR.",
      "type": "note",
      "idempotency_key": "atlas-budget-notiz-001"
    }
  }
}
```

```sh
curl --request POST \
  --url https://bubu-brain.com/mcp \
  --header "Content-Type: application/json" \
  --header "Accept: application/json, text/event-stream" \
  --header "X-API-Key: $BUBU_API_KEY" \
  --data-binary '{
  "jsonrpc": "2.0",
  "id": 13,
  "method": "tools/call",
  "params": {
    "name": "bubu_write",
    "arguments": {
      "content": "Projekt Atlas: Das Budget beträgt 12.000 EUR.",
      "type": "note",
      "idempotency_key": "atlas-budget-notiz-001"
    }
  }
}'
```

## bubu_ingest_turn
Einen Gesprächsbeitrag mit Session- und Turn-ID speichern.

Schreibt einen vollständigen Gesprächsbeitrag. Verwende pro Konversation eine eigene session_id und pro Beitrag eine eigene turn_id. Bei einem Retry bleiben IDs und Inhalt unverändert. Das Beispiel speichert einen einzelnen User-Beitrag.

```json
{
  "jsonrpc": "2.0",
  "id": 14,
  "method": "tools/call",
  "params": {
    "name": "bubu_ingest_turn",
    "arguments": {
      "session_id": "atlas-gespraech-001",
      "turn_id": "atlas-gespraech-001-user-001",
      "role": "user",
      "content": "Für Projekt Atlas bleibt das Budget bei 12.000 EUR."
    }
  }
}
```

```sh
curl --request POST \
  --url https://bubu-brain.com/mcp \
  --header "Content-Type: application/json" \
  --header "Accept: application/json, text/event-stream" \
  --header "X-API-Key: $BUBU_API_KEY" \
  --data-binary '{
  "jsonrpc": "2.0",
  "id": 14,
  "method": "tools/call",
  "params": {
    "name": "bubu_ingest_turn",
    "arguments": {
      "session_id": "atlas-gespraech-001",
      "turn_id": "atlas-gespraech-001-user-001",
      "role": "user",
      "content": "Für Projekt Atlas bleibt das Budget bei 12.000 EUR."
    }
  }
}'
```

## bubu_verify
Eine Integritätsprüfung anfordern.

Ohne Eingaben wird der aktuelle Integritätsfingerprint angefordert. Für einen einzelnen Eintrag nutze entry_id; alternativ sessionId zusammen mit timestamp. Die beiden Adressierungsarten nicht kombinieren.

```json
{
  "jsonrpc": "2.0",
  "id": 15,
  "method": "tools/call",
  "params": {
    "name": "bubu_verify",
    "arguments": {}
  }
}
```

```sh
curl --request POST \
  --url https://bubu-brain.com/mcp \
  --header "Content-Type: application/json" \
  --header "Accept: application/json, text/event-stream" \
  --header "X-API-Key: $BUBU_API_KEY" \
  --data-binary '{
  "jsonrpc": "2.0",
  "id": 15,
  "method": "tools/call",
  "params": {
    "name": "bubu_verify",
    "arguments": {}
  }
}'
```

## bubu_correct
Den Inhalt eines gespeicherten Eintrags berichtigen.

Ändert die ausgelieferte Fassung eines vorhandenen Eintrags. Ersetze <ENTRY_ID> durch die 64-stellige hexadezimale id=… eines Recall-Treffers. Lege den bisherigen und den vollständigen neuen Text vor dem Aufruf zur Bestätigung vor. content ist der vollständige Ersatztext.

Vor einer Berichtigung den bisherigen Text, die Entry-ID und den vollständigen Ersatztext zur Bestätigung vorlegen.

```json
{
  "jsonrpc": "2.0",
  "id": 16,
  "method": "tools/call",
  "params": {
    "name": "bubu_correct",
    "arguments": {
      "entry_id": "<ENTRY_ID>",
      "content": "Projekt Atlas: Das freigegebene Budget beträgt 13.000 EUR.",
      "reason": "Korrektur der Budgetangabe"
    }
  }
}
```

```sh
curl --request POST \
  --url https://bubu-brain.com/mcp \
  --header "Content-Type: application/json" \
  --header "Accept: application/json, text/event-stream" \
  --header "X-API-Key: $BUBU_API_KEY" \
  --data-binary '{
  "jsonrpc": "2.0",
  "id": 16,
  "method": "tools/call",
  "params": {
    "name": "bubu_correct",
    "arguments": {
      "entry_id": "<ENTRY_ID>",
      "content": "Projekt Atlas: Das freigegebene Budget beträgt 13.000 EUR.",
      "reason": "Korrektur der Budgetangabe"
    }
  }
}'
```

## bubu_list_consents
Consent und effektive Berechtigungen der Verbindung anzeigen.

Liest die Zustimmungen des KI-Gedächtnisses und die effektiven Rechte der Verbindung. arguments bleibt ein leeres Objekt.

Keine Eingabefelder. Verwende arguments: {}.

```json
{
  "jsonrpc": "2.0",
  "id": 17,
  "method": "tools/call",
  "params": {
    "name": "bubu_list_consents",
    "arguments": {}
  }
}
```

```sh
curl --request POST \
  --url https://bubu-brain.com/mcp \
  --header "Content-Type: application/json" \
  --header "Accept: application/json, text/event-stream" \
  --header "X-API-Key: $BUBU_API_KEY" \
  --data-binary '{
  "jsonrpc": "2.0",
  "id": 17,
  "method": "tools/call",
  "params": {
    "name": "bubu_list_consents",
    "arguments": {}
  }
}'
```

## Persönliche Regeln

Nutze BUBU Brain als Gesprächsgedächtnis in jedem Chat.

• Rufe zu Chatbeginn und bei Rückbezügen den passenden gespeicherten Kontext mit bubu_recall ab.
• Speichere jede zugängliche Nutzernachricht und jede eigene sichtbare Antwort vollständig und wortgetreu mit bubu_ingest_turn. Keine Zusammenfassung und kein Relevanzfilter.
• Vergib eindeutige IDs pro Chat und Beitrag. Behalte sie bei Wiederholungen derselben Speicherung unverändert bei.
• Speichere keine Passwörter, Tokens, API-Keys, leeren Nachrichten oder internen System- und Laufzeitinhalte.
• Trenne abgerufenen Originalwortlaut von deinen Schlussfolgerungen. Erfinde keine Erinnerungen. Zeige bei Verlaufsfragen Quellen und zeitliche Reihenfolge.
• Berichtige gespeicherte Einträge nur nach meiner ausdrücklichen Bestätigung.
• Melde fehlende Tools sowie Abruf- oder Speicherfehler offen. Bestätige eine Speicherung erst nach erfolgreicher Tool-Rückmeldung.
