Learning Hub

by genyk1p

Not rated
GitHub

About

AI learning assistant that manages game time rewards based on school grades, homework, and bonus tasks

Details

Author
genyk1p
Categories
Other, Productivity, Project Management, AI

Setup

Install Learning Hub in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/genyk1p/learning-hub-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

Beta— fully functional, tested with one family. Feedback and bug reports welcome viaGitHub Issues.

MCP server for student learning workflow with SQLite database. Each instance serves one student — deploy a separate instance per child for isolated, focused AI tutoring.

- Subjects- school subjects with multi-country support (UA, CZ, DE, etc.)
- Grades- grade tracking with 5-point European scale (1=best, 5=worst)
- Topics- subject topics for improvement tracking
- Homework- assignment tracking with deadlines
- Bonus Tasks- motivational tasks that reward game minutes
- Game Minutes- immutable transaction ledger for tracking earned/spent game time
- Books- textbook library with markdown summaries and content indexing
- Topic Reviews- reinforcement tracking for weak topics
- Escalation- bad grade notifications for parents
- Instruction Tools- markdown algorithms that guide AI agents through workflows
- Sync Providers- pluggable sync framework (EduPage, PRONOTE)
- Secrets- secure credential storage for sync providers

# Install dependencies poetry install # Initialize database poetry run alembic upgrade head

Database defaults to./data/learning_hub.db. Override via environment variable:

DATABASE_URL=sqlite+aiosqlite:///./data/learning_hub.db

Sync provider credentials (EduPage, PRONOTE, etc.) are stored in thesecretstable and managed via MCP tools (set_secret,list_secrets).

Runtime configuration stored in theconfigstable. Managed via MCP tools (get_config,set_config,list_configs). Usecheck_system_readinessto verify all required configs are set.

Entries with defaults (seeded by migration)

Required entries (must be set before use)

{ "mcpServers": { "learning-hub": { "command": "poetry", "args": ["run", "learning-hub-mcp"], "cwd": "/path/to/learning-hub-mcp" } } }

- create_subject- create a new school subject
- list_subjects- list subjects (filter: school, is_active)
- update_subject- update subject details

- create_topic- create a topic for a subject
- list_topics- list topics (filter: subject_id, is_open)
- close_topic- close topic (reason: resolved/skipped/no_longer_relevant)

- add_grade- add a grade (1-5 scale, 1=best), auto-creates minute transaction
- list_grades- list grades (filter: subject, date range, school)

- create_bonus_task- create a bonus task linked to a topic (validates limits)
- list_bonus_tasks- list tasks (filter: status, topic)
- get_bonus_task- get a bonus task by ID
- get_latest_bonus_task- get the most recent bonus task
- apply_bonus_task_result- complete task, record grade, and update topic reviews
- cancel_bonus_task- cancel a task
- check_pending_bonus_task- check if there's a pending task to reuse

- get_balance- get current game minutes balance
- add_played_minutes- record played game time (deducts from balance)
- create_ad_hoc_transaction- create manual bonus or penalty
- list_transactions- list transactions (filter: date range, type)

- create_homework- create homework assignment
- list_homeworks- list homework (filter: status, subject)
- complete_homework- mark homework as done
- update_homework- update homework details
- close_overdue_homeworks- close overdue homework, auto-creates penalty transaction
- get_pending_homework_reminders- get reminders due (D-1, D-2)
- mark_homework_reminders_sent- mark reminders as sent

- add_book- add a book to the library
- list_books- list books (filter: subject, has_summary)
- get_book- get a book by ID
- update_book- update book details
- delete_book- delete a book

- list_topic_reviews- list topic reviews (filter: subject, status)
- get_pending_reviews_for_topic- get pending reviews for a topic
- mark_topic_reinforced- mark review as reinforced
- increment_topic_repeat_count- increment repeat count for a review
- get_priority_topic_for_review- pick a priority topic from top-4

- create_family_member- add a family member (student/parent/tutor/admin)
- list_family_members- list members (filter: role)
- update_family_member- update member details
- delete_family_member- delete a member
- get_student- get the student record

- create_gateway- register a messaging channel (Telegram, etc.)
- list_gateways- list gateways (filter: family_member, channel)
- update_gateway- update gateway details
- delete_gateway- delete a gateway
- lookup_gateway- find gateway by platform + external ID

- get_config- get a config value by key
- set_config- set a config value (existing keys only)
- list_configs- list all config entries

- set_secret- set a secret value (credentials, API keys)
- list_secrets- list secrets (keys only, values never exposed)

- list_sync_providers- list all sync providers with status
- update_sync_provider- activate/deactivate, link to school
- run_sync- run sync for all active providers (or a specific one)
- find_edupage_subdomain- detect EduPage school subdomain from stored credentials

