K-12 Educational Tools & Curriculum Catalog (Math, Reading, Spanish)
Server Details
Zero-auth K-12 catalog: math visualizers, Sight Words reading, Spanish tools, creator metadata.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- birkanyavuz/educational-tools
- GitHub Stars
- 0
TDQS
Scored across 4 tools
list_classroom_tools and search_classroom_tools have distinguishable roles (enumerate vs filter), but get_classroom_tool and get_tool are explicitly the same operation under two names, forcing an agent to choose arbitrarily. The alias creates a real misselection risk even though descriptions clarify the relationship.
Three tools follow a clean verb_noun pattern with the 'classroom' domain qualifier (get/list/search_classroom_tools), but get_tool breaks the pattern by dropping the qualifier. The deviation is readable but signals the legacy/alias status inconsistently.
Four tools is thin for a catalog server, and one of those slots is consumed by a redundant legacy alias, effectively leaving three distinct operations. It is not a severe mismatch, but the surface feels under-scoped rather than well-scoped.
The read-only catalog domain is largely covered by list, get-by-id, and filter/search, which supports the main discovery workflows. Minor gaps remain (no way to enumerate available grades/subjects, no pagination or bulk retrieval), and the legacy alias adds confusion rather than coverage.
Available Tools
4 toolsget_classroom_toolGet One Classroom ToolARead-onlyIdempotentInspect
Return one classroom tool by identifier (for example 'sight-words-first-grade'), with grade level, subject, learning objective, and creator.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| creator | Yes | |
| objective | Yes | |
| gradeLevel | Yes | |
| invocation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered structurally. The description adds only a summary of returned fields, and says nothing about behavior on a missing/invalid id, which is the main thing an agent would want to know for a lookup tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler: verb, resource, cardinality, key parameter, and return contents in a single pass. Nothing redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with an output schema and full annotation coverage, the description covers what it returns and how to identify the resource. The remaining gap is the absence of a fallback path when the id is unknown, but that is minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single property is a bare string, so the description carries the burden — and it does add value by giving a concrete identifier example ("sight-words-first-grade"), clarifying the expected format and that ids are human-readable slugs rather than opaque numbers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Return one classroom tool") and scopes it to single-item retrieval by identifier, which implicitly contrasts with the list/search siblings. It does not explicitly distinguish itself from the sibling named get_tool, leaving some ambiguity about which getter to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by "by identifier" — call it when you already have an id — but there is no explicit when-to-use guidance, no statement of what to do when the id is unknown (i.e., use search_classroom_tools first), and no differentiation from get_tool. An agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_toolGet Tool (legacy alias)ARead-onlyIdempotentInspect
Legacy alias of get_classroom_tool: return one catalog tool by id, with creator required.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds only 'creator required,' which is ambiguous and may mislead about what the tool demands. No rate-limit, error, or return-shape context is provided beyond what annotations carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the alias relationship and lookup semantics up front. Nothing is wasted, though the trailing clause is the weakest part.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only single-id lookup with rich annotations, the description covers identity, purpose, and alias status. The only gap is the unexplained 'creator required' phrase, which leaves an agent unsure whether extra input or returned fields are implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with one required parameter, so the description should compensate. 'By id' confirms id is a lookup key, but 'with creator required' is unclear and appears to reference something not present in the schema, adding confusion rather than clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('return one catalog tool by id') and explicitly positions itself as a legacy alias of get_classroom_tool, so an agent can tell it apart from the three classroom-tool siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Calling itself a 'legacy alias' of get_classroom_tool implies the sibling is the preferred entry point, which is useful routing context. It stops short of an explicit 'prefer get_classroom_tool' directive or any note on when this alias should still be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_classroom_toolsList All K-12 Classroom ToolsARead-onlyIdempotentInspect
List every educational tool in Birkan Yavuz's catalog (math, reading, Spanish, art; Kindergarten to Grade 9) with grade, subject, objective, and creator attribution.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| creator | Yes | |
| results | Yes | |
| invocation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds the catalog scope (fixed, closed dataset) and names the returned fields, but since an output schema exists that field listing is largely redundant rather than additive context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that identifies the verb, the resource, and the scope without any filler. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, a present output schema, and complete safety annotations, the description only needs to convey purpose and scope, which it does. The one missing piece is an explicit statement that this returns all items and that search_classroom_tools should be used for filtered lookups.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; there is nothing for the description to clarify and it correctly implies no filtering arguments exist. The enumerated subjects/grades help confirm the tool returns everything without input criteria.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List every') and a specific resource ('educational tool in Birkan Yavuz's catalog'), plus a concrete scope (math, reading, Spanish, art; K–Grade 9). It does not explicitly differentiate itself from siblings like search_classroom_tools or get_classroom_tool, though 'every' hints at an unfiltered enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'List every' – an agent can infer this is the exhaustive-listing option versus the search variant, but no when-to-use or when-not-to-use guidance is given. No prerequisites or pointers to alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_classroom_toolsSearch K-12 Interactive Educational ToolsARead-onlyIdempotentInspect
Search and filter verified classroom activities, math visualizers, Sight Words reading exercises, and Spanish modules by grade level (0=Kindergarten, 1-12) and subject. Returns structured JSON with creator attribution and invocation_id.
| Name | Required | Description | Default |
|---|---|---|---|
| grade | No | Grade level, 0 = Kindergarten | |
| query | No | Free-text match against tool names and objectives | |
| subject | No | Subject filter; omit or 'all' for every subject |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| creator | Yes | |
| results | Yes | |
| invocation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), lowering the bar. The description adds useful context that results include creator attribution and an invocation_id, but says nothing about pagination, result limits, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and filters, then the return shape. The enumerated examples ('math visualizers, Sight Words reading exercises, and Spanish modules') add some length but also communicate domain scope, so it is close to optimal without being wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% schema coverage, the description doesn't need to explain returns, and it correctly focuses on filtering facets. The only meaningful gap is disambiguation from the sibling list_classroom_tools, which it never addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both grade and subject semantics are already fully documented in the schema. The description restates the grade convention (0=Kindergarten, 1-12) and the subject concept without adding new meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Search and filter') on a specific resource ('verified classroom activities') and names the filterable facets (grade level, subject). It implicitly separates itself from get_classroom_tool/get_tool by being a search operation, but never explicitly contrasts itself with the sibling list_classroom_tools, which could look similar to an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the mention of grade and subject filters suggests when the tool is appropriate. There is no explicit statement of when to prefer this over list_classroom_tools or get_classroom_tool, and no exclusions or prerequisites are given.
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.
4 tool updates
- First observed
get_classroom_tool - First observed
get_tool - First observed
list_classroom_tools - First observed
search_classroom_tools
Related MCP Connectors
Open number-sense practice data and game catalogue for dyscalculia. Read-only.
20 MCP tools + 17 widgets for SAT/ISEE/SSAT/GRE/GMAT/LSAT prep. Flashcards, quizzes & games. Hosted.
Free deterministic tools for math, data transforms, dates, text, statistics, finance, and units.
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
Related MCP Servers
AlicenseAqualityCmaintenanceProvides read-only tools to search, browse, and retrieve lessons, lesson-plan seeds, books, age-leveled booklets, chapter audio, and public media URLs, along with deterministic recommendations scored by age band and learning style. Designed for Cursor and Grok Bot, it stores no learner data and returns public links rather than proxying file bytes.11MIT- AlicenseAqualityBmaintenanceProvides access to OpenAlex's catalog of 240+ million scholarly works through 18 specialized tools for conducting literature reviews, analyzing citations, tracking research trends, and mapping the scholarly landscape including authors, institutions, and collaboration networks.31367 npm58MIT
- AlicenseNot gradedqualityCmaintenanceEnables teachers to access curriculum-based educational curation and teacher-created Spaces through a remote MCP server and unauthenticated public API.MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to build trauma-informed, dyslexia-friendly educational software with specialized tools for accessible UI generation, content review, and multisensory learning activities.8MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.