Skip to main content
Glama

Server Details

Study decks for 8 languages plus the K2 spaced-repetition engine, runnable on your items.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.3/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a clearly distinct resource or action: deck catalog (list_decks), deck search (search_deck), exact entry lookup (get_entry), cube algorithm sets (get_cube_algorithms), algorithmic explanation (explain_k2_algorithm), simulation (simulate_k2_session), and server metadata (get_site_info). The only apparent pair, get_entry and search_deck, is cleanly separated by exact-term matching versus substring search and pagination. No two tools appear to do the same thing.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (explain_k2_algorithm, get_cube_algorithms, get_entry, get_site_info, list_decks, search_deck, simulate_k2_session). Verb choices are predictable and domain-specific, with no mixed casing or stylistic drift. The convention is easy to infer and apply.

Tool Count5/5

Seven tools is well within the appropriate 3-15 range for a focused study-deck and algorithm server. Each tool earns its place by covering a distinct part of the surface — discovery, retrieval, algorithm reference, simulation, and metadata. There is no obvious redundancy or padding.

Completeness4/5

The read-only surface covers the core lifecycle: list decks, search within a deck, retrieve a specific entry by exact term, fetch cube algorithms, explain and simulate the K2 engine, and inspect the server capability map. Minor gaps exist, such as no explicit bulk-entry or deck-browsing operation without a search query, but agents can work around these with existing tools.

Available Tools

7 tools
explain_k2_algorithmA
Read-only
Inspect

The K2 spaced-repetition engine, described. K2 stores no review dates: each item holds a probability p that halves on a correct answer and doubles on a wrong one, and items are drawn by Monte Carlo rejection sampling, so the pool self-organizes around current weaknesses and expands when it cools. Returns the update rule (including the deliberate hinted-answer exception), the selection and pool-expansion mechanics, the live tuning constants, and notes for porting it. Read this before simulate_k2_session.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

The readOnlyHint annotation already establishes that this is a safe reference operation. The description adds useful content scope by listing the returned material: update rule, hinted-answer exception, selection mechanics, tuning constants, and porting notes. It does not discuss auth or rate limits, but those are unlikely to be important for a read-only explanation tool.

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 front-loaded with the tool's identity and is reasonably sized for a complex algorithm explainer. It is dense, with two long sentences, but almost every phrase adds relevant scope or previews returned content.

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?

With no input parameters, a read-only annotation, and no output schema, the description carries the necessary burden of explaining what the tool returns and when to use it. It explicitly lists the returned material and links the tool to simulate_k2_session, leaving no important invocation ambiguity.

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?

There are zero parameters, so parameter semantics are not a meaningful gap. The schema is empty and fully described, and the description appropriately avoids inventing parameter guidance for a no-argument tool.

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 immediately identifies the resource and action: it explains/describes the K2 spaced-repetition engine and enumerates what the explanation returns. It also distinguishes itself from the sibling simulate_k2_session by positioning itself as prerequisite reading rather than execution.

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

Usage Guidelines4/5

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

It gives explicit usage context: 'Read this before simulate_k2_session.' That makes the relationship to the key sibling clear, though it does not state when this tool should be used instead of other documentation-style siblings or whether it is ever unnecessary.

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

get_cube_algorithmsA
Read-only
Inspect

Rubik's cube last-layer algorithm sets used by the K2 cube trainer: full OLL (57 cases), full PLL (21), the two-look beginner subsets, and full ZBLL. Each case returns its primary algorithm plus alternates, with sources and finger-trick notes where recorded. Every algorithm in these sets is verified against a cube simulator by the repo's audit script (app/cube/scripts/audit-algorithms.mjs), run before data changes land. Filter by case_id or group; omit both for the set's structure and levels.

NameRequiredDescriptionDefault
setYesAlgorithm set id
groupNoCase group filter, e.g. 'T Shapes', 'OCLL'
limitNoMax cases (default 20, max 50)
case_idNoSingle case id, e.g. 'oll-21' or 'pll-t'

TDQS

A3.9/5.0
Behavior4/5

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

