satcoach
Registry code: f2151dab215d3323
SATCoach is digital SAT prep for high school students: each student starts with a full diagnostic test, then practice aimed at their weak skills, with a dashboard and weekly progress emails for parents, and a free dashboard for tutors. A free skill check needs no sign-up. These tools return SATCoach's public product facts and next steps, never any student's data. Use about_satcoach for what SATCoach is, who it's for, and what it costs. Use skill_check when a family wants to see where a student stands; the check runs on app.satcoach.ai, not in this conversation. Use share_family_context only…
- endpoint
- https://satcoach.ai/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is satcoach live?
- Yes — it answered the hub's last check (checked 13h ago). It answered 100% of checks over the last 30 days.
- Is satcoach free to use?
- Not measured yet.
- What tools does satcoach have?
- 3 tools: share_family_context, skill_check, about_satcoach.
- Is satcoach safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 3 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
share_family_context unknown never probed
Passes SATCoach what the assistant already knows about a child's SAT plans (target score, past PSAT, SAT, or ACT scores, upcoming test dates, weekly practice time, and other help), and SATCoach sends the parent one email from [email protected] with a link to set up SATCoach for their child. Only for a parent who wants SAT help for their child and wants SATCoach to follow up; not for a student asking for themselves, for answering questions about SATCoach, or for starting the free skill check. Requires the parent's yes after they've seen exactly what will be sent; consent must be true. Requires agent, the calling assistant's identity. Accepts only the child's first name; last names, school names, phone numbers, health, disability, or accommodation details, and other children's information must not be included, in note either. The reply is the same whether or not the parent already has an account, for example: "SATCoach sent a link to p•••@example.com. The email repeats only the child's first name, target score, and next test date. Everything shared shows on the page the link opens, after the parent signs in. The request is deleted in 7 days if the parent doesn't confirm."
{ "type": "object", "examples": [ { "goal": { "reason": "college_admission", "targetScore": 1450 }, "agent": { "name": "Claude", "model": "Claude Opus", "surface": "web", "provider": "Anthropic", "discoveredVia": "mcp_directory", "discoveredDetail": "Claude connector directory" }, "consent": true, "otherHelp": "none", "pastTests": [ { "math": 590, "test": "PSAT_NMSQT", "month": "2026-10", "total": 1210, "readingWriting": 620 } ], "parentEmail": "[email protected]", "upcomingTests": [ { "date": "2027-03-13", "test": "SAT", "registered": true }, { "date": "2027-04", "test": "ACT", "registered": false } ], "weeklyMinutes": 150, "childFirstName": "Ava" }, { "goal": { "reason": "school_requirement", "targetScore": 1300 }, "agent": { "name": "ChatGPT", "surface": "mobile_app", "provider": "OpenAI", "discoveredVia": "user_named_satcoach" }, "consent": true, "parentEmail": "[email protected]", "childFirstName": "Leo" } ], "required": [ "agent", "parentEmail", "childFirstName", "consent" ], "properties": { "goal": { "type": "object", "properties": { "reason": { "enum": [ "college_admission", "scholarship", "school_requirement", "personal", "other" ], "type": "string" }, "targetScore": { "type": "integer", "maximum": 1600, "minimum": 400, "multipleOf": 10 } }, "description": "Optional. {targetScore?: 400 to 1600 in steps of 10, reason?: college_admission | scholarship | school_requirement | personal | other}, with at least one of the two.", "additionalProperties": false }, "note": { "type": "string", "maxLength": 500, "description": "Optional, at most 500 characters. Anything else the parent wants SATCoach to know. It's never put in the email. Must not include last names, school names, phone numbers, or health, disability, or accommodation details." }, "agent": { "type": "object", "required": [ "name", "provider", "surface", "discoveredVia" ], "properties": { "name": { "type": "string" }, "model": { "type": "string" }, "surface": { "enum": [ "web", "desktop_app", "mobile_app", "messaging_app", "voice", "api_or_agent", "other" ], "type": "string" }, "provider": { "type": "string" }, "discoveredVia": { "enum": [ "user_named_satcoach", "user_gave_link", "web_search", "mcp_registry", "mcp_directory", "assistant_app_store", "prior_conversation", "other" ], "type": "string" }, "discoveredDetail": { "type": "string" } }, "description": "Required. The calling assistant's identity: {name, e.g. \"Claude\"; provider, e.g. \"Anthropic\"; model?; surface: web (a browser chat site) | desktop_app (a computer app) | mobile_app (a phone or tablet app) | messaging_app (in a messaging app) | voice (spoken, not typed) | api_or_agent (called from code or an agent framework, not a chat app) | other (none of these); discoveredVia, how it found SATCoach; discoveredDetail?}. Plain text about the assistant, never the family: no links, markup, emails, phone numbers or web addresses. The parent sees only a fixed name such as \"Claude\".", "additionalProperties": false }, "consent": { "type": "boolean", "const": true, "description": "Required, must be true: the parent saw exactly what will be sent and agreed to share it with SATCoach and to get one email." }, "otherHelp": { "enum": [ "none", "private_tutor", "class", "other_app" ], "type": "string", "description": "Optional. Other SAT help the child has: none | private_tutor | class | other_app." }, "pastTests": { "type": "array", "items": { "oneOf": [ { "type": "object", "required": [ "test", "month", "total" ], "properties": { "math": { "type": "integer", "maximum": 800, "minimum": 200 }, "test": { "enum": [ "SAT", "BLUEBOOK_PRACTICE" ], "type": "string" }, "month": { "type": "string", "pattern": "^\\d{4}-(0[1-9]|1[0-2])$" }, "total": { "type": "integer", "maximum": 1600, "minimum": 400 }, "readingWriting": { "type": "integer", "maximum": 800, "minimum": 200 } }, "additionalProperties": false }, { "type": "object", "required": [ "test", "month", "total" ], "properties": { "math": { "type": "integer", "maximum": 760, "minimum": 160 }, "test": { "enum": [ "PSAT_NMSQT", "PSAT_10" ], "type": "string" }, "month": { "type": "string", "pattern": "^\\d{4}-(0[1-9]|1[0-2])$" }, "total": { "type": "integer", "maximum": 1520, "minimum": 320 }, "readingWriting": { "type": "integer", "maximum": 760, "minimum": 160 } }, "additionalProperties": false }, { "type": "object", "required": [ "test", "month", "total" ], "properties": { "math": { "type": "integer", "maximum": 720, "minimum": 120 }, "test": { "type": "string", "const": "PSAT_8_9" }, "month": { "type": "string", "pattern": "^\\d{4}-(0[1-9]|1[0-2])$" }, "total": { "type": "integer", "maximum": 1440, "minimum": 240 }, "readingWriting": { "type": "integer", "maximum": 720, "minimum": 120 } }, "additionalProperties": false }, { "type": "object", "required": [ "test", "month", "total" ], "properties": { "test": { "type": "string", "const": "ACT" }, "month": { "type": "string", "pattern": "^\\d{4}-(0[1-9]|1[0-2])$" }, "total": { "type": "integer", "maximum": 36, "minimum": 1 } }, "additionalProperties": false } ] }, "maxItems": 10, "description": "Optional. Up to 10 of {test: SAT | BLUEBOOK_PRACTICE | PSAT_NMSQT | PSAT_10 | PSAT_8_9 | ACT, month (YYYY-MM, not in the future), total, readingWriting?, math?}. Ranges: SAT and Bluebook practice tests 400 to 1600 (sections 200 to 800); PSAT/NMSQT and PSAT 10 320 to 1520 (sections 160 to 760); PSAT 8/9 240 to 1440 (sections 120 to 720); ACT composite 1 to 36, no sections." }, "parentEmail": { "type": "string", "format": "email", "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "maxLength": 254, "description": "Required. The parent's email address. SATCoach sends the link here." }, "upcomingTests": { "type": "array", "items": { "type": "object", "required": [ "test", "date", "registered" ], "properties": { "date": { "type": "string", "pattern": "^\\d{4}-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01]))?$" }, "test": { "enum": [ "SAT", "PSAT_NMSQT", "ACT" ], "type": "string" }, "registered": { "type": "boolean" } }, "additionalProperties": false }, "maxItems": 3, "description": "Optional. Up to 3 of {test: SAT | PSAT_NMSQT | ACT, date (YYYY-MM-DD, or YYYY-MM when only the month is known; not in the past), registered: true or false}." }, "weeklyMinutes": { "type": "integer", "maximum": 1200, "minimum": 0, "description": "Optional. Minutes a week the child can practice, 0 to 1200." }, "childFirstName": { "type": "string", "pattern": "^\\p{L}(?:[\\p{L}\\p{M} '’-]{0,28}[\\p{L}\\p{M}])?$", "description": "Required. The child's first name only: 1 to 30 letters, spaces, hyphens, or apostrophes, starting and ending with a letter. No last name." } }, "additionalProperties": false }arguments 352 linesskill_check unknown never probed
Returns the link and steps for SATCoach's free SAT skill check: 20 questions, about 15 minutes, no account. A parent opens the link and gets one to give the student. The student takes the check on SATCoach's site, and the results (an early score range and the skills to work on first) show there and go to the parent by email. Nothing about the check or its results is returned here. For a family that wants a short SAT diagnostic, or wants to find out where a student stands. Not for getting questions, checking answers, or estimating a score in the conversation: it returns only a link and instructions. test must be "SAT".
{ "type": "object", "examples": [ { "test": "SAT" }, { "test": "SAT", "agent": { "name": "ChatGPT", "surface": "mobile_app", "provider": "OpenAI", "discoveredVia": "user_named_satcoach" } } ], "required": [ "test" ], "properties": { "test": { "enum": [ "SAT" ], "type": "string", "description": "The test to check. Only \"SAT\" (the digital SAT) is supported." }, "agent": { "type": "object", "required": [ "name", "provider", "surface", "discoveredVia" ], "properties": { "name": { "type": "string" }, "model": { "type": "string" }, "surface": { "enum": [ "web", "desktop_app", "mobile_app", "messaging_app", "voice", "api_or_agent", "other" ], "type": "string" }, "provider": { "type": "string" }, "discoveredVia": { "enum": [ "user_named_satcoach", "user_gave_link", "web_search", "mcp_registry", "mcp_directory", "assistant_app_store", "prior_conversation", "other" ], "type": "string" }, "discoveredDetail": { "type": "string" } }, "description": "Optional. The calling assistant's identity: {name, e.g. \"Claude\"; provider, e.g. \"Anthropic\"; model?; surface: web (a browser chat site) | desktop_app (a computer app) | mobile_app (a phone or tablet app) | messaging_app (in a messaging app) | voice (spoken, not typed) | api_or_agent (called from code or an agent framework, not a chat app) | other (none of these); discoveredVia, how it found SATCoach; discoveredDetail?}. Plain text about the assistant only: no links, markup, emails, phone numbers, or web addresses. Leaving it out, or getting it wrong, never fails the call.", "additionalProperties": false } }, "additionalProperties": false }arguments 80 linesabout_satcoach unknown never probed
Public facts about SATCoach: who it's for, what it does, the test it supports (the digital SAT), current prices, how to start, and how parents connect their own assistant. For questions about SATCoach, or about SAT prep that targets a student's weak skills and keeps parents informed. It doesn't explain SAT problems, write practice questions, or give general study advice. It returns no student data.
{ "type": "object", "examples": [ {}, { "agent": { "name": "Claude", "surface": "web", "provider": "Anthropic", "discoveredVia": "mcp_directory", "discoveredDetail": "Claude connector directory" } } ], "properties": { "agent": { "type": "object", "required": [ "name", "provider", "surface", "discoveredVia" ], "properties": { "name": { "type": "string" }, "model": { "type": "string" }, "surface": { "enum": [ "web", "desktop_app", "mobile_app", "messaging_app", "voice", "api_or_agent", "other" ], "type": "string" }, "provider": { "type": "string" }, "discoveredVia": { "enum": [ "user_named_satcoach", "user_gave_link", "web_search", "mcp_registry", "mcp_directory", "assistant_app_store", "prior_conversation", "other" ], "type": "string" }, "discoveredDetail": { "type": "string" } }, "description": "Optional. The calling assistant's identity: {name, e.g. \"Claude\"; provider, e.g. \"Anthropic\"; model?; surface: web (a browser chat site) | desktop_app (a computer app) | mobile_app (a phone or tablet app) | messaging_app (in a messaging app) | voice (spoken, not typed) | api_or_agent (called from code or an agent framework, not a chat app) | other (none of these); discoveredVia, how it found SATCoach; discoveredDetail?}. Plain text about the assistant only: no links, markup, emails, phone numbers, or web addresses. Leaving it out, or getting it wrong, never fails the call.", "additionalProperties": false } }, "additionalProperties": false }arguments 68 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idf2151dab215d3323.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/f2151dab215d3323/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/f2151dab215d3323?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.
Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.