Skip to main content
Glama

Server Details

Free: turn your AI chats into spaced-repetition vocabulary. 13 tools, reads and writes.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL
Repository
Hyneq00/minddory-mcp
GitHub Stars
0
Server Listing
MindDory MCP Server
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 13 tools

Disambiguation4/5

Most tools cleanly separate single-card lookup, batch lookup, due queue, event log, and SRS adjustments. The main overlap is `get_system_instructions` and `get_user_profile`, which both return CEFR level, languages, due count, and weak words, so an agent could mis-select between them.

Naming Consistency5/5

Every tool follows a consistent lowercase snake_case verb_noun pattern: capture_*, get_*, mark_*, log_*, check_. The verbs are descriptive and predictable, making the set easy to navigate.

Tool Count5/5

13 tools is well within the ideal scope for a language-learning memory/assistant server. Each tool covers a distinct part of the capture, lookup, review, and spaced-repetition workflow without feeling padded.

Completeness4/5

The core lifecycle is well covered: grammar and vocabulary capture, batch deck checks, card detail, due queue, recent activity, and SRS boosts/penalties. Minor gaps exist: captured grammar mistakes have no retrieval endpoint, and there is no delete/dismiss path for unwanted cards, but agents can work around these.

Available Tools

13 tools
capture_grammar_mistakeCapture grammar mistakeAInspect

Log a grammar mistake the user just made in the target language, creating a grammar point in their Minddory deck. Use it proactively whenever the user writes a target-language sentence with a clear, correctable error (wrong tense, agreement, word_choice, word_order, missing or wrong article, preposition, gender, conjugation, spelling, pluralization). By connecting Minddory the user opted IN to automatic capture, so log it as you go - do not ask permission first or turn it into a yes/no question. The user connected Minddory to catch and review these patterns; you do not need to announce each log. Pass the original text + correction + error_type. Multiple mistakes in one message = multiple calls.

VARIANT RULE: Always pass the user's full BCP-47 variant in the lang field (e.g. en-gb, not en) - get it from get_system_instructions on first turn. Before logging, check that the "error" is not actually a valid regional variant form (US past-simple vs UK present-perfect with "just/already", US "in the hospital" vs UK "in hospital", US "color" vs UK "colour", BR gerund vs PT "a + infinitive", etc.). When the variant is unspecified (base ISO only), treat ALL regional forms as valid. Better to skip a borderline call than to mark a valid variant form as wrong.

error_type must be one of: tense, agreement, word_choice, word_order, article, preposition, spelling, pluralization, conjugation, gender, other. Feeds the user's Grammar Patterns view at app.minddory.com/grammar.

Inputs: user_text (required), correction (required), lang, error_type, +1 more.

capture_wordCapture wordAInspect

