flashcards-mcp
flashcards-mcp
A spaced repetition flashcard MCP server for Claude. Uses the FSRS-5 algorithm (successor to Anki's SM-2) with an interactive card UI, text-to-speech, and image support.
Install
npx (quickest)
npx flashcards-mcpAdd to ~/.claude/.mcp.json:
{
"mcpServers": {
"flashcards": {
"command": "npx",
"args": ["flashcards-mcp"]
}
}
}curl (auto-configures Claude)
curl -fsSL https://raw.githubusercontent.com/zcsabbagh/flashcards-mcp/main/install.sh | bashHomebrew
brew tap zcsabbagh/tap
brew install flashcards-mcpThen add to ~/.claude/.mcp.json:
{
"mcpServers": {
"flashcards": {
"command": "flashcards-mcp"
}
}
}Usage
After restarting Claude, try:
"create a deck called Algorithms" — creates a new deck
"add a card: What is Big O? / A notation for algorithm time complexity" — adds a card
"get due cards" — opens the interactive flashcard UI
"get due cards for deck 1" — filters to a specific deck
Keyboard shortcuts (in the flashcard UI)
Key | Action |
Space / Enter | Flip card |
1-4 | Rate (Again, Hard, Good, Easy) |
Arrow Left/Right | Previous/Next card |
V | Toggle voiceover (requires ElevenLabs API key) |
Images
Cards support images on front and back faces:
"add a card with front_image from /path/to/image.png"
"set card 5 front image to https://example.com/photo.jpg"Text-to-Speech
Add your ElevenLabs API key to the MCP config:
{
"mcpServers": {
"flashcards": {
"command": "npx",
"args": ["flashcards-mcp"],
"env": {
"ELEVENLABS_API_KEY": "sk_..."
}
}
}
}Tools
Tool | Description |
| Create a new deck |
| List all decks with stats |
| Add a single card (supports markdown, images) |
| Add multiple cards at once |
| Get due cards with interactive UI |
| Submit a rating (1-4) |
| Search cards by keyword |
| Mastery distribution, retention rate |
| Lazy-load card images |
| Add/replace card images |
| Text-to-speech via ElevenLabs |
| Delete a card |
| Delete a deck and all its cards |
| Card scheduling history |
How it works
FSRS-5 algorithm schedules reviews based on stability, difficulty, and elapsed time
SQLite stores everything locally at
~/.claude/mcp-servers/flashcards/data/flashcards.dbMCP App UI renders an interactive flashcard widget directly in Claude's chat
Images stored as base64 in the database, lazy-loaded one at a time
Markdown supported in card content (code blocks, lists, headers, etc.)
License
MIT