Skip to main content
Glama

K-12 Educational Tools & Curriculum Catalog (Math, Reading, Spanish)

Get Word List by Topic (One Call)

get_word_list
Read-onlyIdempotent

Get a word list in one call from a plain topic, without needing the dataset slug: topic (for example "sight words", "CVC", "digraph", "Spanish syllables", "animals"), optional level, optional count, optional offset. The lists are the standard published classroom lists served exactly as published (Dolch sight words and nouns, CVC families, digraph words, Spanish syllables, Turkish-English pairs). The core Turkish-English sets (early words, colors, everyday objects) also include one simple example sentence per pair in English and Turkish. Grade-1 Dolch words also carry a short carrier phrase each in a carrier_phrases map. Use when you need a ready-to-use list of words for a lesson, worksheet, quiz, or flashcard set and do not already hold a dataset slug. Do not use when you need an interactive activity or tool metadata - use search_classroom_tools or get_classroom_tool instead. Behavior: read-only, idempotent, no authentication; returns count items starting at offset (default 0) in canonical order when count is given, otherwise the full filtered list from offset, identical on every repeat, with a SHA-256 content_hash of the full dataset. The response carries offset, total_count, and has_more so a caller can fetch the next batch statelessly; an offset past the end of the list returns an empty list with has_more false, never an error. An unknown topic or a level foreign to the matched dataset returns error -32602 with no partial results.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "topic": "<topic>"
    },
    "name": "get_word_list"
  }
}

Input Schema

NameRequiredDescriptionDefault
countNoOptional maximum number of items to return, taken from the start of the canonical order; omit to return the full filtered list
levelNoOptional level or family within the matched dataset, same values as get_curriculum_dataset level_or_family (Dolch levels pre-primer, primer, grade-1, grade-2, grade-3; CVC rimes such as -at; digraphs sh, ch, th, wh; Spanish syllables or words). Omit for datasets without subsets
topicYesPlain topic phrase, for example sight words, Dolch nouns, CVC, digraph, Spanish syllables, animals, colors, objects, Turkish early words; an exact dataset slug is also accepted
offsetNoOptional number of items to skip from the start of the canonical order, for fetching the next batch statelessly (for example count=10, offset=10 returns items 11-20); default 0; an offset past the end returns an empty list with has_more false

Output Schema

NameRequiredDescriptionDefault
noteNoPresent only when offset is past the end of the list
itemsYesThe returned items in canonical order; element shape depends on the dataset (see get_curriculum_dataset)
offsetNoNumber of items skipped from the start of the canonical order
creatorYesDataset creator, always Birkan Yavuz
has_moreNoWhether more items remain after this batch
dataset_idYesStable dataset id in the form birkanyavuz:<name>:v1
item_countYesNumber of items in this response after count and offset limiting
total_countYesNumber of items in the filtered list before count and offset limiting
content_hashNoSHA-256 of the full unfiltered dataset; changes only when the data changes
resource_uriNoStable edu:// URI for this dataset
invocation_idYesUnique receipt id for this call
record_digestNoOne-line citation naming the dataset, creator and endpoint
carrier_phrasesNoPresent only for Dolch grade-1 words: each returned grade-1 word mapped to its short carrier phrase

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / carrier_phrases
      Added value: +{
      +  "description": "Present only for Dolch grade-1 words: each returned grade-1 word mapped to its short carrier phrase",
      +  "type": "object"
      +}
  2. Changed6 schema fields changed
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Optional number of items to skip from the start of the canonical order, for fetching the next batch statelessly (for example count=10, offset=10 returns items 11-20); default 0; an offset past the end returns an empty list with has_more false",
      +  "examples": [
      +    0,
      +    10
      +  ],
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / has_more
      Added value: +{
      +  "description": "Whether more items remain after this batch",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / item_count / description
      Previous value: -"Number of items in this response after count limiting"New value: +"Number of items in this response after count and offset limiting"
    • addedOutput schema / properties / note
      Added value: +{
      +  "description": "Present only when offset is past the end of the list",
      +  "type": "string"
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "description": "Number of items skipped from the start of the canonical order",
      +  "type": "integer"
      +}
    • changedOutput schema / properties / total_count / description
      Previous value: -"Number of items in the filtered list before count limiting"New value: +"Number of items in the filtered list before count and offset limiting"
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world, but the description still adds substantial behavioral detail: stateless pagination via count/offset with total_count and has_more, deterministic ordering, a SHA-256 content_hash, out-of-range offsets returning an empty list rather than an error, and error -32602 on unknown topic or invalid level with no partial results.

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-loaded with the core promise, then corpus coverage, then routing, then behavior — a sensible order. It is dense but each sentence carries information; the main cost is some duplication of topic examples and level values that already appear in the schema.

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?

An output schema exists, so return values need not be explained, yet the description still covers pagination fields, content_hash, and the extra carrier_phrases and example-sentence payloads. For a filtered, paginated read tool nothing an agent needs to call it correctly is missing.

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, but the description adds interaction semantics the schema cannot: how count and offset combine ('returns count items starting at offset in canonical order when count is given, otherwise the full filtered list from offset') and what happens at the boundary. It also repeats the topic vocabulary rather than extending it, which keeps it short of a 5.

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 verb and resource ('Get a word list') plus the key differentiator: it works from a plain topic rather than requiring a dataset slug. It enumerates the concrete corpora served (Dolch, CVC, digraph, Spanish syllables, Turkish-English pairs), so an agent knows exactly what this tool produces.

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?

Gives an explicit use case ('lesson, worksheet, quiz, or flashcard set and do not already hold a dataset slug') and explicit exclusions routing to search_classroom_tools and get_classroom_tool for activities and tool metadata. The one gap is that it never names get_curriculum_dataset, the sibling it is most likely to be confused with when the caller does hold a slug.

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.