Prototype of an MCP server that lets the chat client's own model (Claude, ChatGPT and others) generate verified, adaptive olympiad-style maths tasks for grades 1–4. The server keeps the student's profile and ratings, recommends the next task, gives the model reference examples and checks every task it writes. It makes no LLM API calls of its own: the text is written within the user's own subscription.
Work from the devcontainer: it has Python 3.12, uv, Docker (docker-in-docker), psql and Claude Code.
- Open the folder in VS Code → "Reopen in Container". Creating the container runs
uv sync. cp .env.example .env.docker compose up -d --wait— PostgreSQL 17 onlocalhost:5432.uv run python -m taskgen.apply_schema— create the schema fromdb/schema.sql. The script recreates the whole schema; if the tables already hold data, it refuses without--force.uv run python -m taskgen.seed— load the five starting profiles fromdata/seed/*.json. Rerunning resets them;--student masharesets one student.uv run pytest— tests.
From T19 the MCP server is connected to Claude Code through .mcp.json in the repository root: start claude in the project folder and check /mcp.
All code lives in the taskgen package in src/taskgen/, installed into the venv by uv sync. Run any module with uv run python -m taskgen.<module>.
Next steps follow RUN.md.
- SPEC.md — what we build.
- RUN.md — implementation plan, one task at a time.
- docs/decisions.md — decision log.
- docs/architecture/ — diagrams.
- research/ — research done before the prototype.
- CLAUDE.md — rules for Claude Code in this repository.