Homeschool Tools
Server Details
Search, compare and read reviews of 350+ homeschool curricula. Read-only, no account needed.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
4 toolscompare_offeringsBRead-onlyDestructiveInspect
Use this when a user wants to compare 2-3 specific homeschool curricula side by side (e.g., 'Sonlight vs My Father's World'). Returns full detail for each offering so you can contrast approach, price, worldview, parent time, and reviewer consensus. Pass slugs when known, names otherwise.
| Name | Required | Description | Default |
|---|---|---|---|
| slugs | Yes | 2-3 offering slugs (preferred) or names, e.g. ["sonlight","my-fathers-world"]. |
Output Schema
| Name | Required | Description |
|---|---|---|
| not_found | No | |
| offerings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description presents the operation as purely read-only ('Returns full detail for each offering'), but the annotations include destructiveHint=true. That directly contradicts the non-destructive compare/return behavior, and the description never resolves the conflict. This is an annotation contradiction.
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?
Three sentences are front-loaded with the use case, a useful example, and a parameter hint. Concise and readable, though the final sentence partly duplicates the schema description of the slugs parameter.
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 one parameter and an output schema, the description is nearly sufficient, but it fails to address the obvious conflict between readOnlyHint=true and destructiveHint=true. It also does not explicitly direct the agent to sibling tools for single-detail or search intents, which would improve completeness.
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 schema already documents the parameter with 100% coverage, including '2-3 offering slugs (preferred) or names.' The description's 'Pass slugs when known, names otherwise' repeats that guidance without adding new meaning, so the baseline score of 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 opens with a clear trigger and resource: 'compare 2-3 specific homeschool curricula side by side,' with a concrete example ('Sonlight vs My Father's World'). It is easy to distinguish from a search or single-detail tool: this is explicitly a bounded, side-by-side comparison.
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?
'Use this when a user wants to compare 2-3 specific homeschool curricula' is an explicit usage condition. It does not explicitly name alternatives such as get_offering_detail or search_offerings, nor state when not to use this tool, so it falls just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_curriculumARead-onlyDestructiveInspect
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 lowest 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.
| Name | Required | Description | Default |
|---|---|---|---|
| subjects | No | Always pass as an array, e.g. ["math","science"]. Use ["all"] for comprehensive curriculum. | |
| worldview | No | Family's religious/philosophical preference. 'any' means no preference. | |
| budget_max | No | 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. | |
| grade_level | Yes | The child's current or target grade level. | |
| parent_time | No | Daily parent teaching time. 'minimal' = under 1hr, 'moderate' = 1-3hrs, 'intensive' = 3+hrs. | |
| special_needs | No | Always pass as an array, e.g. ["adhd","dyslexia"]. Any learning differences or special needs. Use ["none"] if none. | |
| learning_style | No | Always pass as an array, e.g. ["visual","hands_on"]. How the child learns best. | |
| format_preference | No | Always pass as an array, e.g. ["online","hybrid"]. Preferred curriculum delivery format. |
Output Schema
| Name | Required | Description |
|---|---|---|
| matches | Yes | |
| match_count | Yes | |
| no_match_note | No | |
| filters_applied | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description richly discloses filter semantics and ranking behavior, but annotations mark destructiveHint=true while the description describes a read-only search that 'returns personalized matches.' This directly contradicts the annotation, requiring a score of 1. Annotation Contradiction.
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?
Around 150 words, front-loads the use case, logically groups filter semantics, and closes with exclusions. Every sentence contributes behavioral or selection value without repeating schema boilerplate.
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?
Covers all eight parameters' behavior, states exclusions, and the output schema exists so return values don't need detailing. The contradictory annotation is a gap, but that is an annotation issue, not a description gap.
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?
Despite 100% schema coverage, the description adds critical semantics: subjects and grade_level are hard filters with the no-grade-range exception, worldview widens to include neutral offerings, budget_max compares against lowest price and accepts unknown-price offerings, and learning_style/special_needs/parent_time/format_preference only influence ranking. This goes well beyond the schema.
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 task ('find or get recommendations for homeschool curriculum, educational programs, or learning materials'), names the resource ('curated database of 350+ expert-reviewed offerings'), and differentiates from siblings by emphasizing personalized matching rather than generic search, comparison, or detail retrieval.
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?
Opens with an explicit 'Use this when...' condition and closes with a 'Do not use for...' list covering adjacent use cases (lesson planning, scheduling, legal, tutoring). It does not name sibling alternatives, but the when/when-not guidance is explicit and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_offering_detailBRead-onlyDestructiveInspect
Use this when a user asks for more detail about a specific homeschool curriculum or program. Returns detailed review synthesis, pros/cons, reviewer quotes, and a link to the full metareview on HomeschoolTools.net. Accepts the offering slug or its name.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The offering slug (e.g., 'saxon-math') or its name (e.g., 'Saxon Math'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | No | |
| detail_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses useful output contents, but the annotations are contradictory: readOnlyHint=true and destructiveHint=true are both set. The described behavior of returning review data aligns with readOnly and conflicts with destructiveHint, so an agent cannot confidently judge the tool's side effects. This is an annotation contradiction.
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?
The description is concise and front-loads the usage trigger, then summarizes the output. The final sentence about accepting slug/name is slightly redundant with the schema but not 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?
For a single-parameter read tool with an output schema, the description is fairly complete: it explains when to use it, what to pass, and what kind of content is returned. The main gap is the conflicting annotation, which is penalized under behavioral transparency.
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%, and the description's statement that the parameter accepts a slug or name is essentially duplicated in the schema. The description adds no substantial new parameter semantics beyond the schema.
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 clearly states the tool's verb and resource: getting more detail about a specific homeschool curriculum/program. It distinguishes itself from siblings by focusing on 'more detail' for a specific offering, though it does not explicitly name the sibling tools.
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?
The description gives an explicit trigger condition: 'Use this when a user asks for more detail about a specific homeschool curriculum or program.' It does not state when not to use it or explicitly contrast it with search_offerings/compare_offerings, but the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_offeringsARead-onlyDestructiveInspect
Look up specific homeschool offerings by name in the Homeschool Tools database (e.g., to check whether a curriculum the user mentioned is covered, or to get its slug for other tools). Returns name, slug, and a one-line summary per match. Do not use this for general recommendations (use find_curriculum), and do not use it for lesson planning, tutoring, or non-curriculum questions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Offering or publisher name to look up, e.g. 'Sonlight' or 'Beast Academy'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| query | Yes | |
| results | Yes | |
| result_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint=true directly contradicts the description, which says the tool only looks up offerings and returns name, slug, and summary. The readOnlyHint=true supports the description, but the destructive hint creates a serious inconsistency that an agent cannot resolve confidently. Per the rubric, a description that contradicts annotations receives a score of 1.
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?
The description is three sentences with no filler. The main purpose is front-loaded, return values are summarized, and exclusions with alternatives are stated directly. Every sentence contributes to correct tool selection and invocation.
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 lookup tool with an output schema, the description covers purpose, return contents, and exclusions thoroughly. The only notable gap is the contradictory destructiveHint annotation, which creates avoidable confusion despite the description itself being complete.
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?
There is only one parameter, query, and the schema already documents it at 100% coverage, including examples like 'Sonlight' or 'Beast Academy.' The description reinforces the intended use by framing the query as a specific offering or publisher name, but it does not add substantial semantic detail beyond the schema.
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 specific verb and resource: 'Look up specific homeschool offerings by name in the Homeschool Tools database.' It also gives concrete examples of when to use it, such as checking coverage or getting a slug, and clearly differentiates it from find_curriculum and other general-purpose tools.
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?
The description explicitly states when to use the tool ('to check whether a curriculum the user mentioned is covered, or to get its slug') and when not to use it ('Do not use this for general recommendations, lesson planning, tutoring, or non-curriculum questions'). It even names the alternative tool, find_curriculum, making the routing clear.
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. Dates show when Glama detected each change.
4 tool updates
- First observed
compare_offerings - First observed
find_curriculum - First observed
get_offering_detail - First observed
search_offerings
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Search a directory of SOC 2 audit and compliance firms; read GRC migration guides. Read-only.
Read-only tools over an independently vetted catalog of non-toxic home and baby products.
Read-only search over Tesoro High School's public documents. Unofficial, unaffiliated.
Read-only scripture-study engine: complete-or-fail concordance over Greek NT, Hebrew OT, LXX.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides access to the Korean elementary 2022 revised curriculum learning graph, enabling users to search and retrieve curriculum standards, learning topics, prerequisites, and roadmaps from a fully local database.5013MIT
- AlicenseNot gradedqualityDmaintenanceProvides guided prayers, semantic search, and pastoral care tools (encouragement, condolence, advice) via a read-only database without authentication.MIT
- AlicenseNot gradedqualityBmaintenanceMaps educational standards across 310 curriculum systems in 50+ countries, enabling cross-border curriculum alignment through Claude.5MIT
- AlicenseNot gradedqualityBmaintenanceUnified scholarly search across 60+ academic sources with citation formatting (CMOS 18, SBL 2, APA 7, Turabian 9) and AI-powered research tools.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct stage in the curriculum-discovery workflow: lookup by name, personalized recommendation, single-offering detail, and side-by-side comparison. The descriptions explicitly warn against using the wrong tool (e.g., search_offerings vs find_curriculum), so an agent can reliably disambiguate.
All tool names follow a clear verb_noun pattern: compare_offerings, find_curriculum, get_offering_detail, search_offerings. The naming style is uniform and each verb communicates the action at a glance, even though find and search are near-synonyms.
Four tools is well-scoped for a curriculum database server: each tool covers a distinct user need and none feel redundant or missing. The count is not too thin or too heavy for the server's stated purpose.
The tool set covers the full curriculum-selection journey: check if a curriculum is covered, get personalized recommendations, view detailed reviews, and compare options side by side. There are no obvious dead ends or missing operations within the stated domain.