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: GIM-MCP
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
Optional OpenAI-powered translation suggestions
ChatGPT MCP at
/mcp(persistence + review; 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"
OPENAI_API_KEY=your_openai_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 an empty SQLite database from the schema:
npm run db:pushStart the app:
npm run devOpen http://localhost:4800.
npm run dev starts Next.js on port 4800 (MCP at /mcp) and the optional OpenAI MCP tunnel. Web only: npm run dev:web.
Environment
Copy from .env.example:
Variable | Required | Purpose |
| yes | SQLite path relative to |
| for AI features | OpenAI API key |
| 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 OPENAI_API_KEY=your_openai_api_key_here
npm run docker:upApp: http://localhost:4800.
ChatGPT MCP
Persistence MCP at /mcp (domains, entries, conjugations, review/Leitner, 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 onlyVoice 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:push
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
- Alicense-qualityDmaintenanceA Model Context Protocol server that enables language models to interact with Anki flashcard decks programmatically, with specialized features for Japanese language learning including vocabulary import, sample sentence generation, and spaced repetition review.Last updated3MIT
- Flicense-quality-maintenanceAn educational interaction management system that uses MCP and Ollama to create and manage flashcards and other learning content. It enables dynamic content generation and transformation through natural language processing using local AI models.Last updated
- Alicense-qualityCmaintenanceA 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.Last updated1MIT
- 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.Last updated8AGPL 3.0
Related MCP Connectors
Turn AI chats into vocabulary: capture words and grammar into spaced-repetition flashcards.
Cross-AI personal memory. Save once in ChatGPT, recall in Claude, Mistral, Grok, or any MCP client.
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
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