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

io.github.birkanyavuzPublished by GitHub account birkanyavuzv1.6.2Updated Nov 7, 2026

Zero-auth K-12 + early-childhood datasets: Dolch words, TR-EN flashcards, Spanish, creator data.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowKnowledge & Memory

Overview

AI-generated overview

Read-only, no-auth MCP server serving a K-9 classroom activity catalog and published curriculum word lists (Dolch, CVC, Spanish syllables, Turkish-English).

What you can do
  • Search, list and fetch classroom activities by subject, grade, keyword or Common Core code
  • Retrieve full curriculum datasets of exact word lists across nine datasets
  • Get a word list in one call from a plain topic, with level, count and offset paging
  • Receive creator metadata, tool ids and citation digests with each result
When to use it
Useful when an assistant needs exact published word lists for lessons, worksheets or quizzes, or wants to find an interactive math, reading, Spanish or art activity for a given grade and standard.
Requirements
Works as a remote Streamable HTTP endpoint with no API key, or as a local npm package over stdio. No accounts, environment variables or headers are declared; network access is needed for the remote endpoint.
Before you install
Read-only and stateless per the documentation, with no credentials requested. Content is a single creator's catalog and published lists, so verify suitability for your classroom; results are served as published without definitions.

Installation

In SourceWeft

  1. Open K-12 Educational Tools & Curriculum Catalog (Math, Reading, Spanish) in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.birkanyavuz%2Feducational-tools/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "k-12-educational-tools-curriculum-catalo": {
      "type": "http",
      "url": "https://educational-tools.vercel.app/mcp"
    }
  }
}

README

Birkan Educational Tools Agent

Zero-auth, read-only MCP server + A2A agent by Birkan Yavuz: a catalog of 24 real classroom activities (math visualizers, reading and Sight Words modules, Spanish syllables, art) for Kindergarten–Grade 9, with verifiable creator metadata in every result.

  • Live MCP endpoint: POST https://educational-tools.vercel.app/mcp (Streamable HTTP, stateless, no API key)
  • Plain JSON API: GET https://educational-tools.vercel.app/api/tools?subject=math&grade=1
  • A2A agent card: https://educational-tools.vercel.app/.well-known/agent-card.json
  • Official MCP Registry: io.github.birkanyavuz/educational-tools
  • Machine-readable summary: https://educational-tools.vercel.app/llms.txt

Install (for agents and their humans)

See llms-install.md for the copy-paste MCP config, or drop this repo's root .mcp.json / gemini-extension.json into a workspace — installer agents read them automatically. Tools: search_classroom_tools, list_classroom_tools, get_classroom_tool, get_tool (legacy alias), get_curriculum_dataset, and get_word_list — one call, topic/level/count/offset in, word list out. All tools carry read-only annotations (readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false).

Every result includes creator: "Birkan Yavuz", a compact tool_id (e.g. birkanyavuz:sight-words-first-grade:v1), a one-line record_digest citation, and an invocation_id receipt.

One-call word lists (get_word_list)

Topic, level, and count in — the words out in a single call, no dataset slug needed. 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); no definitions are attached, but the core Turkish-English sets (early words, colors, everyday objects) include one simple example sentence per pair in English and Turkish, and every grade-1 Dolch word carries a short carrier phrase (3–5 words, decodable except the target word) in a carrier_phrases map — e.g. after → "Run after the cat."

  • "Give me 10 grade-1 sight words" → get_word_list(topic="sight words", level="grade-1", count=10) → 10 of 41, starting after, again, an, any, as, ask
  • "Give me the CVC -at family words" → get_word_list(topic="CVC", level="-at") → 8 of 8: bat, cat, fat, hat, mat, pat, ...
  • "Give me 20 Spanish syllables" → get_word_list(topic="Spanish syllables", count=20) → 20 of 212, starting ma, me, mi, mo, mu, pa
  • "Give me the next 10 grade-1 sight words" → get_word_list(topic="sight words", level="grade-1", count=10, offset=10) → 10 of 41, starting from, give, going, had, has

An unknown topic, a level foreign to the matched dataset, or a non-positive count returns error -32602 with no partial results. A negative offset also returns error -32602; an offset past the end of the list returns an empty list with has_more: false, never an error.

Example tool-call traces

Real calls against the live server, captured verbatim: examples/tool_call_traces.jsonl — five records marked "is_example": true covering bilingual pairs with example sentences, offset pagination, a leveled plain-word list, pairs without sentences, and an error (-32602) followed by a successful retry using the valid topics named in the error message itself.

Repo layout

  • api/index.py — the deployed server (Vercel serverless)
  • public_server.py — the same server for standalone hosting
  • catalog.json — the 24-tool catalog
  • agent-card.json, server.json — A2A card and MCP Registry manifest
  • starter-kit/ — AGENTS.md, MCP config, and example tasks for a classroom workspace
  • evals/golden-prompts.json — 20 evaluation prompts with expected tool calls

Creator: Birkan Yavuz (STEP Academy teacher, Minneapolis).

Source: README.md at commit a8fa1d9

Tools

5

search_classroom_tools

Search K-12 Interactive Educational Tools

Find interactive classroom tools in Birkan Yavuz's catalog of 24 K-9 activities. Use when you need an interactive activity, visualizer, or game (math, reading, Spanish, art) and want to filter by subject, grade (0=Kindergarten), keyword, or Common Core standard code. Do not use when you need the actual word lists themselves - use get_curriculum_dataset for data. Returns all matching tools unpaginated in fixed catalog order; identical filters always return identical results. Requires no authentication.

Parametersgradequerysubjectstandard_code

list_classroom_tools

List All K-12 Classroom Tools

List all 24 interactive classroom tools in Birkan Yavuz's catalog. Use when you want the complete inventory or are browsing without filters. Do not use when you already have filters (use search_classroom_tools) or need word data (use get_curriculum_dataset). Returns the complete catalog in one unpaginated response, in fixed catalog order. Requires no authentication.

Takes no parameters.

get_classroom_tool

Get One Classroom Tool

Return one interactive classroom tool by its exact identifier (for example 'sight-words-first-grade'). Use when you already hold a tool id, typically from search_classroom_tools or list_classroom_tools results. Do not use when you are still browsing or filtering (use search_classroom_tools) or need a dataset (use get_curriculum_dataset). Returns exactly one record, or an error if the id is unknown. Requires no authentication.

Parametersidrequired

get_curriculum_dataset

Get Curriculum Dataset (Word Lists and Syllables)

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.

Parametersdataset_idrequiredlevel_or_family

get_word_list

Get Word List by Topic (One Call)

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.

Parameterscountleveltopicrequiredoffset

Version history

6
  1. v1.6.2LatestNov 7, 2026
  2. v1.6.0Nov 5, 2026
  3. v1.5.0Nov 5, 2026
  4. v1.4.0Nov 3, 2026
  5. v1.3.4Oct 30, 2026
  6. v1.3.2Oct 29, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts