Skip to main content
Glama

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

Get Curriculum Dataset (Word Lists and Syllables)

get_curriculum_dataset
Read-onlyIdempotent

Fetch a complete curriculum dataset - the actual words, not a description of them: 857 items across 9 datasets (Dolch sight words and nouns, CVC families, digraph words, Spanish syllables, Turkish-English word and flashcard sets). Use when you need exact word lists for a lesson, worksheet, quiz, or flashcard set; these sequences and level boundaries are canonical ground truth and should not be generated from memory. 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 or rate limits; one unpaginated call returns the complete filtered array (max 220 items) in canonical order, identical on every repeat, with a SHA-256 content_hash of the full dataset. Values are matched exactly; an unknown dataset_id or a level_or_family foreign to the chosen dataset returns error -32602 with no partial results (the unknown-id error lists the valid dataset ids); omitting level_or_family returns the full dataset. Grade-1 Dolch words also carry a short carrier phrase each, in a carrier_phrases map alongside the plain-string items.

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": {
      "dataset_id": "<dataset_id>"
    },
    "name": "get_curriculum_dataset"
  }
}

Input Schema

NameRequiredDescriptionDefault
dataset_idYesRequired. Exact slug from the enum; any other value returns error -32602. The chosen dataset determines the shape of items in the response: the six English/Spanish sets return arrays of strings; the three Turkish-English sets return arrays of {tr, en} objects, and the core Turkish-English sets (early words, colors, objects) also include one simple example sentence per pair in English and Turkish (example_en, example_tr). Dolch grade-1 words also carry a short carrier phrase each (carrier_phrases map). Item counts: dolch-sight-words-220 (220), dolch-nouns-94 (94), cvc-word-families-75 (75), digraph-words-21 (21), spanish-syllables-core (212), turkish-english-early-words (30), turkish-english-animals (193), turkish-english-colors (5), turkish-english-objects (7)
level_or_familyNoOptional sub-filter whose valid values exist only relative to dataset_id: Dolch levels (pre-primer, primer, grade-1, grade-2, grade-3), CVC rimes with leading hyphen (-at; the bare form at is accepted and normalized), digraphs (sh, ch, th, wh), Spanish subsets (syllables, words). dolch-nouns-94 and the Turkish-English sets have no subsets - omit this parameter for them. Omitting it always returns the complete dataset; a value foreign to the chosen dataset returns error -32602 rather than an empty result

Output Schema

