Skip to main content
Glama

vocabit-mcp

npm license

Ein MCP-Server für Vocabit, eine Karteikarten-App. Er ermöglicht es einem KI-Assistenten, ein Lernset in eine echte App auf einem echten Telefon zu schreiben und dann auszulesen, wie die lernende Person damit wirklich zurechtgekommen ist.

Die meisten MCP-Server lesen aus einer API. Dieser hier schließt einen Kreis:

flowchart LR
    A["Assistant<br/>teaches a topic"] --> B["create_study_set"]
    B --> C["Set appears in the<br/>Vocabit app"]
    C --> D["Learner works<br/>through it"]
    D --> E["get_set_results"]
    E -->|weak cards| A

Das interessanteste Werkzeug ist nicht create_study_set – das kann ohnehin jede Anwendung. Es ist get_set_results: Welche Karten hat die lernende Person als schwer markiert, welche hat sie nie erreicht, wie viele Wiederholungen hat jede Karte gebraucht. Das nächste Lernset entsteht daraus – nicht aus einer Vermutung.

In 30 Sekunden ausprobieren

Kein Backend, kein Konto, kein API-Schlüssel:

npx -y vocabit-mcp --demo

Im Demo-Modus läuft derselbe Server gegen ein In-Memory-Vocabit mit zwei bereits angelegten Sets. Erstelle ein Lernset, frage die Ergebnisse ab, und ein deterministischer Ersatz-Lernender wird es durchgearbeitet haben – in der Antwort als simuliert gekennzeichnet, damit es nie mit echten Daten verwechselt wird.

Zum Herumprobieren mit einer Benutzeroberfläche:

npx @modelcontextprotocol/inspector npx -y vocabit-mcp --demo

Installation

Im MCP Registry ist er als io.github.JohnBilousov/vocabit gelistet, sodass Clients, die das Registry lesen, ihn von selbst finden können.

claude mcp add vocabit -- npx -y vocabit-mcp
{
  "mcpServers": {
    "vocabit": {
      "command": "npx",
      "args": ["-y", "vocabit-mcp"],
      "env": {
        "VOCABIT_BASE_URL": "https://your-vocabit-backend.example.com",
        "VOCABIT_AGENT_KEY": "your-agent-key"
      }
    }
  }
}

Den env-Block entfernen, um den Server im Demo-Modus zu starten.

Werkzeuge

Werkzeug

Funktion

vocabit_health

Prüft die Verbindung und den Modus, in dem der Server läuft.

create_study_set

Veröffentlicht ein Lernset in der App der lernenden Person. Liefert einen Deep-Link, der es auf dem Gerät öffnet.

list_study_sets

Letzte Lernsets, neueste zuerst, jeweils mit einer Fortschrittsübersicht.

get_study_set

Vollständige Inhalte eines Lernenssats sowie das Thema und die Notizen, die der Assistent angehängt hat.

get_set_results

Die Feedback-Hälfte. Status je Karte, weakCards, untouchedCards, fällige Karten.

update_study_set

Lernset umbenennen, neu taggen oder Karten ergänzen – in der Regel die Folgeaktion nach dem Lesen der Ergebnisse.

notify_learner

Telegram-Ping, dass ein Lernset wartet.

delete_study_set

Entfernt ein Lernset aus der App. Der Lernverlauf bleibt erhalten.

Außerdem werden bereitgestellt: die Ressource vocabit://set/{setId} (ein Lernset als JSON, aufführlistbar) und ein Prompt study-session, der den gesamten Kreislauf durchläuft.

Kartenstatus

Der Fortschritt stammt aus der Spaced-Repetition-Engine der App, nicht vom Assistenten:

Status

Bedeutung

new

Noch nie wiederholt.

struggling

Von der lernenden Person als schwer markiert.

learning

Als g sol markiert.

mastered

Als leicht markiert.

Ein Lernset zeigt completed: true, sobald keine Karte mehr den Status new hat.

Live-Modus

Richte den Server auf ein Vocab-Backend, bei dem die Agent-API aktiviert ist:

export VOCABIT_BASE_URL=https://your-vocabit-backend.example.com
export VOCABIT_AGENT_KEY=...   # must match one of AGENT_API_KEYS on the backend
npx -y vocabit-mcp

Variable

Bedeutung

VOCABIT_BASE_URL

Basis-URL des Backends.

VOCABIT_AGENT_KEY

Wird als X-Agent-Key gesendet.

VOCABIT_USER_ID

Firebase-UID der Lernenden. Optional; das Backend hat einen Standard.

VOCABIT_TERM_LANGUAGE / VOCABIT_DEFINITION_LANGUAGE

Standardwerte für neue Lernsets, z. B. de / en.

VOCABIT_TELEGRAM_ID

Empfänger für notify_learner.

VOCABIT_TIMEOUT_MS

Anfrage-Timeout, Standardwert 20000.

VOCABIT_DEMO

1 erzwingt den Demo-Modus.

Setzt man weder URL noch Schlüssel, startet der Server im Demo-Modus. Setzt man genau eines davon, weigert er sich zu starten – eine halbe Konfiguration ist ein Fehler, kein Hinweis.

Design-Notizen

Der Demo-Modus ist erstklassiger Client, kein Stub. HttpDemoClient und DemoVocabitClient implementieren dasselbe VocabitClient-Interface, daher hat kein Werkzeug einen Zweig für „Tun wir gerade bloß so?“. Eine prüfende Person kann den Server starten, bevor sie Zugangsdaten hat, und die Testsuite erprobt die echte Werkzeugoberfläche über echten MCP-Transport, statt das SDK zu mocken.

Fehler sind behebbar, nicht tödlich. Ein fehlgeschlagener Aufruf kommt als isError zurück, mit der eigenen Backend-Nachricht plus einem Hinweis an das Modell – 404 sagt „Ruf list_study_sets auf, um zu sehen, welche Lernsets existieren“, 401 sagt „oder starte mit VOCABIT_DEMO=1“. Sich gegenseitig ausschließende Argumente werden mit einer Erklärung abgelehnt, nicht mit einer Vermutung.

Ausgabeschhemas bleiben an den Rändern lose. Identifizierende Felder sind erforderlich; alles andere ist optional, sodass ein Backend, das ein Feld ergänzt, kein funktionierendes Werkzeug in einen Validierungsfehler verwandelt.

Annotationen sind ehrlich. delete_study_set ist mit destructiveHint markiert, die Lese-Werkzeuge mit readOnlyHint. notify_learner schreibt eine echte Person an, und die Beschreibung rät, es sparsam zu verwenden.

Entwicklung

git clone https://github.com/JohnBilousov/vocabit-mcp && cd vocabit-mcp
npm install
npm run build
npm test          # tool surface + full loop over an in-memory MCP transport
npm run inspect   # demo mode in the MCP Inspector
src/
  index.ts        CLI entry, stdio transport
  config.ts       env → Config, demo-mode resolution
  server.ts       tool / resource / prompt registration
  schemas.ts      zod input and output shapes
  format.ts       human-readable summaries next to structuredContent
  client/
    types.ts      wire types + VocabitClient contract
    http.ts       live backend
    mock.ts       in-memory backend for demo mode

Roadmap

  • Streamable HTTP-Transport neben stdio

  • Unterstützung für mehrere Lernende ohne Backend-Standard-UID

  • Karten mit Audio-Aussprache

  • Veröffentlichung im MCP Registry

Lizenz

MIT © Ivan Bilous

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all MCP Connectors

Latest Blog Posts

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/JohnBilousov/vocabit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server