SCHOOLME101 MCP Server v1
Production-ready TypeScript MCP server foundation for Cloudflare Workers, focused on Africa and South Africa education, with Android-ready contracts.
Highlights
- Cloudflare Worker MCP transport (
POST /mcp) - 27 validated education tools across curriculum, study, STEM, language, assessment, progress, teacher, and accessibility workflows
- South Africa CAPS-first curriculum metadata with Africa extension placeholders
- Security-by-default hooks: token verification, role checks, approval gate, audit logging
- Optional D1-backed teacher progress history and dashboard flows, with Android integration contracts and offline sync hook conventions
Architecture
src/server- MCP transport, JSON-RPC handling, route registrationsrc/tools- tool catalog, validation schemas, execution mappingsrc/domain- curriculum, assessment, progress, language, STEM, teacher, accessibility logicsrc/security- auth, policy, approval, audit hookssrc/integrations- Canvas/Google Classroom placeholderssrc/android- endpoint conventions and JSON contract examples
Tool Catalog
Curriculum
- list_curriculum_frameworks
- get_subjects_by_grade
- get_learning_objectives
Study and Revision
- create_study_plan
- spaced_repetition_schedule
- generate_revision_pack
STEM
- solve_math_stepwise
- generate_math_practice
- explain_science_concept
- generate_science_quiz
Language
- language_reading_passage
- language_comprehension_questions
- grammar_practice_generator
Assessment
- generate_exam_paper
- generate_assignment
- rubric_generator
- mark_scheme_generator
Progress and Analytics
- record_student_progress
- identify_learning_gaps
- recommend_interventions
- class_progress_summary
- get_student_progress_history
- teacher_dashboard
Teacher Workflow
- lesson_plan_generator
- classroom_activity_generator
Accessibility
- simplify_text_for_level
- dyslexia_friendly_format
All tools are strongly validated using Zod and include locale/country/grade/phase/language context support. Progress history and dashboard tools degrade safely when D1 is not configured.
MCP Examples
Initialize
{"jsonrpc":"2.0","id":1,"method":"initialize"}
List tools
{"jsonrpc":"2.0","id":2,"method":"tools/list"}
Call tool
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "create_study_plan",
"arguments": {
"topic": "Linear Equations",
"weeks": 4,
"locale": "en-ZA",
"country": "ZA",
"grade": "8",
"phase": "senior",
"language": "English"
}
}
}
Security Model
- Token verification hook:
src/security/auth.ts(stub; replace with JWT/OIDC) - Role-aware authorization:
student,teacher,lecturer,admin - Approval gate: destructive tool
record_student_progressrequires approval code - Audit trail stub: tool usage event logging in
src/security/audit.ts - Rate limit strategy: configured via
RATE_LIMIT_*vars, enforce using Cloudflare edge controls/WAF
Android Integration Notes
- Endpoints:
/mcp,/health,/android/contracts - Contract helpers:
src/android/contracts.ts - Token handling: send a bearer token in the
Authorizationheader - Offline sync hook: operation IDs + retry/backoff + idempotency key
- D1-backed progress workflows are optional in local/dev mode and return safe stub notes when storage is not configured
Scripts
npm run dev- local worker via Wranglernpm run build- compile TypeScriptnpm run typecheck- strict static checksnpm run lint- alias for typechecknpm test- unit testsnpm run deploy- Cloudflare production deploy












