Skip to main content
Glama

Flashcards by Fulin Labs

Create and study flashcards

create_flashcard_deck
Read-onlyIdempotent

Use this when the user asks to learn, study, memorize, review, practice, or create flashcards about any topic. Generate the complete deck in this call and open it in the interactive flashcard UI. Act immediately using the existing conversation and source material; infer language and backLanguage yourself. Never ask the user for language codes, tool arguments, or confirmation of an already requested deck. For a request for 50 cards, submit all 50 completed cards in one call. Keep the response brief and let the study UI show the deck. Examples include 'I want to learn about X', 'teach me X with flashcards', and 'Create an HSK3 vocabulary deck about restaurants'. Do not call a separate add-card tool. Do NOT use when the user asks for a direct explanation without study intent, asks to delete or modify an existing deck, or requests an in-conversation quiz without creating a deck.

Input Schema

NameRequiredDescriptionDefault
cardsYesThe complete generated deck. Include exactly the number of cards the user requested, with every required language-learning field completed; never submit a partial array or placeholders.
titleYesA concise, descriptive title for the generated deck.
languageNoISO 639-1 code for the language spoken on the front side (e.g. 'zh' Chinese, 'ja' Japanese, 'vi' Vietnamese). Used for the correct audio voice and saved-deck language. Always infer and set it from the user's target language, never from their current app preference.
backLanguageNoLanguage of the translations on the back. Set from the user’s known language; never assume English. Always set for language-learning decks. Used for reverse-card audio.

Output Schema

NameRequiredDescriptionDefault
cardsYes
titleYes
languageNo
cardCountYes
backLanguageNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says the call creates a complete deck and opens it in an interactive flashcard UI, and the schema references a 'saved-deck' language, yet the annotations declare readOnlyHint=true (no environment modification) and idempotentHint=true for what is a creation operation. This is a direct conflict between the described write/UI side effect and the declared read-only semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the trigger condition and the 'do it in one call' constraint before the examples and exclusions. Slightly redundant, since the opening verb list (learn, study, memorize, review, practice) is restated by the quoted example utterances, but overall dense with little waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists and the input schema is fully documented, so return values need no explanation; the description still covers triggers, cardinality expectations, and language inference. What it omits is whether the created deck is persisted/saved or ephemeral, which is exactly the point where the readOnlyHint annotation is misleading.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description adds real semantic guidance beyond the schema: infer language and backLanguage from the target language rather than app preference, never ask for language codes, and submit all N requested cards as one complete array rather than partial or placeholder entries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (generate/create a complete deck) and resource (flashcard deck) plus the trigger intent (learn, study, memorize, review). It is immediately understandable, but it never names or contrasts with the sibling create_website_deck, so the agent must infer the split between the two deck-creation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use triggers with sample user utterances, explicit when-NOT-to-use cases (no-study-intent explanation, delete/modify existing deck, in-conversation quiz without a deck), and an explicit exclusion of a separate add-card tool. It also removes decision friction by instructing the agent to act immediately without asking for confirmation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.