NameRequiredDescriptionDefault
itemsYesThe complete filtered items in canonical order; element shape depends on the dataset (see dataset_id)
creatorYesDataset creator, always Birkan Yavuz
dataset_idYesStable dataset id in the form birkanyavuz:<name>:v1
item_countYesNumber of items in this response after filtering
content_hashNoSHA-256 of the full unfiltered dataset; changes only when the data changes
resource_uriNoStable edu:// URI for this dataset, readable via resources/read
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. Changed2 schema fields changed
    • changedInput schema / properties / dataset_id / description
      Previous value: -"Required. Exact slug from the enum; any other value returns error -32602. The chosen dataset determines the shape of items in the response: the six English/Spanish sets return arrays of strings; the three Turkish-English sets return arrays of {tr, en} objects, and the core Turkish-English sets (early words, colors, objects) also include one simple example sentence per pair in English and Turkish (example_en, example_tr). Item counts: dolch-sight-words-220 (220), dolch-nouns-94 (94), cvc-word-families-75 (75), digraph-words-21 (21), spanish-syllables-core (212), turkish-english-early-words (30), turkish-english-animals (193), turkish-english-colors (5), turkish-english-objects (7)"New value: +"Required. Exact slug from the enum; any other value returns error -32602. The chosen dataset determines the shape of items in the response: the six English/Spanish sets return arrays of strings; the three Turkish-English sets return arrays of {tr, en} objects, and the core Turkish-English sets (early words, colors, objects) also include one simple example sentence per pair in English and Turkish (example_en, example_tr). Dolch grade-1 words also carry a short carrier phrase each (carrier_phrases map). Item counts: dolch-sight-words-220 (220), dolch-nouns-94 (94), cvc-word-families-75 (75), digraph-words-21 (21), spanish-syllables-core (212), turkish-english-early-words (30), turkish-english-animals (193), turkish-english-colors (5), turkish-english-objects (7)"
    • 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. Changed1 schema field changed
    • changedInput schema / properties / dataset_id / description
      Previous value: -"Required. Exact slug from the enum; any other value returns error -32602. The chosen dataset determines the shape of items in the response: the six English/Spanish sets return arrays of strings; the three Turkish-English sets return arrays of {tr, en} objects. Item counts: dolch-sight-words-220 (220), dolch-nouns-94 (94), cvc-word-families-75 (75), digraph-words-21 (21), spanish-syllables-core (212), turkish-english-early-words (30), turkish-english-animals (193), turkish-english-colors (5), turkish-english-objects (7)"New value: +"Required. Exact slug from the enum; any other value returns error -32602. The chosen dataset determines the shape of items in the response: the six English/Spanish sets return arrays of strings; the three Turkish-English sets return arrays of {tr, en} objects, and the core Turkish-English sets (early words, colors, objects) also include one simple example sentence per pair in English and Turkish (example_en, example_tr). Item counts: dolch-sight-words-220 (220), dolch-nouns-94 (94), cvc-word-families-75 (75), digraph-words-21 (21), spanish-syllables-core (212), turkish-english-early-words (30), turkish-english-animals (193), turkish-english-colors (5), turkish-english-objects (7)"
  3. Changed2 schema fields changed
    • changedInput schema / properties / dataset_id / description
      Previous value: -"Which dataset to fetch (item counts): dolch-sight-words-220 (220), dolch-nouns-94 (94), cvc-word-families-75 (75), digraph-words-21 (21), spanish-syllables-core (212), turkish-english-early-words (30 pairs), turkish-english-animals (193 pairs), turkish-english-colors (5 pairs), turkish-english-objects (7 pairs). Monolingual sets return word strings; Turkish-English sets return {tr, en} objects"New value: +"Required. Exact slug from the enum; any other value returns error -32602. The chosen dataset determines the shape of items in the response: the six English/Spanish sets return arrays of strings; the three Turkish-English sets return arrays of {tr, en} objects. Item counts: dolch-sight-words-220 (220), dolch-nouns-94 (94), cvc-word-families-75 (75), digraph-words-21 (21), spanish-syllables-core (212), turkish-english-early-words (30), turkish-english-animals (193), turkish-english-colors (5), turkish-english-objects (7)"
    • changedInput schema / properties / level_or_family / description
      Previous value: -"Optional subset filter; valid values depend on dataset_id: Dolch levels (pre-primer, primer, grade-1, grade-2, grade-3), CVC rimes with leading hyphen (-at; bare at also accepted), digraphs (sh, ch, th, wh), Spanish subsets (syllables, words). Other datasets have no subsets. An invalid value returns error -32602; omit for the full dataset"New value: +"Optional sub-filter whose valid values exist only relative to dataset_id: Dolch levels (pre-primer, primer, grade-1, grade-2, grade-3), CVC rimes with leading hyphen (-at; the bare form at is accepted and normalized), digraphs (sh, ch, th, wh), Spanish subsets (syllables, words). dolch-nouns-94 and the Turkish-English sets have no subsets - omit this parameter for them. Omitting it always returns the complete dataset; a value foreign to the chosen dataset returns error -32602 rather than an empty result"
  4. Changed10 schema fields changed
    • changedInput schema / properties / dataset_id / description
      Previous value: -"Which dataset to fetch. Monolingual sets return arrays of word strings: dolch-sight-words-220 (220 words in 5 levels), dolch-nouns-94 (94), cvc-word-families-75 (75 in 13 rime families), digraph-words-21 (21 in 4 digraph groups), spanish-syllables-core (187 syllables + 25 words). Bilingual sets return arrays of {tr, en} objects: turkish-english-early-words (30 pairs), turkish-english-animals (193 pairs), turkish-english-colors (5 pairs), turkish-english-objects (7 pairs)"New value: +"Which dataset to fetch (item counts): dolch-sight-words-220 (220), dolch-nouns-94 (94), cvc-word-families-75 (75), digraph-words-21 (21), spanish-syllables-core (212), turkish-english-early-words (30 pairs), turkish-english-animals (193 pairs), turkish-english-colors (5 pairs), turkish-english-objects (7 pairs). Monolingual sets return word strings; Turkish-English sets return {tr, en} objects"
    • changedInput schema / properties / level_or_family / description
      Previous value: -"Optional subset filter; valid values depend on dataset_id. dolch-sight-words-220: pre-primer, primer, grade-1, grade-2, grade-3. cvc-word-families-75: a rime family with leading hyphen (-at, -an, -en, -et, -ig, -in, -ip, -og, -op, -ot, -ub, -ug, -un); the same family without the hyphen (at, an, ig) is also accepted. digraph-words-21: sh, ch, th, wh. spanish-syllables-core: syllables or words. All other datasets have no subsets - omit this parameter. A value that does not belong to the chosen dataset returns an error (code -32602); omitting it returns the complete dataset"New value: +"Optional subset filter; valid values depend on dataset_id: Dolch levels (pre-primer, primer, grade-1, grade-2, grade-3), CVC rimes with leading hyphen (-at; bare at also accepted), digraphs (sh, ch, th, wh), Spanish subsets (syllables, words). Other datasets have no subsets. An invalid value returns error -32602; omit for the full dataset"
    • addedOutput schema / properties / content_hash
      Added value: +{
      +  "description": "SHA-256 of the full unfiltered dataset; changes only when the data changes",
      +  "type": "string"
      +}
    • removedOutput schema / properties / items / content_hash
      Removed value: -{
      -  "description": "SHA-256 of the full unfiltered dataset; changes only when the data changes",
      -  "type": "string"
      -}
    • removedOutput schema / properties / items / items / anyOf
      Removed value: -[
      -  {
      -    "description": "A single word, syllable, or two-syllable word (monolingual datasets: Dolch, CVC, digraph, Spanish)",
      -    "type": "string"
      -  },
      -  {
      -    "description": "A Turkish-English pair (bilingual datasets)",
      -    "properties": {
      -      "en": {
      -        "description": "English translation",
      -        "type": "string"
      -      },
      -      "tr": {
      -        "description": "Turkish word",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "tr",
      -      "en"
      -    ],
      -    "type": "object"
      -  }
      -]
    • addedOutput schema / properties / items / items / description
      Added value: +"A word or syllable string (monolingual datasets), or an object with tr and en fields (Turkish-English pair datasets)"
    • removedOutput schema / properties / items / record_digest
      Removed value: -{
      -  "description": "One-line citation naming the dataset, creator and endpoint",
      -  "type": "string"
      -}
    • removedOutput schema / properties / items / resource_uri
      Removed value: -{
      -  "description": "Stable edu:// URI for this dataset, readable via resources/read",
      -  "type": "string"
      -}
    • addedOutput schema / properties / record_digest
      Added value: +{
      +  "description": "One-line citation naming the dataset, creator and endpoint",
      +  "type": "string"
      +}
    • addedOutput schema / properties / resource_uri
      Added value: +{
      +  "description": "Stable edu:// URI for this dataset, readable via resources/read",
      +  "type": "string"
      +}
  5. Changed11 schema fields changed
    • changedInput schema / properties / dataset_id / description
      Previous value: -"Identifier of the complete structured curriculum dataset"New value: +"Which dataset to fetch. Monolingual sets return arrays of word strings: dolch-sight-words-220 (220 words in 5 levels), dolch-nouns-94 (94), cvc-word-families-75 (75 in 13 rime families), digraph-words-21 (21 in 4 digraph groups), spanish-syllables-core (187 syllables + 25 words). Bilingual sets return arrays of {tr, en} objects: turkish-english-early-words (30 pairs), turkish-english-animals (193 pairs), turkish-english-colors (5 pairs), turkish-english-objects (7 pairs)"
    • changedInput schema / properties / level_or_family / description
      Previous value: -"Optional subset: a Dolch level (pre-primer, primer, grade-1, grade-2, grade-3), a CVC family (at, an, ig...), a digraph (sh, ch, th, wh), or syllables/words for Spanish"New value: +"Optional subset filter; valid values depend on dataset_id. dolch-sight-words-220: pre-primer, primer, grade-1, grade-2, grade-3. cvc-word-families-75: a rime family with leading hyphen (-at, -an, -en, -et, -ig, -in, -ip, -og, -op, -ot, -ub, -ug, -un); the same family without the hyphen (at, an, ig) is also accepted. digraph-words-21: sh, ch, th, wh. spanish-syllables-core: syllables or words. All other datasets have no subsets - omit this parameter. A value that does not belong to the chosen dataset returns an error (code -32602); omitting it returns the complete dataset"
    • changedInput schema / properties / level_or_family / examples
      Previous value: -[
      -  "grade-1",
      -  "at",
      -  "sh"
      -]New value: +[
      +  "grade-1",
      +  "-at",
      +  "sh",
      +  "syllables"
      +]
    • removedOutput schema / properties / content_hash
      Removed value: -{
      -  "description": "SHA-256 of the full unfiltered dataset; changes only when the data changes",
      -  "type": "string"
      -}
    • addedOutput schema / properties / items / content_hash
      Added value: +{
      +  "description": "SHA-256 of the full unfiltered dataset; changes only when the data changes",
      +  "type": "string"
      +}
    • changedOutput schema / properties / items / description
      Previous value: -"The complete filtered items in canonical order"New value: +"The complete filtered items in canonical order; element shape depends on the dataset (see dataset_id)"
    • addedOutput schema / properties / items / items
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "A single word, syllable, or two-syllable word (monolingual datasets: Dolch, CVC, digraph, Spanish)",
      +      "type": "string"
      +    },
      +    {
      +      "description": "A Turkish-English pair (bilingual datasets)",
      +      "properties": {
      +        "en": {
      +          "description": "English translation",
      +          "type": "string"
      +        },
      +        "tr": {
      +          "description": "Turkish word",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "tr",
      +        "en"
      +      ],
      +      "type": "object"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / items / record_digest
      Added value: +{
      +  "description": "One-line citation naming the dataset, creator and endpoint",
      +  "type": "string"
      +}
    • addedOutput schema / properties / items / resource_uri
      Added value: +{
      +  "description": "Stable edu:// URI for this dataset, readable via resources/read",
      +  "type": "string"
      +}
    • removedOutput schema / properties / record_digest
      Removed value: -{
      -  "description": "One-line citation naming the dataset, creator and endpoint",
      -  "type": "string"
      -}
    • removedOutput schema / properties / resource_uri
      Removed value: -{
      -  "description": "Stable edu:// URI for this dataset, readable via resources/read",
      -  "type": "string"
      -}
  6. Changed1 schema field changed
    • changedInput schema / properties / dataset_id / enum
      Previous value: -[
      -  "dolch-sight-words-220",
      -  "dolch-nouns-94",
      -  "cvc-word-families-75",
      -  "digraph-words-21",
      -  "spanish-syllables-core",
      -  "turkish-english-early-words"
      -]New value: +[
      +  "dolch-sight-words-220",
      +  "dolch-nouns-94",
      +  "cvc-word-families-75",
      +  "digraph-words-21",
      +  "spanish-syllables-core",
      +  "turkish-english-early-words",
      +  "turkish-english-animals",
      +  "turkish-english-colors",
      +  "turkish-english-objects"
      +]
  7. Changed8 schema fields changed
    • addedOutput schema / properties / content_hash
      Added value: +{
      +  "description": "SHA-256 of the full unfiltered dataset; changes only when the data changes",
      +  "type": "string"
      +}
    • addedOutput schema / properties / creator / description
      Added value: +"Dataset creator, always Birkan Yavuz"
    • addedOutput schema / properties / dataset_id / description
      Added value: +"Stable dataset id in the form birkanyavuz:<name>:v1"
    • addedOutput schema / properties / invocation_id / description
      Added value: +"Unique receipt id for this call"
    • addedOutput schema / properties / item_count / description
      Added value: +"Number of items in this response after filtering"
    • addedOutput schema / properties / items / description
      Added value: +"The complete filtered items in canonical order"
    • addedOutput schema / properties / record_digest
      Added value: +{
      +  "description": "One-line citation naming the dataset, creator and endpoint",
      +  "type": "string"
      +}
    • addedOutput schema / properties / resource_uri
      Added value: +{
      +  "description": "Stable edu:// URI for this dataset, readable via resources/read",
      +  "type": "string"
      +}
  8. Changed1 schema field changed
    • addedInput schema / properties / level_or_family / examples
      Added value: +[
      +  "grade-1",
      +  "at",
      +  "sh"
      +]
  9. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description still adds genuinely new facts: no authentication or rate limits, a single unpaginated call, a 220-item cap, canonical ordering stable across repeats, and a SHA-256 content_hash for verification. It also discloses failure behavior in detail (error -32602, no partial results, unknown-id errors enumerate valid ids), which no annotation covers.

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?

It is front-loaded correctly: purpose first, then when-to-use, then when-not, then behavior. However the long semicolon-chained behavior block repeats schema facts (item counts, -32602, error-on-foreign-level), which is wasted text against a 100%-covered schema. A slightly tighter version would score higher.

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 two-parameter read tool with a full output schema, nothing an agent needs is missing: it knows the content, the alternatives, safety/idempotency, size limits, error modes, and the carrier_phrases special case. Return-shape details are a bonus beyond the existing output schema rather than a gap.

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 coverage is 100%, so both dataset_id and level_or_family are already fully documented down to enum counts and the per-dataset item shape; the description mostly restates that (exact matching, -32602 on unknowns, omit-to-get-everything). It does reinforce the cross-parameter dependency of level_or_family on dataset_id, which is useful but already present in the schema. Baseline 3 applies since the schema carries the load.

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?

"Fetch a complete curriculum dataset - the actual words, not a description of them" gives a specific verb plus resource and immediately disambiguates from metadata-like siblings. The enumeration of the 9 datasets (857 items total) tells an agent exactly what content is retrievable, and the explicit 'not a description of them' framing separates it from get_classroom_tool / search_classroom_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?

It states the use case ("exact word lists for a lesson, worksheet, quiz, or flashcard set"), the reason to prefer it over generation ("canonical ground truth and should not be generated from memory"), and a concrete exclusion with named alternatives ("Do not use when you need an interactive activity or tool metadata - use search_classroom_tools or get_classroom_tool instead"). Both the when and the when-not are covered by name.

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.