srs-mcp
srs-mcp – Spaced Repetition, als MCP-Server
Gib jedem MCP-fähigen Agenten (Claude Code, Claude Desktop oder einem anderen MCP-Host) echtes, korrekt geplantes Spaced-Repetition-Gedächtnis, anstatt „was heute fällig ist“ jede Sitzung manuell aus einer Markdown-Tabelle abzuleiten. Implementiert SM-2 (den Algorithmus hinter Anki/SuperMemo) als vier aufrufbare Tools, unterstützt durch eine lokale SQLite-Datei. Kein Konto, keine Netzwerkaufrufe, keine Telemetrie – alles läuft auf deinem Rechner.
Status: Prototyp, noch nirgendwo veröffentlicht. Lokal gebaut und verifiziert (siehe „Wie es verifiziert wurde“ unten); noch von niemandem außerhalb dieses Projekts installiert. Behandle Version 0.2.0 als Vorabversion.
Warum es das gibt
Markdown-Checklisten und Vokabeltabellen sind gängige Methoden, mit denen Menschen (und die sie unterstützenden Agenten) verfolgen, was zu wiederholen ist, aber nichts berechnet daraus einen tatsächlichen Zeitplan – „heute fällig“ wird zu einer Vermutung, die jedes Mal von Hand nachgelesen wird. srs-mcp ist das fehlende Puzzleteil: ein kleiner, echter Planungsalgorithmus, der als Tools bereitgestellt wird, sodass ein Agent den Wiederholungsstatus für alles verfolgen kann – Karteikarten, Interviewfragen, Vokabeln, Onboarding-Quizze – ohne SM-2 in einem Prompt neu zu implementieren.
Die vier Kern-Tools (kostenlos, unbegrenzt, für immer)
Tool | Was es tut |
| Fügt ein Wiederholungselement unter einem Thema hinzu. Neue Elemente sind sofort fällig. |
| Listet heute fällige oder überfällige Elemente auf. Antwort wird bis zur Bewertung zurückgehalten, wie bei einer echten Karteikarten-Wiederholung. |
| Bewertet die Erinnerung mit 0–5 (5 = perfekt, <3 = nicht bestanden/zurücksetzen). Gibt das nächste Fälligkeitsdatum via SM-2 und die richtige Antwort zurück. |
| Gesamtzahlen, Anzahl heute fällig, durchschnittlicher Leichtigkeitsfaktor. |
Pro erhalten
Zwei zusätzliche Tools sind hinter einer Pro-Lizenz gesperrt – das ist die kostenlos/bezahlt-Aufteilung, die srs-mcp anstelle von Abonnements oder einem gehosteten Backend verwendet:
Tool | Was es tut |
| Massenexport/-sicherung aller deiner Wiederholungsdaten. |
| Prognose der Wiederholungslast – wie viele Elemente an jedem der nächsten N Tage fällig werden, damit ein Stau sichtbar wird, bevor er passiert. |
So funktioniert die Lizenzierung konkret: srs-mcp signiert Lizenzschlüssel mit einem privaten Ed25519-Schlüssel, der den Rechner des Maintainers nie verlässt; dieses Repository enthält nur den passenden öffentlichen Schlüssel (license.py), der eine Signatur verifizieren, aber keine fälschen kann. Kaufe einen Schlüssel, setze ihn als SRS_LICENSE_KEY (Umgebungsvariable) oder speichere ihn unter ~/.srs-mcp/license.key, und die Pro-Tools werden freigeschaltet – kein Konto, kein Phone-Home-Check, funktioniert offline. Siehe license.py für den vollständigen Mechanismus und seine genannten Einschränkungen (Kurzfassung: Das schreckt gelegentliches Kopieren ab, es ist kein DRM – nichts hindert jemanden daran, die Prüfung in seiner eigenen lokalen Kopie einer Open-Source-Python-Datei zu entfernen; siehe den Docstring des Moduls für die ehrliche Version dieses Kompromisses).
Es gibt noch keinen aktiven Kauf-Link. Dieser Abschnitt beschreibt den Mechanismus, der gebaut und getestet ist (siehe test_license_gate.py), keinen funktionierenden Shop. Wenn ein Kaufablauf existiert, kommt er hierher.
Installation
Erfordert Python 3.11+.
git clone <repo-url> # not yet public — see status note above
cd srs-mcp
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/srs-mcp # runs the server on stdioUm es als Claude-Code-Plugin zu verwenden, richte Claude Code auf dieses Verzeichnis (oder, sobald veröffentlicht, auf seinen Marketplace-Eintrag) – .claude-plugin/plugin.json und .mcp.json sind bereits eingerichtet; der Server liest SRS_DB_PATH, sodass die Daten einer Plugin-Installation Updates überleben (${CLAUDE_PLUGIN_DATA}/srs.db unter Claude Code oder eine srs.db am selben Ort für einen direkten/manuellen Lauf).
Wie es verifiziert wurde
Nicht nur „es importiert“ – tatsächlich ausgeführt, über das echte MCP-Protokoll:
test_client.pystartetserver.pyals Unterprozess (genau wie ein echter MCP-Host), führt eine vollständige add/list/grade/list-Sitzung durch und überprüft unabhängig die resultierenden SQLite-Zeilen außerhalb der Testumgebung.test_license_gate.pystartet den Server auf drei Arten (keine Lizenz, gültige Lizenz, manipulierte Lizenz) und bestätigt, dassexport_items/get_forecastin den Fällen 1 und 3 verweigern und in Fall 2 echte Daten zurückgeben – was beweist, dass die Lizenzprüfung ein echtes Tor ist, kein No-op.ingest_chinese_vocab.pyundingest_leetcode.pysind funktionierende, idempotente Ingestionsskripte, die echte persönliche Daten (114 chinesische Vokabeln, 16 abgeschlossene LeetCode-Aufgaben) aus den Markdown-Trackern dieses Projekts über echteadd_item-MCP-Aufrufe einspeisen, nicht über direkte SQLite-Schreibvorgänge.
Ehrliche Lücke bis „startklar“ – nicht aufgerundet
Kein öffentliches Repository. Jeder echte Verteilungspfad (Claude Codes Community-Plugin-Marketplace, ein GitHub-Release, ein MCP-Verzeichniseintrag) benötigt, dass dies unter einer öffentlichen Git-URL erreichbar ist. Dieses Projekt ist nur lokal. Das zu erstellen (ein GitHub-Repository, möglicherweise ein Konto) liegt außerhalb der aktuellen Autonomie dieses Projekts ohne ausdrückliche Genehmigung – alles oben Genannte ist darauf vorbereitet, dies zu einer Kopier-und-Push-Aktion zu machen, nicht zu einer Build-Aufgabe, sobald die Genehmigung erteilt ist.
Kann sich nicht gegen
claude plugin validateselbst validieren. Keineclaude-CLI oder Node/npx in dieser Entwicklungsumgebung verfügbar. Das Plugin-Manifest ist schema-konform, soweit sorgfältiges Lesen der Anthropic-Dokumentation und Querverweise auf deren eigenes Produktions-marketplace.jsonbestätigen können, nicht maschinell validiert.Kein aktiver Kaufablauf. Der Lizenzmechanismus ist echt und getestet; ihn in einen tatsächlichen Verkauf zu verwandeln, benötigt einen Storefront (Ko-fi, Gumroad oder ähnlich), der noch nicht existiert – das ist ein Schritt zur Kontoerstellung, außerhalb der Autonomie dieses Projekts ohne Genehmigung.
Die Lizenzdurchsetzung basiert auf Ehrlichkeit, nicht auf Manipulationssicherheit, by design und durch die Natur des Auslieferns von lesbarem Python – siehe den Abschnitt „Pro erhalten“ oben und den Docstring von
license.py.Kein Auth-/Multi-Tenant-Ansatz. Einzelne lokale SQLite-Datei, einzelner Benutzer. In Ordnung für das aktuelle Modell „läuft auf deinem Rechner“; würde echte Designarbeit erfordern, um ein gehostetes/Team-Produkt zu werden.
Null externe Validierung. Niemand außerhalb dieses Projekts hat dies installiert oder verwendet. Jede obige Behauptung ist „das funktioniert wie gebaut und getestet“, nicht „Leute wollen das“.
Lizenz
MIT – siehe LICENSE. (Der Lizenzschlüsselmechanismus der Pro-Stufe ist getrennt von der MIT-Lizenz des Codes – siehe „Pro erhalten“ oben.)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Free: turn your AI chats into spaced-repetition vocabulary. 13 tools, reads and writes.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Shared long-term memory vault for AI agents with 20 MCP tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/happymario123/srs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server