- check_system_readiness- check if the system is properly configured (active schools, required configs)

- get_grades_pending_escalation- get grades needing parent notification
- mark_grades_escalated- mark grades as escalated (parent was notified)

- get_grade_escalation_instructions- escalate bad grades to tutor/admin
- get_learning_system_instructions- master instruction: full system rules
- get_student_request_router_instructions- classify student request (A/B/C scenarios)
- get_bonus_task_assignment_instructions- assign a new bonus task
- get_submission_routing_instructions- route submitted work to evaluator
- get_bonus_task_evaluation_instructions- evaluate completed bonus task
- get_homework_evaluation_instructions- evaluate homework submission
- get_book_lookup_instructions- find and deliver textbook pages
- get_books_workflow_instructions- process and register new books
- get_homework_manual_instructions- manually add homework (parent only)
- get_grade_manual_instructions- manually add a grade (adult only)
- get_student_content_policy_instructions- content safety filtering for external student content
- get_topic_review_curation_instructions- curate and close stale topic reviews
- get_base_crons_setup_instructions- instructions for setting up base cron jobs

Thelearning-hub-bridge/directory contains a TypeScript plugin that makes all MCP tools available as nativeOpenClawagent tools.

OpenClaw doesn't support MCP servers natively. Without the bridge, the agent would needexec + mcporter— slow (~3s per call), buggy (mcporter serialization issues with lists), and invisible to the model (tools not in tool list).
- On gateway startup, the bridge spawns the Python MCP server as a child process (STDIO)
- Discovers all tools viaclient.listTools()(MCP protocol)
- Registers each as a native OpenClaw tool viaapi.registerTool()with prefixlearning_hub_
- Proxiesexecute()client.callTool(), merging multiple TextContent blocks into a single JSON array
- Auto-reconnects if the Python process dies

After this, the model seeslearning_hub_list_subjects,learning_hub_add_grade, etc. directly in its tool list.

The bridge must be installed as an OpenClaw extension. The source lives inlearning-hub-bridge/inside this repo, but OpenClaw loads plugins from~/.openclaw/extensions/<pluginId>/.

cp -r /path/to/learning-hub-mcp/learning-hub-bridge ~/.openclaw/extensions/learning-hub
cd ~/.openclaw/extensions/learning-hub npm install

Step 3.Add plugin config toopenclaw.json:

{ "plugins": { "entries": { "learning-hub": { "enabled": true, "config": { "command": "/bin/bash", "args": ["-lc", "cd /path/to/learning-hub-mcp && exec .venv/bin/learning-hub-mcp"], "cwd": "/path/to/learning-hub-mcp", "toolPrefix": "learning_hub" } } } } }

Step 4.Allow tools for the agent inopenclaw.json:

{ "agents": { "list": [ { "id": "main", "tools": { "alsoAllow": ["learning-hub"] } } ] } }

When new tools are added to the MCP server, the bridge picks them up automatically on gateway restart — no bridge code changes needed. Just restart:

# Run tests poetry run pytest # Run tests with coverage poetry run pytest --cov=learning_hub # Lint code poetry run ruff check . # Fix lint issues poetry run ruff check --fix .

- Tested with a single family (one student, two schools: EduPage CZ + UA)
- PRONOTE sync implemented but minimally tested
- SQLite only — designed for single-family self-hosted use
- RequiresOpenClawas the AI agent runtime
- Edge cases with diverse school configurations are likely not yet covered

Interact with task, doc, and project data in Dart, an AI-native project management tool

Connect to the Taskade platform via MCP. Access tasks, projects, workflows, and AI agents in real-time through a unified workspace and API.

Provides AI assistants with advanced task management and memory capabilities using local JSON file storage.

Connect your Amazing Marvin productivity system with AI assistants for smarter task management.

Portable, cloud-hosted AI memory you own - structured memories, tasks, goals, and notes that work across Claude, ChatGPT, Gemini, and any MCP client.

Programmatically interact with Canvas/Instructure courses and assignments.

Task management redesigned for AI, integrated via the CodeRide MCP server.

ree certification prep for the Claude Certified Architect exam. 390 questions, guided capstone build, 30 handouts, 6 reference projects, practice exams, interactive UI, progress dashboard, spaced repetition, deterministic grading. Runs locally.

Connect your GTD system directly to any LLM, so you can capture, organize, and review your life and work using natural language.

Hjarni includes a built-in MCP server for ChatGPT, Claude, and other compatible clients. Use this page as the protocol and capability reference. If you just want to connect an assistant, start with ChatGPT setup or Claude setup.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.