mcp-vocabulary-trainer
Allows ChatGPT to interact with the Sprachen vocabulary trainer via MCP, providing tools for managing domains, entries, conjugations, review (Leitner boxes), and stats, with optional OpenAI-assisted translation suggestions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-vocabulary-trainerShow me my due vocabulary reviews for today."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sprachen — Multilingual Vocabulary Trainer with MCP Agent
A local, single-user vocabulary trainer with Leitner spaced repetition, domain/topic organization, and a ChatGPT MCP agent for lessons — plus optional OpenAI assistance in the app.
Project page
More background and write-up:
Related MCP server: MnemoQ
Runs locally
This project is meant to run on your own machine (or local Docker). It is not a hosted SaaS, and there is no cloud/CDK deploy in this repo.
Single-user, no login / no auth
Data stays in a local SQLite file under
data/Do not expose the app to the public internet without adding your own access control
Features
Leitner 6-box spaced repetition
Multiple languages (UI + vocabulary): German, English, Spanish, French, Portuguese, Swiss German
Domains/topics for organizing entries
Fuzzy answer matching (typo-tolerant)
Conjugation practice
Grammar reference (cheat sheets; create/refine via MCP chat)
Worksheets / grammar tests (create via MCP, fill in the app, results for later analysis)
Optional OpenAI-powered translation suggestions
ChatGPT MCP at
/mcp(persistence + review + grammar + worksheets; AI stays in ChatGPT)
Quick start
Prerequisites
Node.js 18+ and npm
An OpenAI API key if you want AI features (optional for core review)
Initialize
git clone <this-repo-url>
cd sprachen
npm install
cp .env.example .envEdit .env and set at least:
DATABASE_URL="file:../data/sprachen.db"
OPENROUTER_API_KEY=your_openrouter_api_key_here
NEXT_PUBLIC_NATIVE_LANG=de
# Optional — train only some targets (omit = all except native):
# NEXT_PUBLIC_TARGET_LANGS=en,es,frNEXT_PUBLIC_NATIVE_LANG is your mother tongue / source language (de | en | es | fr | pt | gsw). Set it once at install time.
NEXT_PUBLIC_TARGET_LANGS limits which languages you train (comma-separated). Example: en,es,fr for three languages only. Leave empty for all targets except your native language. Restart the app after changing it.
Create or upgrade the SQLite database (applies Prisma migrations; backs up an existing DB to data/backups/ first):
npm run db:migrateStart the app:
npm run devOpen http://localhost:4810.
npm run dev starts Next.js on port 4810 (MCP at /mcp) and the optional OpenAI MCP tunnel (health 4811). Web only: npm run dev:web.
Daily on iPhone (offline, no cloud)
Native iOS (download + listen, lock-screen audio): open ios/Sprachen.xcodeproj on this Mac, sign with your Apple ID, and install to the iPhone over USB. Details: docs/ios.md.
The Mac creates the Daily pack and TTS. The iPhone downloads over home Wi-Fi (http://<mac-ip>:4810) and then plays from local files with the Mac off.
Environment
Copy from .env.example:
Variable | Required | Purpose |
| yes | SQLite path relative to |
| for AI features | OpenRouter API key (models are chosen in Settings) |
| yes | Source language ( |
| no | Comma-separated targets, e.g. |
| for ChatGPT tunnel | OpenAI org key with Tunnels Read + Use |
| optional | Tunnel profile name (default |
Never commit .env or .env.production — only .env.example is tracked.
Docker (optional, local)
No separate database container. SQLite lives in ./data:
export OPENROUTER_API_KEY=your_openrouter_api_key_here
npm run docker:upApp: http://localhost:4810.
ChatGPT MCP
Persistence MCP at /mcp (domains, entries, conjugations, review/Leitner, grammar, worksheets, stats). Details for tunnel-client and ChatGPT Developer Mode: SETUP.md.
npm run dev # app + tunnel (development)
npm run start # app + tunnel (after npm run build)
npm run start:web # production web only
npm run mcp:tunnel # tunnel onlyGrammar via chat
Grammar chapters live in the DB and are shown under Grammatik in the app. Content is created and refined in chat (ChatGPT/Claude with MCP):
New — learn a topic → AI asks whether to save →
create_grammar_topic(RULE + EXAMPLES + NOTE)Resume — “I want to learn possessives” →
search_grammar_topics/get_grammar_topic→ discuss from your saved chapterPersonalize — add your own mnemonic →
upsert_grammar_blocks(after confirmation)
Worksheets via chat
Worksheets live in the DB and are shown under Arbeitsblätter in the app. The AI creates them from your grammar/vocabulary; you fill them in the app.
New — ask the AI to load your grammar/vocab/stats, then save a worksheet →
create_worksheet(8 question types: multiple choice, cloze, free text, error correction, sentence reorder, matching, true/false, conjugation grid)List / inspect —
list_worksheets/get_worksheetto resume or tweak an open sheet (update_worksheetuntil completed)Analyse — after you finish in the app,
get_worksheet_resultsshows answers, auto-grade, manual overrides, and weak tags/topics
Voice Chat workaround
ChatGPT Voice Chat cannot call MCP tools directly. Use text MCP first, then voice, then sync back:
Load context in text chat — ask ChatGPT (with the MCP plugin enabled) to fetch the vocabulary / due cards / lesson context you need via MCP.
Start Voice Chat — continue in the same conversation so that context is already in the thread.
Practice by voice — train as usual; Voice Chat only talks, it does not write to the database.
Sync after voice — switch back to text and tell ChatGPT something like: „Okay, aktualisiere die Einträge basierend auf der Lehrer-Erfahrung.“ so it updates progress / entries through MCP.
Without that last step, the spoken lesson stays only in the chat history.
Leitner boxes
Cards move through 6 boxes with increasing intervals:
Box | Interval |
1 | immediately (0 days) — new cards and wrong answers |
2 | 3 days |
3 | 7 days |
4 | 14 days |
5 | 30 days |
6 | 60 days |
Correct → one box up. Wrong → back to box 1. Due cards have nextReviewAt in the past.
Tech stack
Next.js 15 · TypeScript · tRPC · SQLite + Prisma · Tailwind / shadcn/ui · OpenAI (optional) · Vitest
Development
npm run lint
npm run test
npm run build
npm run db:migrate # backup + apply migrations (default on every machine)
npm run db:migrate:dev # create new migrations locally
npm run db:backup # copy DB to data/backups/
npm run update # git pull --rebase, install, migrate, build (PM2 restart via pm_id / PM2_PROCESS)
npm run db:push # optional schema sync shortcut
npm run db:studioLicense
MIT — see LICENSE.
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 Servers
- AlicenseNot gradedqualityCmaintenanceA vocabulary-bank MCP server that allows users to collect unfamiliar words, organize them into decks, review with spaced repetition, and enrich with definitions and pronunciation, all stored locally.1MIT
- AlicenseAqualityBmaintenanceA local-first memory engine for AI agents with MCP-native, graph-linked, spaced repetition. It enables agents to log, retrieve, and manage learnings via CLI or MCP server.8AGPL 3.0
- FlicenseCqualityCmaintenanceA local-first flashcard and quiz app with an MCP server for Codex, enabling users to manage decks, cards, quizzes, and reviews through natural language.19
- AlicenseNot gradedqualityCmaintenanceLocal Leitner flashcard MCP server enabling AI clients to create decks, manage cards, study with spaced repetition, and track progress.MIT
Related MCP Connectors
Cross-AI personal memory. Save once in ChatGPT, recall in Claude, Mistral, Grok, or any MCP client.
Shared long-term memory vault for AI agents with 20 MCP tools.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
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/martinmaxschneider/mcp-vocabulary-trainer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server