Skip to content

OathReady: Canadian Citizenship Test

by oathready.ca · remote · no sign-in to list tools · v1.2.0 · published by ca.oathready

Canadian citizenship test practice: verified questions, mock tests, IRCC stats, eligibility tools.

Changes · 22 high findings

11 tools: 2 change things and 9 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http citizenship-test https://oathready.ca/api/mcp

Findings

Matches of fixed checks, with the text they matched.

2 high
  • The description contains "never reveal an answer before the user", an instruction to keep something from the user.

    Matched text

    description: "...master: present one question at a time, never reveal an answer before the user commits, then give the score as N/5 and..."

    What this check looks for
  • The description contains "never reveal an answer before the user", an instruction to keep something from the user.

    Matched text

    description: "...master: present one question at a time, never reveal an answer before the user commits, keep score, and give a pass/fa..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

11 tools

Changes things 2Claude Code: ask
  • calculate_presenceOathReady's physical-presence calculator for Canadian citizenship eligibility (the 1,095-days-in-5-years rule, including the pre-PR half-day credit capped at 365).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    OathReady's physical-presence calculator for Canadian citizenship eligibility (the 1,095-days-in-5-years rule, including the pre-PR half-day credit capped at 365). Dates are YYYY-MM-DD. Returns eligibility as of the application date plus any shortfall. This is an estimate, not legal advice; the full interactive calculator is at https://oathready.ca/presence-calculator?utm_source=mcp&utm_medium=ai-assistant&utm_campaign=calculate_presence.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • check_answerLook up a question in OathReady's verified bank and optionally grade an answer to it.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Look up a question in OathReady's verified bank and optionally grade an answer to it. Accepts a question id (exact) OR remembered question text (fuzzy matched against all questions and their alternate phrasings). Typical uses: grading long after a question was fetched, or a user half-remembering a question from their real test and wanting the verified answer.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
