CELPass: CELPIP practice and CRS calculator
Server Details
CELPIP practice questions with answers, sample answers, and Canada's November 2026 CRS calculator.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 5 tools
Each tool has a clearly distinct role: CRS factor calculation, high-wage occupation lookup, practice-item retrieval, Reading/Listening answer checking, and Speaking/Writing sample answers. The two CRS-related tools are related but separated by action (calculate vs. search), and the CELPIP tools cover different stages of the practice workflow.
All names use snake_case and are verb-first (calculate_, check_, find_, get_), with a predictable resource/action pattern. The date qualifier in calculate_crs_november_2026 is a semantic suffix rather than a convention break.
Five tools is well-scoped for a server that combines CELPIP practice support with a targeted CRS calculation workflow. Each tool earns its place and there are no redundant or filler tools.
The set covers the core practice loop (get question, check Reading/Listening, compare Speaking/Writing to samples) and the specific November 2026 CRS occupation-points workflow. Minor gaps remain, such as no full CRS calculator beyond that factor and no targeted practice selection, but agents can work around these.
Available Tools
5 toolscalculate_crs_november_2026New CRS points (November 3, 2026)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| high_wage_jobs | No | Canadian jobs (part of that work experience) and the months spent in each. Omit if none. | |
| spouse_counted | Yes | True if a spouse or common-law partner is coming to Canada and isn't a citizen or PR | |
| current_crs_score | No | CRS score in the profile today (optional) | |
| job_offer_noc_code | No | NOC code of a qualifying full-time job offer, if any | |
| canadian_work_years | Yes | Years of skilled (TEER 0–3) work in Canada in the last 10 years, as counted today; 5 means 5 or more |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds real behavioral substance: the award tiers, the 2x/1.5x/1.3x wage thresholds, 'whichever is higher, never both', caps of 150/140, and that no LMIA is needed. It stops short of explaining the return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is one sprawling, comma-chained sentence packed with ratios and point values that is hard to parse quickly. The content largely earns its place, yet structure suffers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema calculation tool, the description covers inputs, rule precedence, thresholds, and caps thoroughly. The main remaining gap is that the response shape (delta vs. updated total, per-occupation breakdown) is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description goes beyond it by explaining that NOC codes are resolved against IRCC's wage-level list and by tying the caps to spouse_counted. This gives the wage/structure semantics the schema alone does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Estimate) and a precisely scoped resource (CRS points gained on Nov 3, 2026 under the new Labour Market Integration factor), with the calculation rules and caps inline. It is unambiguously distinct from the CELPIP and occupation-lookup siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the caller to supply NOC codes and that only this factor changes, which implies the usage context, but it never names when to pick this tool over find_high_wage_occupation or the CELPIP tools, and gives no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_celpip_answersCheck CELPIP practice answersARead-onlyInspect
Mark a learner's answers to a Reading or Listening item from get_celpip_practice_question: returns the score and, for each question the learner answered, whether it is right and the correct letter. Each question_id can be marked once, so send all the learner's answers together; explanations are in the CELPass app.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | Yes | Question number → chosen letter, e.g. {"1": "C", "2": "A"} | |
| question_id | Yes | question_id returned with the question |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description exposes genuinely useful behavior: results include a score plus a per-question correct/incorrect flag and the correct letter, and answers are accepted only once per question_id. That last rule reads as server-side record keeping, which sits awkwardly against readOnlyHint=true, and the description never reconciles the two or says what happens on a repeat submission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The behavior and return shape are front-loaded, followed by the once-per-question batching rule. It is a touch dense (semicolons chaining three ideas), but every clause carries information about invocation or output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the return values (score, per-question correctness, correct letter) and explains that reasoning lives in the CELPass app rather than in the response. It leaves the repeat-submission/error behavior and the readOnly tension unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including the answers map example {"1": "C"}. The description only reinforces the intent of question_id ("returned with the question") and that the map should be sent whole, adding little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ("Mark") with a clearly delimited resource (a learner's answers to one Reading or Listening item) and ties the input to the sibling tool get_celpip_practice_question, so an agent can separate it from get_celpip_sample_answers or get_celpip_practice_question.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit operational guidance: send all the learner's answers together because each question_id can be marked only once. It also implies the precondition that the question must first come from get_celpip_practice_question, though it never says when not to use this tool or names the sample-answers sibling as an alternative for explanations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_high_wage_occupationFind a high-wage occupationARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Job title words or a NOC code, e.g. 'software engineer' or '72201' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavior beyond that: a dated list version, the catalog size, the fact that matches return a wage-level multiple plus earned CRS points, and what a miss implies — all of which an agent needs to interpret empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero filler. The lookup scope and the match output are front-loaded, and the negative case (unlisted = no points) closes it cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, annotation-backed, output-schema-less tool, the description does the right thing by summarizing both the accepted inputs and the returned fields (level multiple, CRS points). Fuller detail on match count or result ordering would be nice but is not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter's schema already gives the same examples ('software engineer', '72201') quoted in the description, so little is added. The description confirms that either free-text job title words or a bare NOC code are acceptable, but that is essentially restatement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (search) plus a named, uniquely-scoped resource (IRCC's high-wage occupation list, 186 NOC 2021 codes) and the two supported query forms. Nothing in the sibling set (CRS calculation, CELPIP tools) overlaps, so an agent can route to it unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description frames the context clearly: the list version in effect (Nov 3, 2026) and the decision-relevant consequence that an unlisted occupation earns no high-wage or job offer points. It lacks an explicit 'use X instead when...' pointer, but no sibling covers this lookup, so the absence is low-risk.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_celpip_practice_questionCELPIP practice questionARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | Part number (Reading 1–4, Listening 1–6, Speaking 1–8, Writing 1–2); omit for any part | |
| skill | No | Default reading |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), and the description adds genuinely useful behavior beyond them: results are random from today's set, the set rotates daily and is identical for everyone, calls are non-idempotent, and Listening provides no transcript. It stops short of describing pagination or rate/limit details, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is front-loaded with the core purpose and then organized by skill in parallel clauses, so it scans quickly despite its length. It is slightly verbose in enumerating every part range, but nearly every sentence carries actionable information about return content or routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey return content itself, and it does so comprehensively for all four skills, including the important absence of answers and the daily random-set behavior. Nothing an agent needs to call this correctly appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100% and the schema itself documents the part ranges and the omission behavior, so the baseline is 3. The description adds value by mapping each part/skill to the concrete content returned (passage+MCQs, listen_url without transcript, prep/speaking times, word counts), giving the agent a richer sense of what a given parameter value yields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Get one random CELPIP practice item') and then details exactly what is returned for each of the four skill areas, down to listen_url, visual, timing and word limits. An agent can distinguish this from check_celpip_answers and get_celpip_sample_answers purely from the text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states explicitly that no answers are included and names the two alternatives for each case: mark Reading/Listening with check_celpip_answers, compare Speaking/Writing with get_celpip_sample_answers. It also clarifies the 'omit for any part' behavior, leaving little inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_celpip_sample_answersCELPIP Speaking and Writing sample answersARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| question_id | Yes | question_id returned with the Speaking or Writing task |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds useful content-level context: the answer bands returned (4–5, 7–8, 9–10, 11–12) and that responses include an official rating, which goes beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first front-loads what is returned and its provenance, the second states the use case. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey return content, and it does (sample answers per level band plus CELPIP's rating). Combined with the annotation-covered safety profile and a fully documented single parameter, nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented, so the baseline is 3. The description adds real meaning by tying question_id to a Speaking or Writing task obtained from get_celpip_practice_question, clarifying the expected source and valid scope of the value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('sample answers at several CELPIP levels ... for a Speaking or Writing task') and names the sibling that produces the required question_id (get_celpip_practice_question). An agent can distinguish this from check_celpip_answers and get_celpip_practice_question without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the intended use ('Use them to give the learner feedback on their own answer') and the prerequisite dependency on get_celpip_practice_question. It does not explicitly contrast with check_celpip_answers, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
calculate_crs_november_2026 - First observed
check_celpip_answers - First observed
find_high_wage_occupation - First observed
get_celpip_practice_question - First observed
get_celpip_sample_answers
Related MCP Connectors
Canadian citizenship test practice: verified questions, mock tests, IRCC stats, eligibility tools.
Review IELTS and CELPIP speaking practice, progress and feedback saved in Joe Speaking.
Unofficial OINP (Ontario OWP Stream) score estimates, scoring grid and CLB conversion.
French tests and schools that count for Canadian PR.
Related MCP Servers
- AlicenseBqualityDmaintenanceA comprehensive learning project providing hands-on experience with Model Context Protocol (MCP) server development, featuring calculator and text utility tools for integration with Claude Desktop.1MIT
- AlicenseAqualityDmaintenanceA calculator-focused MCP server template with tools, resources, and prompts built on NitroStack.22MIT
- AlicenseNot gradedqualityDmaintenanceA calculator MCP server built as part of a step-by-step tutorial that demonstrates core MCP primitives—tools, resources, and prompts—and can be upgraded to a live weather server.MIT
- FlicenseNot gradedqualityDmaintenanceProvides mathematical calculation tools including basic operations, expressions, and functions, along with TypeScript SDK documentation resources and meeting summary prompt templates.-
Glama MCP Gateway
Add one secure layer between your agents and this server.