Skip to main content
Glama

Check words against deck

check_words
Read-only

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoLanguage tag of the words: a base ISO code with an optional region (en, en-us, es-419). Three-subtag tags such as zh-Hant-TW are not accepted. Omit it and the user's own primary learning language is used.
wordsYesThe words or phrases to check, as written in the target language.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations (`readOnlyHint: true`) already cover read-only safety. The description goes beyond this by explaining the grouped output lists (`not_in_deck`, `known`, `struggling`), the `skipped` array behavior with the `answered_as` field, and the defaulting behavior of `lang`. The only minor gap is not detailing pagination or rate limits, but the provided context is substantial.

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?

The description is dense but packed with valuable information, front-loading the main purpose. It covers usage, return structure, edge cases (`skipped`), and defaults. The only slight miss is being somewhat lengthy, but every sentence earns its place, making the informational density high.

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

Completeness5/5

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

For a batch lookup tool with 2 params and no output schema, the description thoroughly explains the return values (mastery levels, `skipped` handling, `lang_defaulted`). It covers the main use case (pre-glossing check) and edge cases (duplicates, unknown languages), making it highly complete.

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

Parameters3/5

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

The input schema already has 100% coverage with useful descriptions for both `words` and `lang`. The description adds crucial information about the return structure, which the schema lacks. However, the schema already explains the parameters well, so while the description enhances understanding of behavior, it doesn't add significant semantic detail about the parameters themselves beyond what's already in the schema.

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

Purpose5/5

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

The description opens with a specific verb and resource: '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.' It clearly explains the batch nature and differentiates itself from siblings like get_card by stating 'Prefer this over calling get_card once per word.'

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?

Provides explicit instructions on when to use it ('Use this BEFORE glossing or capturing vocabulary from a message'), what it answers ('which of these are actually new to this user'), and explicitly names the alternative ('Prefer this over calling get_card once per word'). This meets the criteria for explicit exclusions and alternatives.

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.

TDQS

A4.1/5.0
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.