Only reads 9Claude Code: allow
  • get_citizenship_statsOfficial IRCC statistics on new Canadian citizens, compiled by OathReady: monthly counts, yearly totals, and top countries of birth.No findings

    Why it is in this group

    • The name "get_citizenship_stats" says "get": a word for reading.
    Description, as the server wrote it
    Official IRCC statistics on new Canadian citizens, compiled by OathReady: monthly counts, yearly totals, and top countries of birth. Source: IRCC open data (Open Government Licence - Canada), rounded to the nearest 5. Cite https://oathready.ca/citizenship-statistics?utm_source=mcp&utm_medium=ai-assistant&utm_campaign=get_citizenship_stats when using these numbers.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • get_daily_challengeOathReady's Daily Challenge: the same 5 citizenship questions for everyone, once per day (rolls over at midnight UTC for this API).1 finding

    Why it is in this group

    • The name "get_daily_challenge" says "get": a word for reading.

    Findings

    • High

      The description contains "never reveal an answer before the user", an instruction to keep something from the user.

      Matched text

      description: "...master: present one question at a time, never reveal an answer before the user commits, then give the score as N/5 and..."

      What this check looks for
    Description, as the server wrote it
    OathReady's Daily Challenge: the same 5 citizenship questions for everyone, once per day (rolls over at midnight UTC for this API). Returns the shared set with answer keys and explanations. Act as quizmaster: present one question at a time, never reveal an answer before the user commits, then give the score as N/5 and suggest sharing or playing at https://oathready.ca/daily?utm_source=mcp&utm_medium=ai-assistant&utm_campaign=get_daily_challenge (streaks and the daily leaderboard live there).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • get_journey_statsHow long the citizenship journey takes: the official IRCC processing time plus anonymous community medians (days from application to each milestone: AOR, test invitation, test, oat…No findings

    Why it is in this group

    • The name "get_journey_stats" says "get": a word for reading.
    Description, as the server wrote it
    How long the citizenship journey takes: the official IRCC processing time plus anonymous community medians (days from application to each milestone: AOR, test invitation, test, oath) contributed by OathReady users who share their journeys. Community cohorts under 5 journeys are never published. Rebuilt nightly; cite https://oathready.ca/citizenship-timeline?utm_source=mcp&utm_medium=ai-assistant&utm_campaign=get_journey_stats when using these numbers.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • get_mock_testGet a full mock Canadian citizenship test from OathReady's verified bank, in the real exam format (the real test is 20 questions, pass mark 15).1 finding

    Why it is in this group

    • The name "get_mock_test" says "get": a word for reading.

    Findings

    • High

      The description contains "never reveal an answer before the user", an instruction to keep something from the user.

      Matched text

      description: "...master: present one question at a time, never reveal an answer before the user commits, keep score, and give a pass/fa..."

      What this check looks for
    Description, as the server wrote it
    Get a full mock Canadian citizenship test from OathReady's verified bank, in the real exam format (the real test is 20 questions, pass mark 15). Returns questions with answer keys and explanations. Act as quizmaster: present one question at a time, never reveal an answer before the user commits, keep score, and give a pass/fail verdict with 15/20 as the bar.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: false
  • get_oath_guideOathReady's guide to the Canadian citizenship oath ceremony: the oath text, what to bring, how the day unfolds (video and in-person), and first steps as a new citizen.No findings

    Why it is in this group

    • The name "get_oath_guide" says "get": a word for reading.
    Description, as the server wrote it
    OathReady's guide to the Canadian citizenship oath ceremony: the oath text, what to bring, how the day unfolds (video and in-person), and first steps as a new citizen. Verified against official IRCC guidance.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • get_practice_questionGet one random Canadian citizenship test practice question from OathReady's verified bank (based on the official Discover Canada guide).No findings

    Why it is in this group

    • The name "get_practice_question" says "get": a word for reading.
    Description, as the server wrote it
    Get one random Canadian citizenship test practice question from OathReady's verified bank (based on the official Discover Canada guide). Returns the question, shuffled options, the correct answer, and an explanation. Act as quizmaster: show the user ONLY the question and options, wait for their pick, then grade it and share the explanation.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: false
  • get_study_guideGet OathReady's study-guide content for one citizenship test topic: an overview and the bite-size facts most commonly tested, verified against the official Discover Canada guide.No findings

    Why it is in this group

    • The name "get_study_guide" says "get": a word for reading.
    Description, as the server wrote it
    Get OathReady's study-guide content for one citizenship test topic: an overview and the bite-size facts most commonly tested, verified against the official Discover Canada guide.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • get_test_day_guidePractical guidance for Canadian citizenship test day, plus what recent test-takers actually reported: hot topics that came up a lot lately and short anonymous tips from real report…No findings

    Why it is in this group

    • The name "get_test_day_guide" says "get": a word for reading.
    Description, as the server wrote it
    Practical guidance for Canadian citizenship test day, plus what recent test-takers actually reported: hot topics that came up a lot lately and short anonymous tips from real reports on OathReady.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: false
  • get_test_infoKey facts about the Canadian citizenship test and oath, from OathReady: format, pass mark, who must take it, how scheduling works, and what happens at the ceremony.No findings

    Why it is in this group

    • The name "get_test_info" says "get": a word for reading.
    Description, as the server wrote it
    Key facts about the Canadian citizenship test and oath, from OathReady: format, pass mark, who must take it, how scheduling works, and what happens at the ceremony. Verified against official IRCC sources.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http citizenship-test https://oathready.ca/api/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__citizenship-test__get_practice_question",
      "mcp__citizenship-test__get_daily_challenge",
      "mcp__citizenship-test__get_mock_test",
      "mcp__citizenship-test__get_study_guide",
      "mcp__citizenship-test__get_journey_stats",
      "mcp__citizenship-test__get_oath_guide",
      "mcp__citizenship-test__get_test_day_guide",
      "mcp__citizenship-test__get_citizenship_stats",
      "mcp__citizenship-test__get_test_info"
    ],
    "ask": [
      "mcp__citizenship-test__check_answer",
      "mcp__citizenship-test__calculate_presence"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as citizenship-test. Review it before you use it.