Homeschool Tools

Search, compare and read reviews of 350+ homeschool curricula. Read-only, no account needed.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,597Tokens (tool definitions)
~3.0 KBTypical response size
Moderate attention impact (1.25% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "curriculum": {
      "url": "https://homeschooltools.net/mcp"
    }
  }
}

Remote endpoints

https://homeschooltools.net/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢find_curriculum(grade_level, subjects, worldview, budget_max, learning_style, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "grade_level": {
      "type": "string",
      "enum": [
        "pre-k",
        "k",
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7",
        "8",
        "9",
        "10",
        "11",
        "12"
      ],
      "description": "The child's current or target grade level."
    },
    "subjects": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "all",
          "math",
          "language_arts",
          "science",
          "history",
          "reading",
          "writing",
          "foreign_language",
          "art",
          "music"
        ]
      },
      "minItems": 1,
      "maxItems": 10,
      "uniqueItems": true,
      "description": "Always pass as an array, e.g. [\"math\",\"science\"]. Use [\"all\"] for comprehensive curriculum."
    },
    "worldview": {
      "type": "string",
      "enum": [
        "secular",
        "christian",
        "catholic",
        "neutral",
        "any"
      ],
      "description": "Family's religious/philosophical preference. 'any' means no preference."
    },
    "budget_max": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000,
      "description": "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."
    },
    "learning_style": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "hands_on",
          "visual",
          "auditory",
          "reading_writing",
          "self_paced",
          "structured",
          "interest_led",
          "independent"
        ]
      },
      "minItems": 1,
      "maxItems": 8,
      "uniqueItems": true,
      "description": "Always pass as an array, e.g. [\"visual\",\"hands_on\"]. How the child learns best."
    },
    "special_needs": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "adhd",
          "autism",
          "dyslexia",
          "anxiety",
          "gifted",
          "twice_exceptional",
          "processing_disorder",
          "none"
        ]
      },
      "minItems": 1,
      "maxItems": 8,
      "uniqueItems": true,
      "description": "Always pass as an array, e.g. [\"adhd\",\"dyslexia\"]. Any learning differences or special needs. Use [\"none\"] if none."
    },
    "parent_time": {
      "type": "string",
      "enum": [
        "minimal",
        "moderate",
        "intensive"
      ],
      "description": "Daily parent teaching time. 'minimal' = under 1hr, 'moderate' = 1-3hrs, 'intensive' = 3+hrs."
    },
    "format_preference": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "print",
          "online",
          "hybrid",
          "app_based"
        ]
      },
      "minItems": 1,
      "maxItems": 4,
      "uniqueItems": true,
      "description": "Always pass as an array, e.g. [\"online\",\"hybrid\"]. Preferred curriculum delivery format."
    }
  },
  "required": [
    "grade_level"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "matches": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "match_count": {
      "type": "integer"
    },
    "filters_applied": {
      "type": "object"
    },
    "no_match_note": {
      "type": "string"
    }
  },
  "required": [
    "matches",
    "match_count"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_offering_detail(slug)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "maxLength": 120,
      "description": "The offering slug (e.g., 'saxon-math') or its name (e.g., 'Saxon Math')."
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "detail_url": {
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_offerings(query)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120,
      "description": "Offering or publisher name to look up, e.g. 'Sonlight' or 'Beast Academy'."
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "result_count": {
      "type": "integer"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "query",
    "result_count",
    "results"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢compare_offerings(slugs)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "slugs": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 120
      },
      "minItems": 2,
      "maxItems": 3,
      "description": "2-3 offering slugs (preferred) or names, e.g. [\"sonlight\",\"my-fathers-world\"]."
    }
  },
  "required": [
    "slugs"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "offerings": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "not_found": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "offerings"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Recommended Prompts

search_research
Search for information about [topic] using Homeschool Tools
Expected tools: find_curriculum
find_specific
Find [specific item] using Homeschool Tools
Expected tools: find_curriculum
retrieve_data
Get details about [item] from Homeschool Tools
Expected tools: get_offering_detail
fetch_info
Fetch [information type] using Homeschool Tools
Expected tools: get_offering_detail
research_workflow
Search for [topic], then get detailed information about the top results using Homeschool Tools
Expected tools: find_curriculumget_offering_detail

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools