CELPIP practice questions with answers, sample answers, and Canada's November 2026 CRS calculator.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Estimate the CRS points an Express Entry candidate gains on November 3, 2026, when Canadian work experience becomes the Labour Market Integration factor: unchanged work-length points plus 70/40/20 extra points after 12+ months in a 2×/1.5×/1.3× high-wage occupation, or 100/70/50 points for a job offer in one (no LMIA needed), whichever is higher, never both. Max 150 (140 with a spouse). Give NOC codes; the tool looks up each occupation's level on IRCC's list. Only this factor changes.
True if a spouse or common-law partner is coming to Canada and isn't a citizen or PR
Years of skilled (TEER 0–3) work in Canada in the last 10 years, as counted today; 5 means 5 or more
Canadian jobs (part of that work experience) and the months spent in each. Omit if none.
CRS score in the profile today (optional)
NOC code of a qualifying full-time job offer, if any
Estimate the CRS points an Express Entry candidate gains on November 3, 2026, when Canadian work experience becomes the Labour Market Integration factor: unchanged work-length points plus 70/40/20 extra points after 12+ months in a 2×/1.5×/1.3× high-wage occupation, or 100/70/50 points for a job offer in one (no LMIA needed), whichever is higher, never both. Max 150 (140 with a spouse). Give NOC codes; the tool looks up each occupation's level on IRCC's list. Only this factor changes.
| Argument | Type | Description |
|---|---|---|
| high_wage_jobs | array | Canadian jobs (part of that work experience) and the months spent in each. Omit if none. |
| spouse_counted* | boolean | True if a spouse or common-law partner is coming to Canada and isn't a citizen or PR |
| current_crs_score | integer | CRS score in the profile today (optional) |
| job_offer_noc_code | string | NOC code of a qualifying full-time job offer, if any |
| canadian_work_years* | integer | Years of skilled (TEER 0–3) work in Canada in the last 10 years, as counted today; 5 means 5 or more |
{
"type": "object",
"required": [
"spouse_counted",
"canadian_work_years"
],
"properties": {
"high_wage_jobs": {
"type": "array",
"items": {
"type": "object",
"required": [
"noc_code",
"months"
],
"properties": {
"months": {
"type": "number",
"minimum": 0
},
"noc_code": {
"type": "string",
"pattern": "^\\d{5}$",
"description": "5-digit NOC 2021 code, e.g. 21231"
}
}
},
"description": "Canadian jobs (part of that work experience) and the months spent in each. Omit if none."
},
"spouse_counted": {
"type": "boolean",
"description": "True if a spouse or common-law partner is coming to Canada and isn't a citizen or PR"
},
"current_crs_score": {
"type": "integer",
"maximum": 1200,
"minimum": 0,
"description": "CRS score in the profile today (optional)"
},
"job_offer_noc_code": {
"type": "string",
"pattern": "^\\d{5}$",
"description": "NOC code of a qualifying full-time job offer, if any"
},
"canadian_work_years": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Years of skilled (TEER 0–3) work in Canada in the last 10 years, as counted today; 5 means 5 or more"
}
}
}Mark a learner's answers to a Reading or Listening item from get_celpip_practice_question: returns the score, the correct letter for each question and an explanation of why each option is right or wrong.
| Argument | Type | Description |
|---|---|---|
| answers* | object | Question number → chosen letter, e.g. {"1": "C", "2": "A"} |
| question_id* | string | question_id returned with the question |
{
"type": "object",
"required": [
"question_id",
"answers"
],
"properties": {
"answers": {
"type": "object",
"description": "Question number → chosen letter, e.g. {\"1\": \"C\", \"2\": \"A\"}",
"additionalProperties": {
"type": "string"
}
},
"question_id": {
"type": "string",
"description": "question_id returned with the question"
}
}
}Search IRCC's high-wage occupation list (in effect November 3, 2026; 186 NOC 2021 codes) by job title words or NOC code. Returns each match's level (2×, 1.5× or 1.3× the average median wage) and the CRS points it earns. An occupation that isn't listed earns no high-wage or job offer points.
| Argument | Type | Description |
|---|---|---|
| query* | string | Job title words or a NOC code, e.g. 'software engineer' or '72201' |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Job title words or a NOC code, e.g. 'software engineer' or '72201'"
}
}
}Get one random CELPIP practice item from CELPass in the real test format. Reading (parts 1–4): a passage or diagram with multiple-choice questions and fill-in blanks shown as ____(n). Listening (parts 1–6): the questions plus a listen_url where the learner plays the recording (no transcript). Speaking (parts 1–8): the task, any picture, and the preparation and speaking times. Writing (tasks 1–2): the email or survey task with its time limit and word count. No answers are included: mark Reading and Listening with check_celpip_answers, and compare Speaking and Writing with get_celpip_sample_answers. Each day has a new set of items (3 per part), the same for everyone; calls return a random one from today's set.
| Argument | Type | Description |
|---|---|---|
| part | integer | Part number (Reading 1–4, Listening 1–6, Speaking 1–8, Writing 1–2); omit for any part |
| skill | string | Default reading |
{
"type": "object",
"properties": {
"part": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Part number (Reading 1–4, Listening 1–6, Speaking 1–8, Writing 1–2); omit for any part"
},
"skill": {
"enum": [
"reading",
"listening",
"speaking",
"writing"
],
"type": "string",
"description": "Default reading"
}
}
}Sample answers at several CELPIP levels (4–5, 7–8, 9–10, 11–12) for a Speaking or Writing task from get_celpip_practice_question, with how CELPIP rates it. Use them to give the learner feedback on their own answer.
| Argument | Type | Description |
|---|---|---|
| question_id* | string | question_id returned with the Speaking or Writing task |
{
"type": "object",
"required": [
"question_id"
],
"properties": {
"question_id": {
"type": "string",
"description": "question_id returned with the Speaking or Writing task"
}
}
}