OathReady for developers and AI assistants
Everything on OathReady is available to build with, for free: a public MCP server so AI assistants can run real practice sessions, a terminal quiz you can run with npx, an llms.txt map of the site, an embeddable question widget, and a shared Anki deck. All of it draws on the same verified bank of 574 questions based on the official Discover Canada study guide.
MCP server
A remote Model Context Protocol server over streamable HTTP. Connect it to Claude, ChatGPT, Cursor, or any MCP client and ask for a mock test, a study session, or your eligibility dates.
Read-only, stateless, and safe: every tool only reads public study content and aggregate statistics. Nothing to install, no key to create.
Set it up in your AI app
- 1On claude.ai or the desktop app, open Settings, then Connectors.
- 2Choose Add custom connector.
- 3Name it OathReady and paste the endpoint URL:
https://oathready.ca/api/mcpCustom connectors are available on paid Claude plans. Once added, enable it from the tools menu in any chat.
Try it
Once connected, ask in plain language. A few prompts that exercise the tools well:
- “Run me through a 10-question mock citizenship test, one question at a time.”
- “Quiz me on Canadian history until I get five right in a row.”
- “I became a PR on March 3, 2024. When can I apply for citizenship?”
- “My citizenship test is next week. What are recent test-takers reporting?”
- “There was a question about who the Fathers of Confederation were. What was the answer?”
The tools
One random question from the verified bank, with options, answer key, and explanation. Filters: topic, province.
Today's Daily Challenge: the same 5 questions everyone gets that day, with answer keys so the assistant can run it as quizmaster.
A full mock test in the real exam format (20 questions, pass mark 15), with answer keys so the assistant can run it as quizmaster.
Look up a question by id or by half-remembered text (fuzzy matched) and optionally grade an answer against it.
The study-guide content for one topic: overview plus the bite-size facts most commonly tested.
How long the citizenship journey takes: official IRCC processing time plus anonymous community medians per milestone.
The oath text, what to bring, how the ceremony unfolds, and first steps as a new citizen.
Practical test-day guidance plus live, anonymous reports from recent test-takers and the topics they saw most.
Official IRCC statistics on new citizens: monthly counts, yearly totals, top countries of birth.
Physical presence for eligibility: the 1,095-days-in-5-years rule, including the pre-PR half-day credit.
Key verified facts about the test and oath: format, pass mark, who must take it, how scheduling works.
Answer keys are returned to the model on purpose: the assistant is the quizmaster, and the tool descriptions instruct it not to reveal answers before the user commits. Community data (journey timelines, test-day reports) is anonymous and only published above a minimum cohort size.
Terminal CLI
The whole practice experience in your terminal: mock tests, flashcards, a shared daily question, and the full browsable bank. Zero dependencies, about 44 KB, and the questions ship inside the package, so everything runs offline. No network, no analytics, no accounts; the only file it writes is ~/.oathready.json, which keeps your streak and best score on your own disk.
OathReady 20-question mock · pass mark 15/20
Question 1/20 · History
Who was Canada's first Prime Minister?
❯ A. Sir John A. Macdonald
B. Sir Wilfrid Laurier
C. Sir George-Etienne Cartier
D. Sir Louis-Hippolyte La Fontaine
Correct!
Sir John A. Macdonald became the first Prime Minister of the
Dominion of Canada in 1867.Install
The only prerequisite is Node.js 18 or newer. Check what you have first:
node -vnpx comes with Node.js and runs the latest version straight from npm, nothing to manage or update:
npx oathreadyIf you run it every day, a global install gives you the bare oathready command and a faster start:
npm install -g oathreadyUpdate later with npm update -g oathready, remove with npm uninstall -g oathready.
Any of these gets you a current LTS version. If node -v still shows the old version afterwards, open a new terminal window.
brew install nodewinget install OpenJS.NodeJS.LTScurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
nvm install --ltsAlready using a version manager (nvm, fnm, volta, mise)? Then it is just nvm install --lts (or your tool's equivalent) and you are set. Corporate machine without install rights? npx inside an existing Node 18+ devcontainer or CI image works exactly the same.
Commands
The default: a 20-question mock test in the real exam format, pass mark 15/20. Arrow or letter keys, instant explanation after every answer, PASS or NOT YET at the end.
The question of the day. Everyone on Earth gets the same one (a day index into the shared pool, no server involved), so it works as a tiny daily ritual with your team or study group.
Flip-card study: read the question, any key reveals the answer and explanation, then grade yourself. Cards you miss are shuffled back into the deck until you clear them.
A single random question. Perfect for a shell alias or a terminal greeting.
Prints the entire bank with answers marked and explanations, built for piping: less to browse, grep to find that one question about Vimy Ridge.
Options and keys
- --topic <slug>
- Narrow any command to one topic: history, government, geography, rights, symbols, economy, law.
- --count <n>
- Questions in a mock or cards in a deck (default 20).
- --no-color
- Plain output. The NO_COLOR environment variable is respected too, and piped output is always plain.
- -h, --help
- Full usage, including the privacy notes.
- -v, --version
- Version.
- ↑ ↓ or j k
- Move the selection
- Enter
- Answer with the selected option
- a b c d or 1 2 3 4
- Answer directly
- any key
- Flip the current flashcard
- y / n
- Flashcards: knew it / show me again
- q or Esc
- Quit (your streak is already saved)
Composable on purpose: oathready --topic law --count 5 for a quick drill, oathready list | grep -A5 Vimy to look something up, oathready one in your shell profile for a question with every new terminal. Piped input works too, so you can even script it.
More ways to plug in
llms.txt
A concise, LLM-friendly map of the site with verified key facts and links to every major page, following the llms.txt convention.
Embed widget
A live practice question for any website in one iframe snippet: light and dark themes, random or question-of-the-day modes, topic and province filters. No cookies, no tracking.
Anki deck
Hundreds of questions from the federal bank as a free shared deck on AnkiWeb: interactive cards that grade your pick when you flip, tagged by topic, with an explanation on every card. Works in Anki desktop and the mobile apps.
Attribution and contact
Question content is original work verified against Discover Canada. Statistics are IRCC open data (Open Government Licence, Canada). When citing, link the specific OathReady page. Questions, ideas, or something broken? Write to support@oathready.ca.