MCP server that exposes AI Tutor Card declarations as tools. Drop into Claude Desktop / Cursor; agents and procurement reviewers can inspect audience, pedagogy, safety, and FERPA/COPPA posture programmatically.
Server exposes 6 well-scoped tools for AI Tutor Card inspection and validation. All tools have descriptions (avg 180 chars, within baseline 194) and complete input schemas with proper JSON Schema types. Naming follows verb_noun pattern (tutor_card_*). However, parameter descriptions are sparse or missing in several tools (tutor_card_inspect, tutor_card_subject_check, tutor_card_coppa_check lack descriptions for url/document_json params). Output schemas are not documented, LLMs cannot predict response structure. Error handling is basic (try/catch in validate, but no recovery guidance). No tool annotations (readOnlyHint present in metadata but not in schema). Missing pagination, result limits, and field-level documentation.
Verify the spec's conditional COPPA rule: if audience.age_range_min < 13, data_privacy.coppa_compliant MUST be true. Returns { ok, reason, age_range_min, coppa_compliant }. Procurement-blocking signal when ok=false.
Fetch and return the full AI Tutor Card from a URL. Provide either the well-known URL or any other URL where the card is hosted.
Return a structured procurement-review summary of an AI Tutor Card: audience, pedagogy (homework/assessment policy), safety strength, FERPA / COPPA / GDPR posture, retention, data-sharing rules, evaluation suites. Accepts EITHER `url` (fetched) OR `document_json` (inline).
Given a Tutor Card and a subject/topic query, classify whether the tutor covers it: primary subject, explicitly included topic, explicitly excluded topic, or not declared. Useful for matching a curriculum or lesson plan against a tutor's declared scope.
Validate an AI Tutor Card JSON document against the v0.1 schema. Returns { valid, tutor_id, version, coppa_check } or { valid: false, reason }.
Output schemas not documented. LLMs cannot predict response structure for tutor_card_inspect, tutor_card_subject_check, tutor_card_coppa_check. Handlers return pretty-printed JSON but no schema is declared in tool definitions.
Parameter descriptions missing for url and document_json in tutor_card_inspect, tutor_card_subject_check, tutor_card_coppa_check. Rubric requires every parameter to have a description; LLMs cannot infer whether to pass URL or inline JSON.
No error recovery guidance. tutor_card_validate catches errors but returns only error message string. No actionable next steps (e.g., 'Try tutor_card_fetch() to retrieve the card first').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Compute the canonical AI Tutor Card well-known URL for a vendor + tutor_id (convention: /.well-known/tutors/<tutor_id>.json).
Mutually exclusive parameters (url vs document_json) not documented. tutor_card_inspect, tutor_card_subject_check, tutor_card_coppa_check accept both but do not state which is required or how conflicts are resolved.
Tool annotations (readOnlyHint, idempotentHint) present in metadata but not in inputSchema. Spec 2026-07-28 expects annotations in schema for LLM planning.