Skip to main content
Glama

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-mcp

Add 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 | bash

Homebrew

brew tap zcsabbagh/tap
brew install flashcards-mcp

Then 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_deck

Create a new deck

list_decks

List all decks with stats

add_card

Add a single card (supports markdown, images)

bulk_add_cards

Add multiple cards at once

get_due_cards

Get due cards with interactive UI

review_card

Submit a rating (1-4)

search_cards

Search cards by keyword

get_deck_stats

Mastery distribution, retention rate

get_card_image

Lazy-load card images

set_card_image

Add/replace card images

tts

Text-to-speech via ElevenLabs

delete_card

Delete a card

delete_deck

Delete a deck and all its cards

get_review_history

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.db

  • MCP 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