mcp server
MindDory Brain
Turn AI chats into vocabulary: capture words and grammar into spaced-repetition flashcards.
Description as published by the maintainer. Source
- version 1.0.1
- active
active — Most recent push to the repository was 2026-07-29.
What this server can do
12 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
capture_grammar_mistake(lang, user_text, correction, error_type, explanation)- 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. Required: user_text, correction.
capture_word(lang, word, gloss, words, context, source_lang)- 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.
get_active_vocab(lang, limit, lookback_days)- 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.
get_card(lang, word)- Single card detail by word (case-insensitive). Returns translation, mastery, and last 10 events. Required: word.
get_known_words(lang, limit, cursor)- Words the user has verified known via flashcard practice. Paginated keyset on flashcards.id.
get_queue(max, lang)- Cards due now and due within the next 24 hours.
get_recent_activity(limit, cursor, surface)- Event log slice with optional surface filter and keyset pagination on answers.id.
get_system_instructions(lang)- 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.
get_user_profile(lang)- 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.
log_interaction(lang, type, word, metadata)- Append a generic interaction event to the answers log. Use for lookups, AI discussions, and reading-in-context signals. Required: type, word.
mark_demonstrated(lang, word, source, context, confidence)- Premium. 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. Required: word, confidence.
mark_struggled(lang, word, source, context)- Premium. Spaced-repetition degrade for a word the user just got wrong: the card comes back sooner. ease_factor drops, interval resets, repetitions reset. Required: word.
Last successful function declaration observed on . Source: https://api.minddory.com/v1/brain/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://api.minddory.com/v1/brain/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| GitHub stars | 0 | Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. | cumulative, all time | GitHub | |
| Last commit | 2026-07-29 | Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. | point in time | GitHub | |
| Open issues | 0 | Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. | as of fetch | GitHub | |
| Latest published version | 1.0.1 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-06-09 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| License | MIT | Licence GitHub detected in the repository. Detection can be wrong; the LICENSE file is authoritative. | as of fetch | GitHub | |
| First listed in the MCP Registry | 2026-06-09 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| repository status | active | The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. | as of fetch | GitHub | |
| mcp tools declared | 12 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | api.minddory.com | |
| mcp endpoint status | ok | The server listed 12 functions when asked. | as of probe | api.minddory.com |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json