Skip to main content
Glama

find_curriculum

Read-onlyDestructive

Use this when a user wants to find or get recommendations for homeschool curriculum, educational programs, or learning materials for their children. Searches a curated database of 350+ expert-reviewed homeschool offerings and returns personalized matches based on the child's grade level, learning style, family values, budget, and special needs. subjects is a hard filter results always satisfy. worldview is too, but it widens: a specific worldview request also returns worldview-neutral offerings, which suit any household. grade_level is a hard filter except that an offering with no grade range recorded appears at every grade. budget_max filters on an offering's annual cost where known, otherwise its lowest listed price, so a result may cost more at higher levels, and one whose price is unknown may appear at any budget. learning_style, special_needs, parent_time, and format_preference influence ranking. Do not use for lesson planning, scheduling, legal compliance questions, or tutoring.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
subjectsNoAlways pass as an array, e.g. ["math","science"]. Use ["all"] for comprehensive curriculum.
worldviewNoFamily's religious/philosophical preference. 'any' means no preference.
budget_maxNoMaximum annual budget in USD, compared against an offering's annual cost where known (a monthly price times twelve, for example), otherwise its lowest listed price. Results carry price (the publisher's figure and its period) and annual_cost when known. 0 selects offerings with a free tier; many of those also sell paid levels, and an offering whose price is unknown carries no price range at all — so do not tell a family something is free without checking what the result actually shows.
grade_levelYesThe child's current or target grade level.
parent_timeNoDaily parent teaching time. 'minimal' = under 1hr, 'moderate' = 1-3hrs, 'intensive' = 3+hrs.
special_needsNoAlways pass as an array, e.g. ["adhd","dyslexia"]. Any learning differences or special needs. Use ["none"] if none.
learning_styleNoAlways pass as an array, e.g. ["visual","hands_on"]. How the child learns best.
format_preferenceNoAlways pass as an array, e.g. ["online","hybrid"]. Preferred curriculum delivery format.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
matchesYes
match_countYes
no_match_noteNo
filters_appliedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / budget_max / description
      Previous value: -"Maximum annual budget in USD, compared against an offering's lowest price. 0 selects offerings with a free tier; many of those also sell paid levels, and an offering whose price is unknown carries no price range at all — so do not tell a family something is free without checking what the result actually shows."New value: +"Maximum annual budget in USD, compared against an offering's annual cost where known (a monthly price times twelve, for example), otherwise its lowest listed price. Results carry price (the publisher's figure and its period) and annual_cost when known. 0 selects offerings with a free tier; many of those also sell paid levels, and an offering whose price is unknown carries no price range at all — so do not tell a family something is free without checking what the result actually shows."
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare read-only/idempotency traits; the description goes further by disclosing which filters are hard (subjects, grade_level) versus which influence ranking (learning_style, special_needs, parent_time, format_preference), and explains the widening behavior of worldview and the price-based logic of budget_max. This is precisely the kind of filter-semantics context an agent cannot get from annotations.

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 purpose and trigger, then the filter semantics, then exclusions. Nearly every sentence earns its place, though the budget_max sentence is long and the parenthetical price caveats could be tightened.

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 an 8-parameter recommendation tool with an output schema (so return values need not be explained here), the description covers trigger, exclusions, hard/soft filter behavior, and special cases. Nothing an agent needs to invoke it correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds meaning the schema does not carry: subjects and grade_level are described as hard filters (with the no-grade-range exception), worldview is a soft-widening filter, and four parameters are explicitly labeled as ranking-only. That hard-versus-ranking distinction materially changes how an agent should populate the call.

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 verb set ('find or get recommendations') and resource ('homeschool curriculum, educational programs, or learning materials'), and even states the database size ('350+ expert-reviewed homeschool offerings'). It does not, however, name or contrast with its siblings (search_offerings, compare_offerings, get_offering_detail), so an agent must infer the boundary.

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 an explicit trigger ('Use this when a user wants to find or get recommendations for...') and explicit exclusions ('Do not use for lesson planning, scheduling, legal compliance questions, or tutoring'). This is strong when/when-not guidance, though it never points to an alternative tool when the tool is not the right choice.

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.

Resources