Beyond readOnlyHint=true, the description discloses the payload shape (primary algorithm plus alternates, sources, finger-trick notes) and a meaningful trust property — every algorithm is validated by app/cube/scripts/audit-algorithms.mjs before data lands. It does not cover pagination behavior or the default/max limit handling, which would round this out.

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?

Four sentences, front-loaded with what the sets are and their sizes, then payload shape, then verification, then filtering. Every sentence carries information; the audit-script sentence is the longest and borders on promotional, but it does establish data quality, which is relevant to an agent deciding whether to trust the output.

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?

There is no output schema, so the description must explain return values — and it does: each case returns the primary algorithm plus alternates, sources, and finger-trick notes, or the set's structure and levels when unfiltered. Combined with complete schema documentation for the four parameters, an agent has everything needed to call it correctly.

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 is 3, and the description earns an increment by explaining the omitted-filter case ('omit both for the set's structure and levels') — semantics the schema does not convey. The set enum values and group examples are already documented in the schema, so no further credit is due there.

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 and resource — retrieving Rubik's cube last-layer algorithm sets (OLL 57, PLL 21, two-look subsets, ZBLL) used by the K2 cube trainer — plus what each case contains. The scope is unmistakable, though it never names a sibling (e.g. explain_k2_algorithm) to contrast against, so differentiation is inferred rather than stated.

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

Usage Guidelines3/5

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

The final sentence gives concrete selection guidance between the filters: 'Filter by `case_id` or `group`; omit both for the set's structure and levels.' That is useful when-to-use-a-parameter guidance, but there is no statement of when to prefer this tool over siblings like explain_k2_algorithm, nor any exclusions or prerequisites.

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

get_entryA
Read-only
Inspect

One deck entry in full, matched on the exact term (the kanji, hanzi, jamo, or word itself). Case-insensitive. Returns every field the deck carries, including the deck-specific extras: stroke counts and JLPT level for kanji, component kanji for compounds, declension and English derivatives for Latin, IPA and pronunciation audio for French.

NameRequiredDescriptionDefault
deckYesDeck id from list_decks
termYesExact term to fetch

TDQS

A4.2/5.0
Behavior4/5

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

readOnlyHint=true already covers the safety profile, and the description adds real context beyond it: case-insensitive matching and the fact that all deck fields, including deck-specific extras, come back. It does not say what happens when the exact term is absent from the deck, which is the main remaining behavioral gap.

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

Conciseness5/5

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

Two sentences, zero preamble: the matching rule leads, then the return payload. The enumerated deck extras are dense but each item disambiguates what 'every field' means for a given deck.

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?

With no output schema, the description carries the burden of describing returns and does so per deck family. What it omits is the failure mode — whether a missing term yields an empty result or an error — which matters for a lookup keyed on an exact string.

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% and the deck enum is documented as coming from list_decks, so baseline is 3. The description goes further by explaining what 'term' can physically be (kanji, hanzi, jamo, word) and that matching is case-insensitive — meaning the schema alone would not supply.

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?

Names a specific verb+resource (fetch one deck entry) and pins the matching rule: exact term, case-insensitive, where the term may be a kanji, hanzi, jamo, or word. This implicitly separates it from search_deck, which an agent can infer handles non-exact lookup.

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

Usage Guidelines3/5

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

The exact-match requirement implies when this tool applies (you already know the term), but the description never names search_deck or states an exclusion such as 'use search_deck when you only have a partial string or a meaning'. Usage must be inferred.

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

get_site_infoA
Read-only
Inspect

What K2 is, which apps it runs, what this server does and does not expose, and every machine-readable surface. Also returns the full capability map — every tool, prompt, and resource — so a client with a stale or tools-only roster can still see the whole surface.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

readOnlyHint=true is consistent with a pure introspection call, and the description adds information annotations cannot convey: the response enumerates tools, prompts, and resources, and explicitly states what the server does and does not expose. It omits practical traits such as response size or whether the payload is large enough to matter for context budgeting, which is the main remaining gap.

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?

Two sentences, front-loaded with the highest-value content ('What K2 is, which apps it runs') before the capability-map detail. There is minor overlap between 'every machine-readable surface' and 'the full capability map — every tool, prompt, and resource', but the second phrasing sharpens rather than repeats.

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?

With no input schema, no output schema, and a single readOnlyHint, the description carries most of the burden and does so adequately: it enumerates the categories of information returned. It stops short of describing the shape of the capability map or noting that the response can be large, which would help an agent decide when to call it during a session.

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?

The tool takes zero parameters, so there is no parameter semantics to explain and the description is not required to compensate. The baseline for a no-param tool applies and nothing in the description muddies it.

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?

The description names a specific resource — K2 itself, the apps it runs, the server's exposure surface, and the full capability map — which is far beyond a restatement of 'get_site_info'. It is phrased as noun fragments rather than an explicit verb+object (e.g., 'returns server metadata'), so the action is inferred rather than stated, and it never explicitly distinguishes itself as the self-discovery entry point versus the domain siblings like list_decks.

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

Usage Guidelines4/5

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

It gives a concrete triggering condition: use it when a client has a 'stale or tools-only roster' and needs to see the whole surface. That is a real use-case context an agent can act on. It stops short of exclusions or naming alternatives (e.g., 'for algorithm details use explain_k2_algorithm instead'), so it is clear context without routing guidance.

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

list_decksA
Read-only
Inspect

The catalog of K2 study decks: eight curated datasets spanning Japanese kanji and vocabulary, HSK Chinese, Korean Hangul, Spanish, French, classical Latin and medical Latin. Returns each deck id (the value other tools take), what it teaches, how many entries it has, and what its fields mean. Call this before search_deck.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare readOnlyHint, so the description carries the rest of the burden, and it does: it states the return payload includes deck ids usable by other tools, what each deck teaches, entry counts, and field meanings. That is meaningful disclosure for a lookup tool, though it omits whether the list is static or paginated.

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?

Three sentences, front-loaded with the resource, then the return contents, then the actionable instruction. The deck enumeration is somewhat long but each named domain earns its place by telling the agent this catalog is worth consulting.

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?

With no input schema and no output schema, the description is the only place return shape can be described, and it covers ids, subject matter, entry counts, and field semantics. A brief note on stability or size of the response would make it complete.

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?

The tool takes zero parameters, so the baseline is 4. Nothing in the description invents or misdescribes inputs, and the note that returned ids are 'the value other tools take' usefully describes how outputs feed other calls.

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?

Names a specific resource (the catalog of K2 study decks) and enumerates exactly what it covers (eight curated datasets across kanji, HSK, Hangul, Spanish, French, Latin). It is clearly distinguishable from search_deck and get_entry, which operate on individual entries rather than the catalog.

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

Usage Guidelines4/5

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

Explicitly instructs 'Call this before search_deck,' giving the agent an ordering rule and naming the sibling that depends on it. It stops short of saying when not to call it (e.g., if deck ids are already known), so a 4 rather than a 5.

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

search_deckA
Read-only
Inspect

Search one deck. query substring-matches the term, its reading/pronunciation, its English meanings, and its category, so "bone" finds entries glossed as bone and "ㄱ" finds that jamo. Narrow with category (exact, from list_decks) or difficulty (1-5; for the kanji deck this is the school grade). Paginated via offset.

NameRequiredDescriptionDefault
deckYesDeck id from list_decks
limitNoMax results (default 20, max 50)
queryNoSubstring to match against term, reading, meanings, category
offsetNoSkip this many matches (paging)
categoryNoExact category filter (see list_decks)
difficultyNoExact difficulty/grade filter (1-5; kanji deck = grade 1-6)

TDQS

A4.2/5.0
Behavior4/5

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

readOnlyHint already certifies a safe read. The description adds meaningful behavioral detail: substring matching spans term/reading/meanings/category, category is exact, difficulty maps to kanji school grade, and results paginate via offset. It stops short of describing result ordering or return fields.

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

Conciseness5/5

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

Three compact sentences, front-loaded with the action and matching semantics; the examples are purposeful and no sentence restates the schema unnecessarily. There is zero filler.

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?

For a six-parameter read-only search with full schema coverage, the description gives enough to call it correctly: deck scope, query matching, filters, and paging. It does not describe result shape or ordering, which is a minor gap because no output schema exists.

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 schema already documents all six parameters and the baseline would be 3. The description earns extra credit by expanding query semantics with examples, clarifying category is exact and sourced from list_decks, and explaining difficulty's deck-specific meaning. It adds little for limit/offset beyond the schema, but enough for a 4.

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?

States 'Search one deck' and immediately defines what the query matches (term, reading, meanings, category), with concrete examples. This is a specific verb+resource, and the one-deck search scope distinguishes it from siblings like list_decks and get_entry.

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

Usage Guidelines3/5

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

The implied use case is searching within a single deck, and it explains how to narrow with category/difficulty and page with offset. However, it never explicitly states when to use this instead of list_decks or get_entry, nor any when-not conditions.

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

simulate_k2_sessionA
Read-only
Inspect

Run the real K2 engine over your own items. Give it a list of terms (any strings — your flashcards, cube cases, anything), a study mode, and a sequence of answers, and it returns the p-value trajectory per answer, which items are now mastered, when the pool expanded, and the probability distribution over what K2 would serve next. Use this to drive your own drilling with K2 as the scheduler instead of reimplementing it.

NameRequiredDescriptionDefault
modeNoWhich dimension is being drilled (each carries its own p).
stepsYesAnswers in order. `outcome` is correct | incorrect | hinted (hinted = answered with the crutch visible; cools more weakly).
termsYesThe item pool. Any strings; the engine only needs identity.
starting_levelNoTreat the first N terms as already known (pre-cooled), as the app's head-start option does. Default 0.

TDQS

A4.1/5.0
Behavior4/5

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

With readOnlyHint=true already declaring the safety profile, the description adds meaningful context beyond annotations: it specifies exactly what the simulation returns per answer. It does not address determinism, cost on large step sequences, or statefulness, but the return-shape disclosure 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?

Three sentences, front-loaded with what the tool does before the return values and the recommended use. The middle sentence is long and comma-heavy, but every clause carries information; the 'instead of reimplementing it' closing line earns its place.

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?

There is no output schema, and the description compensates by naming the four return components an agent needs to interpret results. The one gap is that it describes 'a study mode' as if always supplied, though mode is optional in the schema, leaving the default behavior unstated.

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?

Schema description coverage is 100%, so the schema already defines every parameter, including the hint that 'hinted' cools more weakly. The description restates 'terms', 'mode', and 'sequence of answers' but adds no semantics beyond the schema, and never mentions 'starting_level'.

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?

States a specific action and resource: run the real K2 engine over a caller-supplied item pool. It also enumerates the outputs (p-value trajectory, mastered items, pool expansion, next-item distribution), which makes it clearly distinct from the explanation-oriented sibling explain_k2_algorithm.

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

Usage Guidelines4/5

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

The final sentence gives a concrete use case: drive your own drilling with K2 as the scheduler rather than reimplementing it. It gives clear situational context but names no alternative tool by name and states no exclusions or limits.

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

Tool Schema Changelog

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

  1. 7 tool updates
    • First observedexplain_k2_algorithm
    • First observedget_cube_algorithms
    • First observedget_entry
    • First observedget_site_info
    • First observedlist_decks
    • First observedsearch_deck
    • First observedsimulate_k2_session

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides spaced-repetition scheduling with the SM-2 algorithm as MCP tools, enabling agents to manage review items like flashcards or vocab locally. It supports adding, grading, and listing due items, plus optional pro features for export and forecast.
    6
    MIT
  • 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
    Gives Claude persistent memory to coach language learning: it stores a personal profile, builds weekly plans and daily lesson tasks, schedules spaced-repetition review cards, and tracks streaks and XP. All data is kept in a single local JSON file with no API key, account, or network calls.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources