MCP-Connector
Ueberblick
Nibomo betreibt einen entfernten MCP-Server (Model Context Protocol), damit MCP-Clients und KI-Agenten deine faelligen Karten lesen, sie Frage fuer Frage mit dir wiederholen und Karten sowie Decks fuer dich erstellen oder bearbeiten koennen.
Agenten koennen sich auf zwei Wegen verbinden: ueber diesen MCP-Server (am besten fuer MCP-Clients wie Claude oder Cursor) oder ueber die Discovery-URL der Agent-API fuer CLI-Agenten. Beide erreichen dieselbe Datenoberflaeche pro Nutzer; diese Seite behandelt den MCP-Server.
Verbinde dich damit unter:
https://mcp.nibomo.com/mcp
Der Transport ist Streamable HTTP, und der Server stellt sieben Tools bereit: zwei SQL-Tools ueber eine kleine, absichtlich eingeschraenkte SQL-Oberflaeche, eine Workspace-Liste, einen Referenz-Leitfaden und drei Review-Tools. Es ist dieselbe Datenoberflaeche pro Nutzer wie in der API-Referenz; der MCP-Server ist der connector-freundliche Weg, sie von Clients aus zu erreichen, die MCP sprechen.
So fuegst du ihn in deinem Client hinzu
Die meisten Clients fuegen einen entfernten MCP-Server als benutzerdefinierten Connector hinzu:
- Oeffne die Connector- oder MCP-Server-Einstellungen deines Clients.
- Fuege einen benutzerdefinierten Connector hinzu und fuege die Server-URL
https://mcp.nibomo.com/mcpein. - Autorisiere bei interaktiven Clients im Browser, wenn du dazu aufgefordert wirst. Der Server nutzt OAuth 2.1 mit Dynamic Client Registration, daher gibt es kein Client-Secret zum Einfuegen und keine App, die du zuerst registrieren musst.
- Setze fuer den Headless- oder CLI-Einsatz stattdessen einen Header
Authorization: Bearer fca_…mit deinem Agent-API-Key anstelle des Browser-Flows.
Rufe nach der Autorisierung einmal list_workspaces auf, um einen Workspace
auszuwaehlen, und nutze dann sql_query zum Lesen und sql_execute zum
Schreiben von Karten und Decks. Rufe fuer ein Review next_review_card, dann
reveal_answer und dann submit_review auf.
Tools
Der Server stellt sieben Tools bereit. Lesen und Schreiben sind bewusst getrennt, damit ein einzelnes Tool niemals sichere und destruktive Operationen vermischt.
sql_query— strikt nur lesender Zugriff auf deine Karten und Decks (SHOW TABLES,DESCRIBE,SHOW COLUMNS,SELECT).sql_execute— Schreibzugriff auf deine Karten und Decks (INSERT,UPDATE,DELETE) als atomarer Batch.list_workspaces— strikt nur lesende Liste der Workspaces, auf die du zugreifen kannst, jeweils mit ihrerworkspaceId, dem Namen, der Anzahl aktiver Karten, der letzten Aktivitaet und der Angabe, ob es dein aktuell ausgewaehlter Standard ist. Verwende eine zurueckgegebeneworkspaceIdfuer das optionaleworkspaceId-Argument der SQL- und Review-Tools.get_guide— strikt nur lesender Referenz-Leitfaden zu einem Thema:sql_dialect,card_authoring,bulk_authoringoderreview_flow. Das Tool liest keine Workspace-Daten.next_review_card— strikt nur lesend: gibt die naechste Karte zur Wiederholung zurueck, nur die Vorderseite, in derselben Warteschlangen-Reihenfolge wie die Apps. OptionaletagsoderdeckIdgrenzen die Warteschlange ein.reveal_answer— strikt nur lesend: gibt die Rueckseite einer Karte zurueck, nachdem sich der Lernende an ihrer Vorderseite versucht hat.submit_review— erfasst eine BewertungAgain,Hard,GoododerEasyund schreibt den FSRS-Wiederholungsplan der Karte fort.
Die SQL-Oberflaeche ist ein absichtlich eingeschraenkter Dialekt und kein
vollstaendiges PostgreSQL. Diese Dokumentation beschreibt nur den unterstuetzten
Dialekt, keine PostgreSQL-Kompatibilitaetsreferenz. Anweisungen koennen nur die
Ressourcen workspace, cards, decks und review_events adressieren, jede
Anweisung ist auf deinen eigenen Workspace beschraenkt, und Lese- sowie
Schreibvorgaenge sind auf 100 Zeilen pro Anweisung begrenzt.
Reviews
Mit den Review-Tools kann ein Agent einen Lernenden Karte fuer Karte abfragen und jede Bewertung im FSRS-Wiederholungsplan der Karte speichern:
next_review_cardgibt einecardIdundfrontTextzurueck, odercard: null, wenn nichts faellig ist.- Nachdem der Lernende geantwortet hat, gibt
reveal_answerdenbackTextdieser Karte zurueck. submit_reviewnimmt diecardId, eine clientseitig erzeugtereviewId-UUID, einratingund die IANA-reviewedTimeZonedes Lernenden entgegen. Der Server setzt die Review-Zeit und gibt den neuen Wiederholungsplan der Karte zurueck.
Sende eine unsichere Uebermittlung mit derselben reviewId erneut; dabei wird nie
ein zweites Review erfasst. Eine Uebermittlung kann ausserdem folgende Antworten
liefern:
409 REVIEW_EVENT_CONFLICT— das Review wurde bereits erfasst, und die Fehlerdetails enthalten den aktuellen Wiederholungsplan der Karte.409 REVIEW_ID_CARD_MISMATCH— diereviewIdidentifiziert bereits ein Review einer anderen Karte, daher wurde nichts gespeichert; sende erneut mit einer neuenreviewId.409 REVIEW_STALE— die gespeicherte Review-Zeit der Karte ist gleich oder spaeter als die aktuelle Serverzeit; wiederhole eine andere Karte.
Reviews werden nur ueber submit_review erfasst: SQL kann weder review_events
noch den FSRS-Planungszustand schreiben. Rufe get_guide mit dem Thema
review_flow auf, um die vollstaendigen Review- und Bewertungsregeln zu erhalten.
Karten-Vertrag
Jede Karte folgt einem Vertrag, und die Tools verlassen sich darauf:
front_textist nur eine Frage oder ein Wiederholungs-Prompt und enthaelt niemals die Antwort.back_textenthaelt die Antwort, optional mit einem konkreten Beispiel.
Agenten, die Karten ueber sql_execute generieren, folgen diesem Vertrag, sodass
die von ihnen erstellten Karten sofort mit Spaced Repetition wiederholbar sind.
Authentifizierung
Zwei Autorisierungswege erreichen dieselbe Datenoberflaeche pro Nutzer.
OAuth 2.1 (interaktive Connector-Clients)
Der Server implementiert den Authorization-Code-Flow mit PKCE und Dynamic Client Registration. Fuege die MCP-URL als benutzerdefinierten Connector hinzu und autorisiere im Browser; es wird kein Client-Secret vorab geteilt. Die Discovery ist standardisiert:
- Protected-Resource-Metadaten:
https://mcp.nibomo.com/.well-known/oauth-protected-resource - Authorization-Server-Metadaten:
https://auth.flashcards-open-source-app.com/.well-known/oauth-authorization-server
API-Key (Headless und CLI)
Beziehe einen langlebigen fca_-Agent-API-Key ueber den E-Mail-OTP-Login-Flow,
der in der API-Referenz dokumentiert ist, und sende ihn dann als
Bearer-Token:
Authorization: Bearer fca_ABCDEFGH_0123456789ABCDEFGHJKMNPQRS
Das ist derselbe Key, den die REST-Agent-Oberflaeche akzeptiert, und er benoetigt weder einen Browser noch einen OAuth-Roundtrip.
Die kanonische maschinenlesbare Beschreibung beider Wege ist die
Discovery-Nutzlast unter https://api.flashcards-open-source-app.com/v1/
(gespiegelt unter /v1/agent).
Sicherheit und Geltungsbereich
Die SQL-Tools koennen bedenkenlos genehmigt werden, weil die Oberflaeche ein abgesicherter, vom Parser erzwungener Dialekt ist und kein beliebiger Datenbankzugriff:
- Geschlossene Anweisungsliste:
sql_queryakzeptiert nurSHOW TABLES,DESCRIBE,SHOW COLUMNSundSELECT;sql_executeakzeptiert nurINSERT,UPDATEundDELETE. Alles andere wird beim Parsen abgelehnt. - Begrenzte Ressourcen: Anweisungen koennen nur
workspace,cards,decksundreview_eventsbetreffen. - Workspace-Geltungsbereich: jede SQL-Anweisung und jedes Review ist auf
einen Workspace beschraenkt, auf den du zugreifen kannst, entweder die von dir
uebergebene
workspaceIdoder deinen ausgewaehlten Standard, ohne mandantenuebergreifenden Zugriff. - Strikte Argumente: jedes Tool lehnt ein unbekanntes Argument ab, sodass eine
falsch geschriebene
workspaceIdfehlschlaegt, statt gegen deinen Standard-Workspace ausgefuehrt zu werden. - Grenzwerte: bis zu
100Zeilen pro Anweisung, bis zu50Anweisungen pro Batch und eine Ergebnisgrenze von etwa12kTokens. Mutations-Batches werden atomar angewendet. - Trennung von Lesen und Schreiben:
sql_query,list_workspaces,get_guide,next_review_cardundreveal_answersind strikt nur lesend (readOnlyHint) und reparieren keine Daten, berechnen keine Planung neu und aendern keinen Kartenzustand.sql_executeundsubmit_reviewsind die einzigen Schreib-Tools (destructiveHint):sql_executeschreibt Karten und Decks, undsubmit_reviewerfasst ein Review und schreibt den Plan seiner Karte fort.
Der gesamte Stack — App, Backend und Infrastruktur — ist Open Source und kann selbst gehostet werden, sodass du denselben Connector gegen deine eigene Bereitstellung betreiben kannst.