Capture a target-language word or phrase to the user's Minddory vocabulary deck (a flashcard in the "Chat Discoveries" folder when the word is new, otherwise a context encounter). The user connected Minddory so their assistant builds their deck from real conversations, so use this proactively to log notable target-language vocabulary they encounter, use, or ask about. By connecting Minddory the user opted IN to automatic capture, so just capture as you chat - do not pause to ask permission for each word, and do not turn capturing into a yes/no question. You do not need to announce each capture, but answer honestly if the user asks what you have saved. Use the words array to capture several from one message; include a gloss (short source-language translation) and context (the sentence) when you can. Skip stop words, proper nouns, numbers, and words shorter than 3 characters (CJK / Hangul exempt). ALWAYS pass lang — the ISO code of the captured word's own language (you know it from the conversation); the call is rejected without it and the target language is never guessed. source_lang (the user's native language) is optional and defaults to their deck. This is the primary tracking signal of Minddory, so capture diligently.

Inputs: lang, word, gloss, words, +2 more.

check_wordsCheck words against deckA
Read-only
Inspect

Batch lookup: for a list of target-language words, tell me which ones are already in the user's Minddory deck and how well they know each. Use this BEFORE glossing or capturing vocabulary from a message - it answers "which of these are actually new to this user" in one call, so you can skip words they have already mastered, gloss only the genuinely new ones, and notice when a word they are currently failing shows up in conversation. Each result is {word, in_deck, mastery, translation, next_review_at, due}; mastery is one of not_in_deck, new, review, struggling, mastered. The response also pulls out the three lists you usually act on - not_in_deck, known and struggling - so you do not have to sort them yourself; words in mid-review are in words only. Entries that could not be answered as sent are listed in skipped as {input, reason: blank|duplicate, answered_as?} - a duplicate WAS answered, under the entry named by answered_as. Omit lang and it resolves to the user's own primary learning language (lang_defaulted: true in the response says so); pass it whenever you know which language you are in. Prefer this over calling get_card once per word.

Inputs: words (required), lang.

get_active_vocabGet active vocabularyA
Read-only
Inspect

Get the user's most actively encountered target-language words (from past capture_word + log_interaction events), ranked by frequency over a lookback window. Use to surface "frontier" words the user keeps touching when they ask "what should I learn next" or when you want context-aware suggestions.

Inputs: lang, limit, lookback_days.

get_cardGet card detailA
Read-only
Inspect

Single card detail by word (case-insensitive). Returns translation, mastery, and last 10 events.

Inputs: word (required), lang.

get_known_wordsGet known wordsA
Read-only
Inspect

Words the user has verified known via flashcard practice. Paginated keyset on flashcards.id.

Inputs: lang, limit, cursor.

get_queueGet review queueA
Read-only
Inspect

Cards due now and due within the next 24 hours.

Inputs: max, lang.

get_recent_activityGet recent activityA
Read-only
Inspect

Event log slice with optional surface filter and keyset pagination on answers.id.

Inputs: limit, cursor, surface.

get_system_instructionsGet session instructionsA
Read-only
Inspect

Call this at the START of every new conversation, before your first reply, to load the user's Minddory setup and your role as their proactive language partner: CEFR level, target/source languages, due-card count, weak words, and how to capture. The user connected Minddory to actively improve their language through this chat, so use it to tailor your help to their level and goals. Pass lang when you know which language the user wants to practice right now - the language they are conversing in, or one they named explicitly (including a regional variant like en-us or en-gb) - so the returned profile is scoped to that language. Re-call this tool with the new lang if the user switches practice language or requests a specific variant mid-conversation.

Inputs: lang.

get_user_profileGet user profileA
Read-only
Inspect

Profile snapshot: CEFR level, target/source languages, due card count, weak words, recent lookups. Pass lang to scope the snapshot to one learning language (for users learning several); omit it for the user's primary language.

Inputs: lang.

log_interactionLog interactionAInspect

Append a generic interaction event to the answers log. Use for lookups, AI discussions, and reading-in-context signals.

Inputs: type (required), word (required), lang, metadata.

mark_demonstratedMark word demonstratedAInspect

Confidence-weighted spaced-repetition boost when the user has used a word correctly: the card moves further out in the review schedule. Logs an answer row even if no flashcard exists.

Inputs: word (required), confidence (required), lang, source, +1 more.

mark_struggledMark word struggledAInspect

Spaced-repetition degrade for a word the user just got wrong: the card comes back sooner. ease_factor drops, interval resets, repetitions reset.

Inputs: word (required), lang, source, context.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Lets AI assistants act as a personal language teacher by storing a learner's vocabulary, writing stories around those words, judging translations, labeling mistakes by rule, and scheduling spaced-repetition reviews with FSRS. It also serves the agreed tutoring method to any connected assistant so teaching stays consistent across Claude, ChatGPT and Codex.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables an AI assistant to act as the memory of a personal English-learning app: read progress and words due for review, run short practice conversations, and store sentences, corrections, new words, rubric scores, and checked exercises back to the user's dashboard. Also lets the assistant grow the flashcard deck and adjust word familiarity, which reschedules spaced-repetition reviews.
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Personal RAG database and semantic search built from inside your AI chat. Store knowledge, voice, and skills; Claude and ChatGPT create work that sounds like you.
      -
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.