Connect an AI Assistant to Homeschool Tools
Homeschool Tools runs a public Model Context Protocol (MCP) server. Connect it to an AI assistant and the assistant can search our database of 350+ reviewed homeschool offerings, read a full metareview, or compare two or three programs, and answer from that rather than from memory.
It is a lookup tool, not a tutor. The server answers questions about curriculum: what exists, what it costs, who it suits, what reviewers say. It does not plan lessons, keep a schedule, answer state-law questions, or know anything about your family beyond what your assistant sends in a single request.
Endpoint
https://homeschooltools.net/mcp
Streamable HTTP transport, JSON-RPC over POST. No account, no API key, no cookies. Read-only: there is nothing the server can change on your behalf.
Setup
Claude Code
One command, then the tools are available in every session (drop --scope user to add it to the current project only):
claude mcp add --scope user --transport http homeschool-tools https://homeschooltools.net/mcp
Claude.ai and the Claude desktop app
Open Settings → Connectors, choose Add custom connector, and enter the endpoint URL above. No authentication step; leave the OAuth fields empty. Custom connectors may not be offered on every Claude plan.
Other clients
Any client that supports remote MCP servers over HTTP can connect. The configuration most of them accept:
{
"mcpServers": {
"homeschool-tools": {
"type": "http",
"url": "https://homeschooltools.net/mcp"
}
}
}
Some clients name the transport key differently ("transport", or no key at all); check your client's documentation for remote servers.
What to ask
Once connected, ordinary questions work. Your assistant decides when to use the tools:
- "My ADHD 2nd grader hates worksheets. What math curriculum would suit her?"
- "What do reviewers say about Saxon Math?"
- "Sonlight or My Father's World for a Christian family with a 5th grader?"
- "Is Beast Academy in your database?"
Every offering the server returns carries a link to its page here, so you can read the full metareview yourself.
Tools
4 tools. The parameter tables below are generated from the server itself, so they match what is deployed.
find_curriculum
Recommends offerings for one child from grade level, subjects, worldview, budget, learning style, special needs, parent time and format. Grade, subjects and worldview are hard filters; the rest influence ranking.
| Parameter | Type | Required | Values |
|---|---|---|---|
grade_level |
string | yes |
pre-k, k, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
|
subjects |
array of strings | no |
all, math, language_arts, science, history, reading, writing, foreign_language, art, music
(1 to 10 items)
|
worldview |
string | no |
secular, christian, catholic, neutral, any
|
budget_max |
integer | no | 0 to 1000000 |
learning_style |
array of strings | no |
hands_on, visual, auditory, reading_writing, self_paced, structured, interest_led, independent
(1 to 8 items)
|
special_needs |
array of strings | no |
adhd, autism, dyslexia, anxiety, gifted, twice_exceptional, processing_disorder, none
(1 to 8 items)
|
parent_time |
string | no |
minimal, moderate, intensive
|
format_preference |
array of strings | no |
print, online, hybrid, app_based
(1 to 4 items)
|
get_offering_detail
Returns the full metareview for one offering: review synthesis, strengths and weaknesses, reviewer quotes, and a link to the page on this site. Accepts a slug or a name.
| Parameter | Type | Required | Values |
|---|---|---|---|
slug |
string | yes | up to 120 characters |
search_offerings
Looks an offering up by name, to check whether it is covered or to find its slug for the other tools. Returns name, slug and a one-line summary per match.
| Parameter | Type | Required | Values |
|---|---|---|---|
query |
string | yes | 2 to 120 characters |
compare_offerings
Returns full detail for two or three offerings side by side, so an assistant can contrast approach, price, worldview, parent time and reviewer consensus.
| Parameter | Type | Required | Values |
|---|---|---|---|
slugs |
array of strings | yes | 2 to 3 items, each up to 120 characters |
Resources
2 read-only resources describe the dataset. The server's instructions point assistants at the vocabulary to map a plain description ("hates worksheets") onto find_curriculum's filter values.
dataset://overviewdataset://vocabulary
Limits
- Rate limit: 30 requests per minute per IP address. An assistant's connection handshake counts toward it, which is why a busy session can occasionally see a 429; wait a minute and retry. The limit is counted per server process rather than globally, so treat it as a floor: with more than one process running, the effective ceiling is higher.
- Batches: a JSON-RPC batch may carry up to 20 messages and is charged one request per message.
- Request size: 4 MiB.
- Data freshness: the server reads the same database as this site, so an assistant sees exactly what you would see on an offering's page.
Browser access and CORS
The endpoint answers cross-origin requests from any origin and does not validate the Origin header, which the MCP specification says a server must do. That rule exists to protect local servers holding private data from DNS-rebinding attacks. This server holds a public catalogue that is already published as web pages, sets no cookies, has no accounts and no write tools; the worst a hostile page can do is spend part of a visitor's rate limit reading data it could have fetched directly. Restricting origins would break browser-based MCP clients for no gain. We will revisit this if any of those facts change.
What we record
For each request the server stores which protocol method was called, which tool ran (if any), how long it took, whether it failed, what kind of assistant made the request (for example "claude-code"), and the search criteria, but only values from our own fixed lists, a budget figure, or the catalogue name of an offering that was looked up. It does not store IP addresses, conversation content, or any free text, and the records are deleted after 12 months. The full statement is in our Privacy Policy.
Links the server returns carry a ?ref= parameter naming the assistant type, so we can see which assistants send readers here. Offering pages may contain affiliate links, described in our Affiliate Disclosure; the server's own answers contain none.
Questions?
If something does not connect, or an answer looks wrong, please contact us and say which client you used.
Last updated: September 2, 2026