knowmind stellt 15 MCP-Werkzeuge über JSON-RPC 2.0 unter https://knowmind.de/api/mcp/v1 bereit. Diese Referenz dokumentiert jede Signatur, jeden Parameter, das Rückgabe-Schema, ein vollständiges Beispiel und die typischen Fehlerfälle. MCP-Protokoll-Version: 2025-06-18.
Allgemeines
Endpunkt:POST https://knowmind.de/api/mcp/v1
Authentifizierung: Authorization: Bearer kmt_…
Inhalt: JSON-RPC-2.0-Request mit method: "tools/call" und Parametern in params.arguments.
Antwort-Format: JSON-RPC-Response. Bei Accept: text/event-stream liefert der Endpunkt Streamable-HTTP-Frames (SSE) — für native Custom-Connectoren in Claude.ai und ChatGPT.
Scope-Modell: read genügt für Recall- und List-Werkzeuge; write für Anlage und Pflege; admin für Tarif-relevante Aktionen. Scopes werden serverseitig pro Tool-Call geprüft.
Tenant-Isolation: Ein Token gehört genau zu einem Arbeitsbereich. Für die abgefragten Inhalte prüft die Datenbank bei jeder Abfrage, zu welchem Arbeitsbereich eine Zeile gehört.
knowmind_recall
Scope: readseit 0.3.0
Hybrid-Recall gegen den Wissenskorpus Ihres Arbeitsbereichs. Kombiniert Volltext (BM25 mit deutschem Analyzer), Vektor (multilingual-e5-large, 1024 Dimensionen) und eine Suche im Wissensgraphen. Cross-Encoder-Rerank für die Top-Treffer. Die Antwort beginnt mit dem Feld kein_belastbarer_treffer. Steht es auf true, hat der Bestand auf die Frage sehr wahrscheinlich keine Antwort; ein englischer Text im Feld hinweis sagt das, die Treffer kommen trotzdem mit. Das Kennzeichen ist eine Schätzung aus Rerank-Wert und Begriffsabdeckung, kein Beweis.
Parameter
Name
Typ
Pflicht
Default
Hinweis
query
string
ja
—
Natürlichsprachliche Frage
k
integer
nein
5
Anzahl Treffer (1 bis 25)
hops
integer
nein
2
Wird angenommen (0 bis 3) und wirkt derzeit nicht auf den Abruf.
Beispiel — Anfrage
json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "knowmind_recall",
"arguments": {
"query": "Wer ist Ansprechpartnerin für die Einarbeitung?",
"k": 5,
"hops": 2
}
}
}
Beispiel — Antwort
json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"kein_belastbarer_treffer": false,
"hits": [
{
"memory_id": "memory_einarbeitung_2026_03",
"title": "Einarbeitungs-Verantwortliche Q2 2026",
"content": "Anna Müller ist Ansprechpartnerin für die Einarbeitung neuer Service-Mitarbeitender, vertreten durch Tomasz Kowalski.",
"score": 0.93,
"source": "internal-handbook-v3"
}
],
"elapsed_ms": 187
}
}
Fehlerfälle
Code
Bedeutung
-32602
Invalid params (query fehlt oder leer)
-32000
Service-Token unconfigured oder Anbieter-Fehler
401
Bearer-Token fehlt oder ungültig
-32004
Fragegrenze erreicht — Wartezeit steht in message
knowmind_recall_at_time
Scope: readseit 0.3.0
Punkt-in-Zeit-Recall (bi-temporal). Liefert ausschließlich Erinnerungen, die zum angegebenen Zeitpunkt gültig waren — also valid_from kleiner-gleich as_of und (valid_to größer as_of oder valid_to ungesetzt). Geeignet für die Frage „Was wusste der Wissensspeicher am 14. März?“. Auch hier steht kein_belastbarer_treffer vorn, beurteilt an den Treffern, die zum Stichtag as_of sichtbar sind.
Parameter
Name
Typ
Pflicht
Default
Hinweis
query
string
ja
—
Natürlichsprachliche Frage
as_of
string (ISO 8601)
nein
now
Zeitpunkt der Gültigkeit, z. B. 2026-03-14T00:00:00Z
Listet Beziehungen, die auf eine Entscheidung warten: aus Text erschlossene (Grund inferred_from_text) und solche, die von einem Dokument ausgehen, obwohl ihre Art eine Person, Organisation oder Ähnliches verlangt (Grund starts_from_document). Pro Beziehung: edge_id, Typ, Zustand (open, confirmed, rejected), Grund, beide Einträge, die Herkunft (source, etwa die Extraktion) und der belegende Eintrag (evidence); dazu die Zahl je Zustand. Offene Beziehungen fließen erst nach der Bestätigung in Ableitungsregeln ein.
Parameter
Name
Typ
Pflicht
Default
Hinweis
status
string
nein
—
open, confirmed oder rejected; ohne Angabe alle Zustände
Hält eine Entscheidung zu einer erschlossenen Beziehung fest. confirm: Die Beziehung fließt ab jetzt in Ableitungsregeln ein. reject: Die Beziehung, ihre Gegenrichtung und alle daraus abgeleiteten Beziehungen bekommen valid_to; gelöscht wird nichts. undo: nimmt eine Ablehnung zurück, samt Gegenrichtung und abgeleiteten Beziehungen. Liefert den Zustand vorher und nachher und die Zahl der betroffenen Gegenrichtungen und abgeleiteten Beziehungen.
Listet die zuletzt angelegten Dokumente und Erinnerungen des Arbeitsbereichs, sortiert nach Anlagedatum absteigend (created_at). Quelle ist der Dokument-Korpus — dieselbe Basis, die der Recall durchsucht. Graph-Entitäten ohne Zeitstempel erscheinen nicht; die Anzahl weicht darum bewusst von knowmind_stats (memories) ab.
Legt eine neue Erinnerung dauerhaft im Arbeitsbereich an: Postgres-Dokument, Vektor-Index und Graph-Knoten. Danach ist der Eintrag per knowmind_recall und knowmind_list_recent auffindbar. Append-only: Einträge gleichen Titels werden NICHT ersetzt — Versionierung übernimmt knowmind_update_fact. Sha-identischer Inhalt wird idempotent erkannt (Antwortfeld unchanged). Für längere Texte mit Upsert-per-Titel ist knowmind_upload_document das richtige Werkzeug.
content_required (content fehlt oder leer), too_large (Inhalt über 1.000.000 Zeichen), ingest_failed (Memory-Service-Fehler — nichts wird vorgetäuscht, der Eintrag bleibt als failed markiert)
401
Bearer-Token fehlt oder ungültig
knowmind_upload_document
Scope: writeseit 0.2.0
Ingestet einen längeren Text dauerhaft als Dokument. knowmind teilt den Text in Abschnitte, erzeugt pro Abschnitt einen Vektor und legt einen Graph-Knoten an. Upsert-per-Titel (Server-Default): Existiert im selben Bereich bereits ein Dokument gleichen Titels, löst die neue Version die alte ab. Die alte bleibt über knowmind_recall_at_time zu früheren Stichtagen abrufbar, gelöscht wird nichts; die abgelösten IDs stehen in replaced_document_ids. Steht derselbe Text schon in einem anderen gültigen Dokument desselben Bereichs, legt knowmind kein neues an; die Antwort nennt dessen ID in memory_id und trägt deduplicated.
Parameter
Name
Typ
Pflicht
Default
Hinweis
title
string
nein
—
Dokument-Titel
content
string
ja
—
Volltext des Dokuments
source
string
nein
—
Herkunftsangabe (URL, Pfad); entscheidet nicht, welches Dokument abgelöst wird
replace
boolean
nein
true
false legt ausdrücklich ein neues Dokument neben dem Dokument gleichen Titels an
content_required (content fehlt oder leer), too_large (Inhalt über 1.000.000 Zeichen), ingest_failed (Memory-Service-Fehler)
401
Bearer-Token fehlt oder ungültig
knowmind_update_fact
Scope: writeseit 0.3.0
Bitemporale Aktualisierung einer bestehenden Erinnerung: das Original bekommt valid_to gleich jetzt, eine neue Version mit valid_from gleich jetzt wird angelegt und per SUPERSEDES-Beziehung verknüpft. Damit bleibt die Historie prüfbar: Alte Aussagen bleiben erhalten und werden als überholt markiert.
Beendet einen Eintrag, der nicht mehr gilt und den nichts ersetzt, etwa nach dem Abschluss eines Projekts oder wenn eine Quelle zurückgezogen wurde. Der Eintrag bekommt valid_to und fällt aus knowmind_recall; knowmind_recall_at_time findet ihn zu einem früheren Zeitpunkt weiter. Gelöscht wird nichts, ein neuer Eintrag entsteht nicht. Ein zweiter Aufruf ändert nichts.
Parameter
Name
Typ
Pflicht
Default
Hinweis
target_id
string
ja
—
ID des Eintrags, aus knowmind_recall
valid_to
string
nein
—
Zeitpunkt mit Zeitzone, ab dem der Eintrag nicht mehr gilt; ohne Angabe jetzt
Eintrag ist schon durch eine neue Fassung abgelöst
knowmind_link
Scope: writeseit 0.3.0
Legt eine typisierte Beziehung zwischen zwei Erinnerungen an. Inverse-Beziehung wird automatisch materialisiert. Zulässige Edge-Typen siehe Referenz Beziehungstypen.
Parameter
Name
Typ
Pflicht
Default
Hinweis
from_id
string
ja
—
Memory-ID des Quell-Knotens
to_id
string
ja
—
Memory-ID des Ziel-Knotens
rel_type
string
ja
—
Edge-Typ in UPPER_SNAKE_CASE (z. B. OWNS, FOR_CLIENT, SUPERSEDES)
Legt den Knoten für ein Ding an, über das der Bestand spricht — eine Person, eine Organisation, eine Anwendung, einen Rechner, eine Technik — oder gibt den vorhandenen zurück. Gleicher Name, gleiche Klasse und gleicher Arbeitsbereich liefern immer dieselbe ID; ein zweiter Aufruf legt keine Dublette an. Verbunden wird der Knoten danach mit knowmind_link.
Parameter
Name
Typ
Pflicht
Default
Hinweis
name
string
ja
—
Eigenname, wie er in einem Dokument stünde. Keine Rolle, kein Status, keine Beschreibung.
entity_class
string
ja
—
Klasse aus dem Katalog (knowmind_schema → entityClasses), z. B. Person, Organization, Application, Host, Technology
Gibt den Beziehungskatalog des Arbeitsbereichs zurück: jede erlaubte Beziehung mit Subjekt- und Objektklasse und einer Erklärung, wann sie passt, dazu die Klassen für knowmind_entity. Vor knowmind_link aufrufen, damit die richtige Beziehung gewählt wird.