Skip to main content
Glama

OathReady: Canadian Citizenship Test

Calculate physical presence

calculate_presence
Read-onlyIdempotent

Calculate physical presence 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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pr_dateYesDate the person became a permanent resident
absencesNoTrips outside Canada (departure and return days count as present)
application_dateNoPlanned application date (defaults to today)
temporary_resident_fromNoIn Canada since this date as a temporary resident/protected person, if any

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteYes
pr_daysYes
eligibleYes
pre_pr_creditYes
required_daysYes
shortfall_daysYes
full_calculatorYes
pre_pr_credit_capYes
total_credited_daysYes
pre_pr_physical_daysYes
absence_days_deductedYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and idempotentHint=true, and the description adds behavioral details: returns eligibility and shortfall, dates in YYYY-MM-DD, and the estimate nature. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the core purpose, and each sentence adds value. It is appropriately sized with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (legal rule, multiple parameters, output schema), the description covers the essentials: calculation rule, date format, output (eligibility and shortfall), and a link to the full calculator. It is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific meaning beyond the schema but provides overall context (date format, rule details). This is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calculates physical presence for Canadian citizenship eligibility with specific details (1,095-days rule, half-day credit). It uses a specific verb and resource, distinguishing it from sibling tools like get_citizenship_stats or get_journey_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for usage (eligibility estimation) and includes a disclaimer that it's not legal advice. However, it does not explicitly state when not to use it or mention alternatives among sibling tools, though none are directly related.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: presence calculation, question lookup/grading, stats, daily challenge, journey stats, mock test, oath guide, practice question, study guide, test day guide, and test info. Even the three question-providing tools (get_daily_challenge, get_mock_test, get_practice_question) are well-differentiated by format and intent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, with most starting with 'get_' (e.g., get_daily_challenge, get_mock_test) and two exceptions (calculate_presence, check_answer) that still adhere to the same verb_noun structure. No mixed conventions.

Tool Count5/5

11 tools is well-scoped for the Canadian citizenship test domain. It covers eligibility calculation, multiple question formats, statistics, guides, and test-day information without being overwhelming or sparse.

Completeness5/5

The tool surface covers the entire lifecycle: eligibility check (calculate_presence), study resources (practice questions, mock tests, study guide, daily challenge), reference info (test info, oath guide, test day guide), statistics, and a question-answer lookup tool. No obvious gaps for the stated purpose.

Resources