Why I built MockNiner
I'm preparing for IELTS and wanted an interface where I could practise for the exam. I didn't want another exam-prep subscription. I already had ChatGPT and Codex, so I wanted to use those agents for my preparation too.
That became the idea behind MockNiner: bring your own agent. The app provides the exam environment and saves your work locally. Your agent creates questions and helps you learn from your answers. There is no separate MockNiner subscription or API key. You can use the AI subscription you already have.
What you can do
Prepare for IELTS, SAT, or GRE with practice tailored to the skills you need to improve. You can also ask your agent for a quiz on another subject.
You take the test in an exam interface with timers and question navigation. The app scores objective answers and saves your attempt. For written work, ask your agent for feedback and read its comments beside your submitted responses.
Where WebMCP fits
WebMCP lets the agent work directly with the app. It can add a practice test, read a completed attempt when asked, and save feedback to the results page. You control your answers and submission.
After a test, ask your agent to explain the questions you missed or review your written responses. Then ask for another practice set focused on what needs work. Questions, answers, and feedback stay together in the same interface.
Building it
MockNiner runs in the browser, with React and TypeScript for the interface and SQLocal for local SQLite storage. WebMCP tools registered through document.modelContext call the same commands as the interface. Zod checks incoming questions and feedback before saving them.
Keeping both sides consistent took care. Feedback must refer to the exact submitted attempt, and a failed save must leave the learner's work recoverable. Exam-specific rules and custom assessment formats stay separate.
Kokoro generates speech and Whisper transcribes recordings locally. When you ask an external agent to evaluate your work, that agent receives the submission.
Scores are practice estimates, and transcript-based Speaking feedback excludes pronunciation. MockNiner is independent of the exam owners. The repository includes the MIT license for original code and content, plus third-party attribution and speech licensing notes.
Built With
- cloudflare-r2
- cloudflare-workers
- codex
- kokoro
- react
- sqlite
- sqlocal
- typescript
- vite
- webmcp
- whisper
- zod
Log in or sign up for Devpost to join the conversation.