OathReady: Canadian Citizenship Test
Canadian citizenship test practice: verified questions, mock tests, IRCC stats, eligibility tools.
사용해야 할까요
품질 및 안전성
발견 사항 (5)
- HIGH
- MEDIUMget_daily_challenge에서
- MEDIUMget_journey_stats에서
- MEDIUMget_citizenship_stats에서
- MEDIUMcalculate_presence에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"citizenship-test": {
"url": "https://oathready.ca/api/mcp"
}
}
}원격 엔드포인트
https://oathready.ca/api/mcpstreamable-http할 수 있는 일
도구 목록
도구 (11)
🟢get_practice_question(topic, province, language)
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.
입력 스키마
{
"type": "object",
"properties": {
"topic": {
"description": "Limit to one study topic",
"type": "string",
"enum": [
"history",
"government",
"geography",
"rights",
"symbols",
"economy",
"law"
]
},
"province": {
"description": "Include region-specific questions for this province or territory",
"type": "string",
"enum": [
"british-columbia",
"alberta",
"saskatchewan",
"manitoba",
"ontario",
"quebec",
"new-brunswick",
"nova-scotia",
"prince-edward-island",
"newfoundland-and-labrador",
"yukon",
"northwest-territories",
"nunavut"
]
},
"language": {
"description": "Language for the question text (default English; French draws only from translated questions)",
"type": "string",
"enum": [
"en",
"fr"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"language": {
"type": "string",
"description": "BCP 47 language this item is written in (\"en\" | \"fr\")"
},
"id": {
"type": "string",
"description": "Stable question id, e.g. q-042"
},
"question": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
},
"description": "Answer choices in display order"
},
"correct_answer": {
"type": "string",
"description": "Do not reveal until the user has answered"
},
"explanation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"topic": {
"type": "string"
},
"source": {
"type": "string"
},
"web_page": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "This question's page on oathready.ca"
}
},
"required": [
"language",
"id",
"question",
"options",
"correct_answer",
"explanation",
"topic",
"source",
"web_page"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_daily_challenge(language)
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).
입력 스키마
{
"type": "object",
"properties": {
"language": {
"description": "Language for the question text. Every locale gets the SAME five questions; any without a translation are returned in English (each item declares its own language)",
"type": "string",
"enum": [
"en",
"fr"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"challenge_number": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Today's challenge number (#1 = launch day)"
},
"web_page": {
"type": "string"
},
"questions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"language": {
"type": "string",
"description": "BCP 47 language this item is written in (\"en\" | \"fr\")"
},
"id": {
"type": "string",
"description": "Stable question id, e.g. q-042"
},
"question": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
},
"description": "Answer choices in display order"
},
"correct_answer": {
"type": "string",
"description": "Do not reveal until the user has answered"
},
"explanation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"topic": {
"type": "string"
},
"source": {
"type": "string"
},
"web_page": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "This question's page on oathready.ca"
}
},
"required": [
"language",
"id",
"question",
"options",
"correct_answer",
"explanation",
"topic",
"source",
"web_page"
],
"additionalProperties": false
}
}
},
"required": [
"challenge_number",
"web_page",
"questions"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_mock_test(count, topic, province, language)
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.
입력 스키마
{
"type": "object",
"properties": {
"count": {
"default": 20,
"description": "How many questions (real test is 20)",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"topic": {
"description": "Limit to one study topic",
"type": "string",
"enum": [
"history",
"government",
"geography",
"rights",
"symbols",
"economy",
"law"
]
},
"province": {
"description": "Include region-specific questions for this province or territory",
"type": "string",
"enum": [
"british-columbia",
"alberta",
"saskatchewan",
"manitoba",
"ontario",
"quebec",
"new-brunswick",
"nova-scotia",
"prince-edward-island",
"newfoundland-and-labrador",
"yukon",
"northwest-territories",
"nunavut"
]
},
"language": {
"description": "Language for the question text (default English; French draws only from translated questions)",
"type": "string",
"enum": [
"en",
"fr"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"pass_mark": {
"type": "string"
},
"questions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"language": {
"type": "string",
"description": "BCP 47 language this item is written in (\"en\" | \"fr\")"
},
"id": {
"type": "string",
"description": "Stable question id, e.g. q-042"
},
"question": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
},
"description": "Answer choices in display order"
},
"correct_answer": {
"type": "string",
"description": "Do not reveal until the user has answered"
},
"explanation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"topic": {
"type": "string"
},
"source": {
"type": "string"
},
"web_page": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "This question's page on oathready.ca"
}
},
"required": [
"language",
"id",
"question",
"options",
"correct_answer",
"explanation",
"topic",
"source",
"web_page"
],
"additionalProperties": false
}
}
},
"required": [
"pass_mark",
"questions"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢check_answer(question_id, language, question_text, answer)
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.
입력 스키마
{
"type": "object",
"properties": {
"question_id": {
"description": "The question id, e.g. q-042 (exact match)",
"type": "string"
},
"language": {
"description": "Language the answer (and question_text, if given) is written in; grading compares against that language's text",
"type": "string",
"enum": [
"en",
"fr"
]
},
"question_text": {
"description": "The question as the user remembers it (fuzzy matched); used when no id is given",
"type": "string"
},
"answer": {
"description": "The user's answer to grade, if they have one",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"match_confidence": {
"type": "string",
"enum": [
"exact_id",
"high",
"medium",
"low"
]
},
"question_id": {
"type": "string"
},
"question": {
"type": "string"
},
"your_answer_correct": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "null when no answer was provided to grade"
},
"correct_answer": {
"type": "string"
},
"explanation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"web_page": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"other_possible_matches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"question_id": {
"type": "string"
},
"question": {
"type": "string"
}
},
"required": [
"question_id",
"question"
],
"additionalProperties": false
},
"description": "Runner-up matches when the text match was not certain"
}
},
"required": [
"match_confidence",
"question_id",
"question",
"your_answer_correct",
"correct_answer",
"explanation",
"web_page",
"other_possible_matches"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_study_guide(topic)
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.
입력 스키마
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"history",
"government",
"geography",
"rights",
"symbols",
"economy",
"law"
],
"description": "The study topic"
}
},
"required": [
"topic"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"topic": {
"type": "string"
},
"title": {
"type": "string"
},
"overview": {
"type": "array",
"items": {
"type": "string"
}
},
"key_facts": {
"type": "array",
"items": {
"type": "string"
}
},
"practice_questions_in_topic": {
"type": "number"
},
"web_page": {
"type": "string"
}
},
"required": [
"topic",
"title",
"overview",
"key_facts",
"practice_questions_in_topic",
"web_page"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_journey_stats
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.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"official_processing_time": {
"type": "object",
"properties": {
"total_months": {
"type": "number"
},
"as_of": {
"type": "string"
},
"source": {
"type": "string"
}
},
"required": [
"total_months",
"as_of",
"source"
],
"additionalProperties": false
},
"community": {
"anyOf": [
{
"type": "object",
"properties": {
"shared_journeys": {
"type": "number"
},
"national_stages": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"n": {
"type": "number"
},
"p25_days_from_application": {
"type": "number"
},
"median_days_from_application": {
"type": "number"
},
"p75_days_from_application": {
"type": "number"
}
},
"required": [
"n",
"p25_days_from_application",
"median_days_from_application",
"p75_days_from_application"
],
"additionalProperties": false
}
},
"note": {
"type": "string"
}
},
"required": [
"shared_journeys",
"national_stages",
"note"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "null until enough journeys are shared"
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"key",
"label",
"description"
],
"additionalProperties": false
}
},
"web_page": {
"type": "string"
},
"cite": {
"type": "string"
}
},
"required": [
"official_processing_time",
"community",
"stages",
"web_page",
"cite"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_oath_guide
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.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"oath_text": {
"type": "string"
},
"oath_notes": {
"type": "string"
},
"bring": {
"type": "array",
"items": {
"type": "string"
}
},
"what_happens": {
"type": "array",
"items": {
"type": "string"
}
},
"formats": {
"type": "object",
"properties": {
"video": {
"type": "string"
},
"in_person": {
"type": "string"
}
},
"required": [
"video",
"in_person"
],
"additionalProperties": false
},
"dress_code": {
"type": "string"
},
"after_the_ceremony": {
"type": "array",
"items": {
"type": "string"
}
},
"web_page": {
"type": "string"
}
},
"required": [
"oath_text",
"oath_notes",
"bring",
"what_happens",
"formats",
"dress_code",
"after_the_ceremony",
"web_page"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_test_day_guide
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.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"before": {
"type": "array",
"items": {
"type": "string"
}
},
"during": {
"type": "array",
"items": {
"type": "string"
}
},
"online_test_facts": {
"type": "array",
"items": {
"type": "string"
}
},
"recently_hot_topics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"topic": {
"type": "string"
},
"count": {
"type": "number"
}
},
"required": [
"topic",
"count"
],
"additionalProperties": false
}
},
"recent_reports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"outcome": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"format": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"province": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"difficulty": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"hot_topics": {
"type": "array",
"items": {
"type": "string"
}
},
"tip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"date",
"outcome",
"format",
"province",
"difficulty",
"hot_topics",
"tip"
],
"additionalProperties": false
}
},
"web_page": {
"type": "string"
}
},
"required": [
"before",
"during",
"online_test_facts",
"recently_hot_topics",
"recent_reports",
"web_page"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_citizenship_stats
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.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"latest_full_year": {
"type": "string"
},
"year_totals": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"months": {
"type": "number"
},
"total": {
"type": "number"
}
},
"required": [
"months",
"total"
],
"additionalProperties": false
}
},
"top_countries_of_birth": {
"type": "object",
"properties": {
"year": {
"type": "string"
},
"rows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"country": {
"type": "string"
},
"count": {
"type": "number"
}
},
"required": [
"country",
"count"
],
"additionalProperties": false
}
}
},
"required": [
"year",
"rows"
],
"additionalProperties": false
},
"monthly": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ym": {
"type": "string"
},
"count": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"ym",
"count"
],
"additionalProperties": false
}
},
"source": {
"type": "array",
"items": {
"type": "string"
}
},
"retrieved": {
"type": "string"
},
"cite": {
"type": "string"
}
},
"required": [
"latest_full_year",
"year_totals",
"top_countries_of_birth",
"monthly",
"source",
"retrieved",
"cite"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢calculate_presence(pr_date, application_date, temporary_resident_from, absences)
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.
입력 스키마
{
"type": "object",
"properties": {
"pr_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date the person became a permanent resident"
},
"application_date": {
"description": "Planned application date (defaults to today)",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"temporary_resident_from": {
"description": "In Canada since this date as a temporary resident/protected person, if any",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"absences": {
"default": [],
"description": "Trips outside Canada (departure and return days count as present)",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Day they left Canada"
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Day they returned"
}
},
"required": [
"from",
"to"
]
}
}
},
"required": [
"pr_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"required_days": {
"type": "number"
},
"pr_days": {
"type": "number"
},
"pre_pr_physical_days": {
"type": "number"
},
"pre_pr_credit": {
"type": "number"
},
"pre_pr_credit_cap": {
"type": "number"
},
"total_credited_days": {
"type": "number"
},
"absence_days_deducted": {
"type": "number"
},
"eligible": {
"type": "boolean"
},
"shortfall_days": {
"type": "number"
},
"note": {
"type": "string"
},
"full_calculator": {
"type": "string"
}
},
"required": [
"required_days",
"pr_days",
"pre_pr_physical_days",
"pre_pr_credit",
"pre_pr_credit_cap",
"total_credited_days",
"absence_days_deducted",
"eligible",
"shortfall_days",
"note",
"full_calculator"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_test_info
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.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"test": {
"type": "object",
"properties": {
"format": {
"type": "string"
},
"pass_mark": {
"type": "string"
},
"who": {
"type": "string"
},
"based_on": {
"type": "string"
},
"scheduling": {
"type": "string"
},
"languages": {
"type": "string"
}
},
"required": [
"format",
"pass_mark",
"who",
"based_on",
"scheduling",
"languages"
],
"additionalProperties": false
},
"oath": {
"type": "object",
"properties": {
"what": {
"type": "string"
},
"guide": {
"type": "string"
}
},
"required": [
"what",
"guide"
],
"additionalProperties": false
},
"practice": {
"type": "object",
"properties": {
"free_practice": {
"type": "string"
},
"question_bank": {
"type": "string"
},
"statistics": {
"type": "string"
}
},
"required": [
"free_practice",
"question_bank",
"statistics"
],
"additionalProperties": false
}
},
"required": [
"test",
"oath",
"practice"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}권장 프롬프트
get_practice_questionget_practice_question커뮤니티
증거