{"name":"com.moltlinestudio/educator","slug":"moltlinestudio-educator","title":"Moltline Educator Toolkit","description":"8 curriculum, classroom, accommodations and exam-prep skill products. 5 of 7 free.","url":"https://mcp.market/server/moltlinestudio-educator","rating":null,"grade":"A","score":87,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce"],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-19T15:00:29.000Z","license":"MIT"},"uptime":{"percent":100,"checks":3,"ok":3,"last_checked_at":"2026-09-20T03:21:08.119Z","last_ok_at":"2026-09-20T03:21:08.119Z","latency_ms":291},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/GarphenGate/moltline-mcp","website":"https://moltlinestudio.com/servers.html#educator","version":"1.2.0","remotes":[{"type":"streamable-http","url":"https://mcp.moltlinestudio.com/educator"}],"packages":[],"tools":[{"name":"get_free_skill","description":"Load a product's free gateway skill with its complete instructions. FREE.\n\nTypical input {\"slug\": \"curriculum-architect-hs\"} returns {\"slug\": ...,\n\"skill\": \"<skill name>\", \"instructions\": \"<full skill text>\"}.\n\nReturns exactly one skill - the product's free gateway skill - chosen\nautomatically from the slug, with no plan required. Use when the caller\nwants usable instructions immediately. Not for the product's other skills:\nthose are named and need get_full_skill with a skill_name, which requires\na paid plan. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'. Use list_products.\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"description":"Product slug exactly as returned by list_products, e.g. \"curriculum-architect-hs\"; must be non-empty.","minLength":1,"type":"string"}},"required":["slug"],"additionalProperties":false}},{"name":"get_full_product","description":"Load one product in full: its persona plus every paid skill. PREMIUM (license).\n\nTypical input {\"slug\": \"curriculum-architect-hs\"} returns {\"slug\": ...,\n\"name\": ..., \"persona\": \"<persona text>\", \"skills\": [{\"name\": ...,\n\"instructions\": ...}, ...], \"free_skill\": {...}}.\n\nReturns persona plus every skill for one product. Use when the caller\nwants the whole product. Not for a single skill (get_full_skill) and not\nfor a free look, which list_products and get_free_skill provide with no\nplan. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"description":"Product slug exactly as returned by list_products, e.g. \"curriculum-architect-hs\"; must be non-empty.","minLength":1,"type":"string"}},"required":["slug"],"additionalProperties":false}},{"name":"get_full_skill","description":"Load one paid skill's complete instructions from a product. PREMIUM (license).\n\nTypical input {\"slug\": \"curriculum-architect-hs\", \"skill_name\":\n\"unit-planner\"} returns {\"slug\": ..., \"skill\": ..., \"instructions\":\n\"<full skill text>\"}.\n\nReturns one named skill, selected by skill_name. Use when the caller wants\none specific paid skill. Not for the free gateway skill, which\nget_free_skill returns with no plan, and not for every skill at once\n(get_full_product). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"description":"Product slug exactly as returned by list_products, e.g. \"curriculum-architect-hs\"; must be non-empty.","minLength":1,"type":"string"},"skill_name":{"description":"Exact skill name as listed in that product's \"skills\" array from list_products, e.g. \"unit-planner\"; must be non-empty.","minLength":1,"type":"string"}},"required":["slug","skill_name"],"additionalProperties":false}},{"name":"grade_curve","description":"Summarize how an assessment landed: stats, bands, and outliers. FREE.\n\nReports mean, median, std dev, quartiles, distribution by percentage\nband, and flagged low outliers. Typical input {\"scores\": [88, 92, 75,\n61, 84], \"max_score\": 100} returns {\"n\": 5, \"mean\": 80.0, \"median\":\n84.0, \"std_dev\": ..., \"q1\": ..., \"q3\": ..., \"distribution\":\n{\"90-100%\": 1, ...}, \"outliers_low\": [...], \"reading\": \"...\"}.\n\nUse on a list of scores already earned. Not for the readability of the\nassessment itself (readability_report). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"no scores\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"scores":{"description":"Raw scores, one per student; at least 1 value, e.g. [88, 92, 75].","items":{"type":"number"},"minItems":1,"type":"array"},"max_score":{"default":100,"description":"Maximum possible score; must be greater than 0. Default 100.","exclusiveMinimum":0,"type":"number"}},"required":["scores"],"additionalProperties":false}},{"name":"lesson_timer","description":"Split a class period into timed segments with sensible weighting. FREE.\n\nThe opener and closer get less time; core activities get more.\nTypical input {\"minutes\": 50, \"segments\": [\"Warm-up\", \"Direct instruction\",\n\"Practice\", \"Exit ticket\"]} returns {\"period_minutes\": 50, \"plan\":\n[{\"segment\": \"Warm-up\", \"start_min\": 0, \"duration_min\": 8}, ...],\n\"note\": \"...\"}.\n\nUse when one fixed class period must be divided into segments. Not for\nmulti-day planning and not for spaced review, which the personal server's\nspaced_repetition_plan builds. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"need segments and at least 5 minutes\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"minutes":{"description":"Length of the class period in minutes; at least 5, e.g. 50.","minimum":5,"type":"integer"},"segments":{"description":"Ordered segment names, e.g. [\"Warm-up\", \"Practice\", \"Exit ticket\"]; at least 1 entry.","items":{"type":"string"},"minItems":1,"type":"array"}},"required":["minutes","segments"],"additionalProperties":false}},{"name":"list_products","description":"List the 8 educator products with their included skills. FREE.\n\nTakes no arguments. Typical input {} returns a list of 8 product objects, each {\"slug\":\n\"curriculum-architect-hs\", \"name\": ..., \"tagline\": ..., \"skills\": [\"Skill A\",\n...], \"free_skill\": \"Gateway Skill Name\"}. Use the returned slug values\nwith get_free_skill, get_full_product, or get_full_skill.\n\nReturns metadata only - no persona text and no skill instructions. Use\nwhen the caller wants to see what this server covers. Not for keyword\nsearch across the whole 138-product catalog, which the catalog server's\nsearch_catalog does, and not for instructions the caller can act on\n(get_free_skill). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"readability_report","description":"Analyze teaching text with Flesch-Kincaid readability and leveling advice. FREE.\n\nTypical input {\"text\": \"<passage>\", \"target_grade\": 6} returns\n{\"flesch_kincaid_grade\": 8.2, \"reading_ease\": 62.1, \"sentences\": N,\n\"words\": N, \"avg_words_per_sentence\": N, \"long_sentences_over_25w\": N,\n\"polysyllabic_words_sample\": [...], \"target_grade\": 6, \"gap\": 2.2,\n\"suggestions\": [\"...\"]}.\n\nUse on teaching text where the reading level matters. Not for scores\nstudents earned (grade_curve) and not for general prose style, which the\ncreator server's analyze_writing covers. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"empty text\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"description":"The passage to analyze — at least one full sentence of plain text; must be non-empty.","minLength":1,"type":"string"},"target_grade":{"default":0,"description":"Target grade level 1-12; when set, the report adds a gap assessment against it. 0 (default) skips it.","type":"integer"}},"required":["text"],"additionalProperties":false}}],"scan":{"score":87,"grade":"A","scanned_at":"2026-09-20T00:23:55.495Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:23:55.517Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 361ms"]},"poisoning":{"score":15,"max":15,"notes":["7 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":5,"max":10,"notes":["namespace and repository owner differ","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.moltlinestudio.com/educator","reachable":true,"authRequired":false,"latencyMs":361,"serverInfo":{"name":"moltline-educator","version":"1.1.0"}}],"packages":[],"repo":{"found":true,"owner":"GarphenGate","repo":"moltline-mcp","archived":false,"pushedAt":"2026-09-19T15:00:29Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/316633241?v=4","ownerCreatedAt":"2026-08-13T15:17:26Z","license":"MIT"},"icon":{"url":"https://moltlinestudio.com/icon-192.png","source":"registry","width":192,"height":192},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-19T15:00:29.000Z","score":23}}}},"grade_history":[],"reviews":[]}