API-Referenz
11 MCP-Tools, erreichbar über JSON-RPC 2.0 auf /mcp.
Auth per Authorization: Bearer API_KEY.
Transport
Alle Aufrufe sind JSON-RPC 2.0 per POST:
POST /mcp
Content-Type: application/json
Authorization: Bearer mk_...
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "TOOL_NAME",
"arguments": { ... }
}
}memory_store
Speichert Content. Fuehrt die Extraction-Pipeline aus: LLM-Extraktion → Confidence-Routing → Embedding → Verschlüsselung.
Input
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| content | string | ja | Der zu speichernde Text |
| category | string | nein | Kategorie (z.B. "termin", "todo") |
| scope_type | string | nein | Scope: "personal", "area", "org" |
| scope_id | string | nein | Scope-ID |
| source | string | nein | Herkunft (steuert Extraction): todoist, ical, claude-code-session |
| source_category | string | nein | Ingest-Kategorie (z.B. "confluence", "rss") — wird nicht vom LLM ueberschrieben |
| source_batch_id | string | nein | Batch-ID um zusammengehoerige Memories zu gruppieren |
| target_tenant | string | nein | Nur bei Super-Key: Ziel-Vault fuer Routing (Tenant-ID) |
| async | boolean | nein | Fire-and-forget, gibt Job-ID zurueck |
Output
{
"stored": [...], // Direkt gespeichert (Confidence ≥ 0.85)
"drafts": [...], // Als Draft zur Prüfung (0.4-0.84)
"pm_matches": [...], // Ausgeloeste Prospective-Memory-Ziele
"conflicts": [...] // Erkannte Konflikte
}memory_retrieve
Sucht Memories per Hybrid-Retrieval. Drei Modi: Relevanz (Default), chronologisch, Profile.
Input
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| query | string | bei relevance | Suchanfrage |
| sort_by | string | nein | "relevance" | "created_at" | "profiles" |
| since | string | nein | ISO 8601 Timestamp-Filter |
| category | string | nein | Kategorie-Filter |
| entity_type | string | nein | Entity-Typ-Filter (filtert ueber das entities Array) |
| entity_id | string | nein | Entity-ID-Filter (filtert ueber das entities Array) |
| limit | number | nein | Max Ergebnisse (Default: 20) |
Output
{
"memories": [
{
"id": "...",
"content": "...",
"entities": [ // Multi-Entity Support
{ "type": "person", "id": "lisa-mueller" },
{ "type": "projekt", "id": "q3-relaunch" }
],
"entity_type": "person", // Deprecated (erster Entity)
"entity_id": "lisa-mueller",
...
}
],
"semantic_profiles": [...], // Verdichtete Entity-Profile
"context_tokens": 1234 // Token-Verbrauch
} Jede Memory enthaelt ein entities Array mit allen verknuepften Entitaeten ([{type, id}]).
Ein Fakt kann mehrere Entitaeten haben, z.B. eine Entscheidung die mehrere Personen oder Projekte betrifft.
Die Felder entity_type und entity_id sind weiterhin vorhanden (Backwards Compatibility), enthalten aber nur die erste Entitaet.
memory_draft_review
Prüft Drafts: akzeptieren, ablehnen oder bearbeiten. Die Engine lernt aus Entscheidungen (Confidence-Kalibrierung).
Input
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| action | string | ja | "accept" | "reject" | "edit" | "list" |
| draft_id | string | bei accept/reject/edit | UUID des Drafts |
| edited_content | string | bei edit | Korrigierter Inhalt |
memory_set_goal
Erstellt eine zukunftsgerichtete Erinnerung. Zeitbasiert (Deadline) oder eventbasiert (Trigger-Bedingung).
Input
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| description | string | ja | Was erinnert werden soll |
| type | string | ja | "time_based" | "event_based" |
| deadline | string | bei time_based | ISO 8601 Deadline |
| trigger_condition | string | bei event_based | Natuerlichsprachliche Trigger-Bedingung |
memory_briefing
Generiert ein LLM-Briefing aus aktiven Memories, Drafts und ausgeloesten Goals.
Input
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| scope_type | string | nein | Scope-Filter |
| scope_id | string | nein | Scope-ID-Filter |
Weitere Tools
memory_store_status
Status eines async Ingest-Jobs abfragen. Input: job_id. Output: status (queued/processing/done/failed) + result.
memory_annotate
Annotation zu einem bestehenden Memory hinzufuegen. Input: memory_id, content.
memory_consolidate
Konsolidierung ausloesen: clustert episodische Fakten zu semantischen Profilen.
check_prospective
Faellige Prospective-Memory-Ziele pruefen.
manage_memory
Memories verwalten: pin/unpin/archive/update_importance.
get_status
Vault-Status: Anzahl Memories, Drafts, Profile, letzte Aktivitaet.
Dynamische Tool-Descriptions
Die Engine generiert Tool-Descriptions dynamisch aus der Domain-Config deines Vaults. Statt generischer Beschreibungen sieht das LLM die konkreten Categories, Entity-Types und verfuegbaren Vaults.
Single-Vault Key
Die Descriptions von memory_store und memory_retrieve enthalten die Categories und Entity-Types aus deiner Domain-Config. Das LLM weiss genau welche Kategorien verfuegbar sind.
Super-Key (Supervault)
Bei Super-Keys zeigt memory_store zusaetzlich ein target_tenant Enum
mit allen Vaults der Gruppe und ihren Category-Beschreibungen. Das LLM routet Inhalte selbststaendig zum richtigen Vault — ohne Extra-API-Call, ohne Latenz.
Die Descriptions werden bei jedem tools/list Request frisch generiert (5-Min-Cache). Aenderungen an der Domain-Config sind automatisch sichtbar.
memory_link
Verknuepft zwei Memories mit einer typisierten Relation. Erstellt persistente Graph-Verbindungen fuer Kausalketten, Widersprueche oder thematische Links.
| Parameter | Typ | Beschreibung |
|---|---|---|
| source_id | string | Quell-Memory ID |
| target_id | string | Ziel-Memory ID |
| relation_type | enum | caused_by, contradicts, relates_to |
| metadata | object? | Optionale Begruendung |
memory_replay
Zeitreise: zeigt den Wissensstand deines Vaults zu einem beliebigen Zeitpunkt. Inkludiert Fakten die spaeter archiviert wurden wenn sie zum angefragten Zeitpunkt noch aktiv waren.
| Parameter | Typ | Beschreibung |
|---|---|---|
| timestamp | string | ISO 8601 Zeitpunkt (Pflichtfeld) |
| query | string? | Optionale Suche auf zeitgefiltertem Bestand |
| category | string? | Kategorie-Filter |
| entity_type | string? | Entity-Typ Filter (filtert ueber das entities Array) |
| limit | number? | Max Ergebnisse (Default: 50) |
Response-Format identisch zu memory_retrieve. Semantic Profiles zeigen den aktuellen Stand, nicht den historischen.
memory_retrieve: Graph-Modus
Mit sort_by: 'graph' traversiert memory_retrieve den Relationen-Graph ab einer Start-Memory.
| Parameter | Typ | Beschreibung |
|---|---|---|
| sort_by | 'graph' | Aktiviert Graph-Traversal |
| start_memory_id | string | Startpunkt der Traversierung (Pflichtfeld) |
| relation_types | string[]? | Filter auf bestimmte Relationstypen |
| max_depth | number? | Traversierungstiefe 1-5 (Default: 3) |
Response enthaelt zusaetzlich ein relations Array mit source_id, target_id, type, confidence, created_by und depth.
Bidirektionale Traversierung fuer symmetrische Relationen (contradicts, relates_to).