Tallyfern Rates MCP
A free, read-only MCP server providing Canadian tax and travel rates sourced from official CRA and Canada.ca pages. It allows AI assistants to retrieve GST/HST rates by province, perform small-supplier threshold checks, and access CRA per-km allowance and travel rates, with every answer including its source and an 'as of' date.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.tallyfern.com/mcpWhat its tools do
5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to tallyfern.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Retrieve current GST/HST rates by province
- Check if a business exceeds the $30,000 small-supplier threshold
- Access CRA per-km allowance and travel rates
- Verify official CRA sources for tax calculations
Source and maintenance
Protocol and capabilities
- Server
- tallyfern-rates 0.3.3
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 5 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
5 advertised
gst_hst_small_supplier_check — GST/HST small supplier ($30,000) check
Apply the CRA's $30,000 small-supplier tests (single calendar quarter and four consecutive calendar quarters) to taxable revenue by calendar quarter. Says whether the person must register for the GST/HST, when they stop being a small supplier, the effective date of registration, and headroom for next quarter. Most businesses only (not charities/public service bodies). Returns structuredContent with status, headline, the triggering quarter (or null), per-quarter rolling totals, next-quarter headroom, sources and an as-of date.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"quarters"
],
"properties": {
"quarters": {
"type": "array",
"items": {
"type": "object",
"required": [
"year",
"quarter",
"amount"
],
"properties": {
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1991,
"description": "Calendar year of the quarter, e.g. 2026"
},
"amount": {
"type": "number",
"minimum": 0,
"description": "Taxable revenue in CAD before expenses (worldwide taxable supplies incl. zero-rated; exclude exempt)"
},
"quarter": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "Calendar quarter: 1 = Jan–Mar, 2 = Apr–Jun, 3 = Jul–Sep, 4 = Oct–Dec"
}
},
"additionalProperties": false
},
"maxItems": 40,
"minItems": 1,
"description": "Consecutive calendar quarters, no gaps (use 0 for quarters with no sales)."
},
"taxiOrRideshare": {
"type": "boolean",
"description": "True if self-employed taxi or commercial ride-sharing driver (must register regardless)."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"rule",
"ruleVersion",
"threshold",
"currency",
"status",
"headline",
"trigger",
"explanation",
"latest",
"nextQuarter",
"quarters",
"sources",
"asOf",
"disclaimer",
"relatedLink",
"dataVersion"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date the rules were last verified"
},
"rule": {
"type": "string",
"description": "Identifier of the rule set applied (ca-gst-hst-small-supplier)"
},
"latest": {
"type": "object",
"required": [
"label",
"rollingFourQuarters",
"percentOfThreshold"
],
"properties": {
"label": {
"type": "string",
"description": "e.g. 'Q2 2026 (April 1 to June 30)'"
},
"percentOfThreshold": {
"type": "number",
"description": "rollingFourQuarters as a percent of the $30,000 threshold"
},
"rollingFourQuarters": {
"type": "number",
"description": "Total of the latest quarter and up to three previous quarters"
}
},
"description": "Summary for the most recent quarter given",
"additionalProperties": false
},
"status": {
"enum": [
"must_register",
"must_register_taxi",
"small_supplier"
],
"type": "string",
"description": "Result of the small-supplier tests"
},
"sources": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Official canada.ca pages used for this answer"
},
"trigger": {
"anyOf": [
{
"type": "object",
"required": [
"test",
"year",
"quarter",
"label",
"amount",
"ceasesOn",
"ceasesToBeSmallSupplier",
"effectiveRegistration"
],
"properties": {
"note": {
"type": "string",
"description": "Extra caveat, e.g. a later quarter that is also over the threshold on its own"
},
"test": {
"enum": [
"single_quarter",
"four_quarters"
],
"type": "string",
"description": "Which test was failed first"
},
"year": {
"type": "integer",
"description": "Calendar year of the triggering quarter"
},
"label": {
"type": "string",
"description": "e.g. 'Q2 2026 (April 1 to June 30)'"
},
"amount": {
"type": "number",
"description": "Revenue that went over the threshold"
},
"quarter": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "Calendar quarter: 1 = Jan–Mar, 2 = Apr–Jun, 3 = Jul–Sep, 4 = Oct–Dec"
},
"ceasesOn": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
],
"description": "Last day as a small supplier (four-quarter test); null for the single-quarter test"
},
"effectiveRegistration": {
"type": "string",
"description": "Plain-language effective date of registration (when to start charging GST/HST)"
},
"ceasesToBeSmallSupplier": {
"type": "string",
"description": "Plain-language statement of when the person stops being a small supplier"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The first quarter that triggered registration, or null"
},
"currency": {
"type": "string",
"const": "CAD",
"description": "Currency of all amounts: Canadian dollars"
},
"headline": {
"type": "string",
"description": "One-sentence answer"
},
"quarters": {
"type": "array",
"items": {
"type": "object",
"required": [
"year",
"quarter",
"label",
"amount",
"rollingFourQuarters",
"quartersInWindow",
"overSingleQuarter",
"overFourQuarters"
],
"properties": {
"year": {
"type": "integer",
"description": "Calendar year, e.g. 2026"
},
"label": {
"type": "string",
"description": "e.g. 'Q2 2026 (April 1 to June 30)'"
},
"amount": {
"type": "number",
"description": "Taxable revenue entered for this quarter"
},
"quarter": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "Calendar quarter: 1 = Jan–Mar, 2 = Apr–Jun, 3 = Jul–Sep, 4 = Oct–Dec"
},
"overFourQuarters": {
"type": "boolean",
"description": "True if the rolling total is over $30,000"
},
"quartersInWindow": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "How many quarters (1–4) are in that rolling total"
},
"overSingleQuarter": {
"type": "boolean",
"description": "True if this quarter alone is over $30,000"
},
"rollingFourQuarters": {
"type": "number",
"description": "Total of this and up to three previous quarters"
}
},
"additionalProperties": false
},
"description": "Each quarter checked, oldest first"
},
"threshold": {
"type": "number",
"description": "Small-supplier threshold (30000)"
},
"disclaimer": {
"type": "string",
"description": "Not-tax-advice notice"
},
"dataVersion": {
"type": "string",
"description": "Version of the Tallyfern Rates dataset, e.g. 2026.10.03"
},
"explanation": {
"type": "array",
"items": {
"type": "string"
},
"description": "Short plain-language points explaining the result"
},
"nextQuarter": {
"type": "object",
"required": [
"year",
"quarter",
"label",
"headroom"
],
"properties": {
"year": {
"type": "integer",
"description": "Calendar year, e.g. 2026"
},
"label": {
"type": "string",
"description": "e.g. 'Q2 2026 (April 1 to June 30)'"
},
"quarter": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "Calendar quarter: 1 = Jan–Mar, 2 = Apr–Jun, 3 = Jul–Sep, 4 = Oct–Dec"
},
"headroom": {
"type": "number",
"description": "Most revenue next quarter can have while staying a small supplier (0 if already over)"
}
},
"description": "The quarter after the latest one given, with remaining headroom",
"additionalProperties": false
},
"relatedLink": {
"type": "string",
"format": "uri",
"description": "Related free Tallyfern tool or page"
},
"ruleVersion": {
"type": "string",
"description": "Version of that rule set, e.g. 1.0.0"
}
},
"additionalProperties": false
}{
"title": "GST/HST small supplier check",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}gst_hst_rate_by_province — GST/HST and PST rates by province
Current GST/HST rate for a Canadian province or territory (or all 13), with the PST/QST rate CRA lists for reference. From CRA's 'Charge and collect the GST/HST' table. Returns structuredContent with one rate row (or all 13), the effective-from date, notes, the canada.ca source and an as-of date.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"province": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Province or territory code or name, e.g. \"ON\", \"Ontario\", \"QC\", \"Yukon\"."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asOf",
"effectiveFrom",
"source",
"notes",
"disclaimer",
"relatedLink",
"dataVersion"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date (YYYY-MM-DD) the figures were last checked against the source pages"
},
"rate": {
"type": "object",
"required": [
"code",
"name",
"taxType",
"gstHstPercent",
"provincialSalesTaxPercent",
"provincialSalesTaxName",
"combinedPercentIfBothApply"
],
"properties": {
"code": {
"enum": [
"AB",
"BC",
"MB",
"NB",
"NL",
"NT",
"NS",
"NU",
"ON",
"PE",
"QC",
"SK",
"YT"
],
"type": "string",
"description": "Province or territory code"
},
"name": {
"type": "string",
"description": "Province or territory name, e.g. Ontario"
},
"taxType": {
"enum": [
"GST",
"HST"
],
"type": "string",
"description": "GST (federal only) or HST (harmonized federal + provincial)"
},
"gstHstPercent": {
"type": "number",
"description": "GST or HST rate in percent"
},
"provincialSalesTaxName": {
"type": [
"string",
"null"
],
"description": "PST, QST or null"
},
"provincialSalesTaxPercent": {
"type": [
"number",
"null"
],
"description": "PST/QST in percent as listed by CRA for reference; null in HST provinces"
},
"combinedPercentIfBothApply": {
"type": "number",
"description": "GST/HST plus PST/QST where both apply"
}
},
"description": "The requested province or territory (when one was given)",
"additionalProperties": false
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Caveats: place of supply, zero-rated/exempt supplies, PST shown for reference"
},
"rates": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"name",
"taxType",
"gstHstPercent",
"provincialSalesTaxPercent",
"provincialSalesTaxName"
],
"properties": {
"code": {
"enum": [
"AB",
"BC",
"MB",
"NB",
"NL",
"NT",
"NS",
"NU",
"ON",
"PE",
"QC",
"SK",
"YT"
],
"type": "string",
"description": "Province or territory code"
},
"name": {
"type": "string",
"description": "Province or territory name, e.g. Ontario"
},
"taxType": {
"enum": [
"GST",
"HST"
],
"type": "string",
"description": "GST (federal only) or HST (harmonized federal + provincial)"
},
"gstHstPercent": {
"type": "number",
"description": "GST or HST rate in percent"
},
"provincialSalesTaxName": {
"type": [
"string",
"null"
],
"description": "PST, QST or null"
},
"provincialSalesTaxPercent": {
"type": [
"number",
"null"
],
"description": "PST/QST in percent as listed by CRA for reference; null in HST provinces"
}
},
"additionalProperties": false
},
"description": "All 13 provinces and territories (when no province was given)"
},
"source": {
"type": "object",
"required": [
"title",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Official canada.ca page"
},
"title": {
"type": "string",
"description": "Title of the official page"
},
"pageDateModified": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
],
"description": "'Date modified' shown on the page, if any"
}
},
"description": "Official source for these figures",
"additionalProperties": false
},
"disclaimer": {
"type": "string",
"description": "Not-tax-advice notice"
},
"dataVersion": {
"type": "string",
"description": "Version of the Tallyfern Rates dataset, e.g. 2026.10.03"
},
"relatedLink": {
"type": "string",
"format": "uri",
"description": "Related free Tallyfern tool or page"
},
"effectiveFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Rates effective on or after this date"
}
},
"additionalProperties": false
}{
"title": "GST/HST rate by province",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}cra_automobile_allowance_rate — CRA per-km automobile allowance rate
CRA reasonable per-kilometre allowance rates for employer-paid vehicle allowances (2026 default; 2025 also available): first 5,000 km and after, provinces vs territories. Optionally calculates the allowance for a number of business kilometres. Returns structuredContent with the per-km rates for provinces and territories, the rates for the given region, an optional tiered calculation, the source and an as-of date.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"year": {
"enum": [
2026,
2025
],
"type": "number",
"description": "Calendar year (2026 or 2025). Default 2026."
},
"province": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Province or territory code or name, e.g. \"ON\", \"Ontario\", \"QC\", \"Yukon\"."
},
"kilometres": {
"type": "number",
"maximum": 1000000,
"minimum": 0,
"description": "Business kilometres in the calendar year, to calculate an allowance."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"year",
"currency",
"rates",
"scope",
"asOf",
"source",
"territoryExtraPerKm",
"disclaimer",
"relatedLink",
"dataVersion"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date (YYYY-MM-DD) the figures were last checked against the source pages"
},
"year": {
"type": "integer",
"description": "Year the per-km rates apply to (2026 or 2025)"
},
"rates": {
"type": "object",
"required": [
"provinces",
"territories"
],
"properties": {
"provinces": {
"type": "object",
"required": [
"first5000Km",
"after5000Km"
],
"properties": {
"after5000Km": {
"type": "number",
"description": "$ per km after 5,000 km"
},
"first5000Km": {
"type": "number",
"description": "$ per km, first 5,000 km"
}
},
"description": "Rates for the provinces",
"additionalProperties": false
},
"territories": {
"type": "object",
"required": [
"first5000Km",
"after5000Km"
],
"properties": {
"after5000Km": {
"type": "number",
"description": "$ per km after 5,000 km"
},
"first5000Km": {
"type": "number",
"description": "$ per km, first 5,000 km"
}
},
"description": "Rates for YT, NT and NU",
"additionalProperties": false
}
},
"description": "CRA per-km allowance rates for that year",
"additionalProperties": false
},
"scope": {
"type": "string",
"description": "Who these rates are for (employer allowances to employees) and who they are not for"
},
"region": {
"type": "object",
"required": [
"code",
"name",
"isTerritory"
],
"properties": {
"code": {
"enum": [
"AB",
"BC",
"MB",
"NB",
"NL",
"NT",
"NS",
"NU",
"ON",
"PE",
"QC",
"SK",
"YT"
],
"type": "string",
"description": "Province or territory code"
},
"name": {
"type": "string",
"description": "Province or territory name"
},
"isTerritory": {
"type": "boolean",
"description": "True for YT, NT, NU"
}
},
"description": "The province or territory given, if any",
"additionalProperties": false
},
"source": {
"type": "object",
"required": [
"title",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Official canada.ca page"
},
"title": {
"type": "string",
"description": "Title of the official page"
},
"pageDateModified": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
],
"description": "'Date modified' shown on the page, if any"
}
},
"description": "Official source for these figures",
"additionalProperties": false
},
"currency": {
"type": "string",
"const": "CAD",
"description": "Currency of all amounts: Canadian dollars"
},
"applicable": {
"type": "object",
"required": [
"first5000Km",
"after5000Km"
],
"properties": {
"after5000Km": {
"type": "number",
"description": "$ per km after 5,000 km"
},
"first5000Km": {
"type": "number",
"description": "$ per km, first 5,000 km"
}
},
"description": "Rates that apply to the given province or territory",
"additionalProperties": false
},
"disclaimer": {
"type": "string",
"description": "Not-tax-advice notice"
},
"calculation": {
"type": "object",
"required": [
"kilometres",
"regionUsed",
"first5000",
"after5000",
"total",
"note"
],
"properties": {
"note": {
"type": "string",
"description": "Assumption behind the calculation"
},
"total": {
"type": "number",
"description": "Amount in Canadian dollars (CAD)"
},
"after5000": {
"type": "object",
"required": [
"km",
"rate",
"amount"
],
"properties": {
"km": {
"type": "number",
"description": "Kilometres in this tier"
},
"rate": {
"type": "number",
"description": "$ per km used for this tier"
},
"amount": {
"type": "number",
"description": "km × rate for this tier, in CAD"
}
},
"description": "Kilometres over 5,000 at the second-tier rate",
"additionalProperties": false
},
"first5000": {
"type": "object",
"required": [
"km",
"rate",
"amount"
],
"properties": {
"km": {
"type": "number",
"description": "Kilometres in this tier"
},
"rate": {
"type": "number",
"description": "$ per km used for this tier"
},
"amount": {
"type": "number",
"description": "km × rate for this tier, in CAD"
}
},
"description": "Kilometres up to 5,000 at the first-tier rate",
"additionalProperties": false
},
"kilometres": {
"type": "number",
"description": "Business kilometres given"
},
"regionUsed": {
"type": "string",
"description": "Province/territory code whose rates were used"
}
},
"description": "Allowance for the given kilometres",
"additionalProperties": false
},
"dataVersion": {
"type": "string",
"description": "Version of the Tallyfern Rates dataset, e.g. 2026.10.03"
},
"relatedLink": {
"type": "string",
"format": "uri",
"description": "Related free Tallyfern tool or page"
},
"territoryExtraPerKm": {
"type": "number",
"description": "Extra $ per km for the territories over the provincial rate"
}
},
"additionalProperties": false
}{
"title": "CRA automobile allowance rate",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}cra_meal_travel_allowance — CRA simplified meal and vehicle rates
CRA simplified-method rates (latest published tax year): flat meal rate per meal and maximum per day, and vehicle cents/km by province or territory where travel begins. These apply to moving expenses, northern residents deductions and medical travel, not to employer per-diems. Optionally calculates amounts. Returns structuredContent with the tax year, meal rates, vehicle cents/km (one province or all), optional vehicle and meal amounts, scope notes, the source and an as-of date.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"days": {
"type": "integer",
"maximum": 3660,
"minimum": 0,
"description": "Number of days (caps meals at the daily maximum)."
},
"meals": {
"type": "integer",
"maximum": 10000,
"minimum": 0,
"description": "Number of meals."
},
"province": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Province or territory where the travel begins."
},
"kilometres": {
"type": "number",
"maximum": 1000000,
"minimum": 0,
"description": "Kilometres driven, to calculate a vehicle amount (needs province)."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"taxYear",
"meals",
"scope",
"latestPublishedNote",
"asOf",
"source",
"disclaimer",
"relatedLink",
"dataVersion"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date (YYYY-MM-DD) the figures were last checked against the source pages"
},
"meals": {
"type": "object",
"required": [
"perMeal",
"maxPerDay",
"currencyNote"
],
"properties": {
"perMeal": {
"type": "number",
"description": "Amount in Canadian dollars (CAD)"
},
"maxPerDay": {
"type": "number",
"description": "Amount in Canadian dollars (CAD)"
},
"currencyNote": {
"type": "string",
"description": "CRA notes on currency, sales tax and receipts"
}
},
"description": "Simplified-method meal rates",
"additionalProperties": false
},
"scope": {
"type": "string",
"description": "What these rates apply to (moving expenses, northern residents deductions, medical travel) and what they don't"
},
"region": {
"type": "object",
"required": [
"code",
"name"
],
"properties": {
"code": {
"enum": [
"AB",
"BC",
"MB",
"NB",
"NL",
"NT",
"NS",
"NU",
"ON",
"PE",
"QC",
"SK",
"YT"
],
"type": "string",
"description": "Province or territory code"
},
"name": {
"type": "string",
"description": "Province or territory name"
}
},
"description": "Province or territory where travel begins, if given",
"additionalProperties": false
},
"source": {
"type": "object",
"required": [
"title",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Official canada.ca page"
},
"title": {
"type": "string",
"description": "Title of the official page"
},
"pageDateModified": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
],
"description": "'Date modified' shown on the page, if any"
}
},
"description": "Official source for these figures",
"additionalProperties": false
},
"taxYear": {
"type": "integer",
"description": "Tax year of the simplified rates returned (latest published on the CRA page)"
},
"disclaimer": {
"type": "string",
"description": "Not-tax-advice notice"
},
"mealAmount": {
"type": "object",
"required": [
"meals",
"days",
"amount",
"rule"
],
"properties": {
"days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Days given, or null"
},
"rule": {
"type": "string",
"description": "The rule applied, e.g. '$23 per meal, up to $69 per day per person.'"
},
"meals": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Meals given, or null"
},
"amount": {
"type": "number",
"description": "Meal amount after applying the daily maximum, in CAD"
}
},
"description": "Meal amount (when meals or days were given)",
"additionalProperties": false
},
"dataVersion": {
"type": "string",
"description": "Version of the Tallyfern Rates dataset, e.g. 2026.10.03"
},
"relatedLink": {
"type": "string",
"format": "uri",
"description": "Related free Tallyfern tool or page"
},
"vehicleAmount": {
"type": "number",
"description": "Kilometres × cents per km, converted to CAD dollars (when kilometres and province were given)"
},
"vehicleCentsPerKm": {
"type": "number",
"description": "Cents per km for the province where travel begins"
},
"latestPublishedNote": {
"type": "string",
"description": "Which tax year the CRA page showed as of the check date"
},
"vehicleCentsPerKmByProvince": {
"type": "object",
"description": "Cents per km by province code (when no province was given)",
"additionalProperties": {
"type": "number"
}
}
},
"additionalProperties": false
}{
"title": "CRA meal and vehicle rates",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}ontario_hst_basics — Ontario HST basics
Plain-language basics for Ontario businesses: the 13% HST rate, the $30,000 small-supplier threshold, the 29-day registration deadline and place-of-supply rule, with CRA sources. Returns structuredContent with the Ontario rate row, the threshold, the registration deadline in days, sources and an as-of date.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"province",
"rate",
"smallSupplierThreshold",
"registerWithinDays",
"sources",
"asOf",
"disclaimer",
"relatedLink",
"dataVersion"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date (YYYY-MM-DD) the figures were last checked against the source pages"
},
"rate": {
"type": "object",
"required": [
"code",
"name",
"taxType",
"gstHstPercent",
"provincialSalesTaxPercent",
"provincialSalesTaxName",
"combinedPercentIfBothApply"
],
"properties": {
"code": {
"enum": [
"AB",
"BC",
"MB",
"NB",
"NL",
"NT",
"NS",
"NU",
"ON",
"PE",
"QC",
"SK",
"YT"
],
"type": "string",
"description": "Province or territory code"
},
"name": {
"type": "string",
"description": "Province or territory name, e.g. Ontario"
},
"taxType": {
"enum": [
"GST",
"HST"
],
"type": "string",
"description": "GST (federal only) or HST (harmonized federal + provincial)"
},
"gstHstPercent": {
"type": "number",
"description": "GST or HST rate in percent"
},
"provincialSalesTaxName": {
"type": [
"string",
"null"
],
"description": "PST, QST or null"
},
"provincialSalesTaxPercent": {
"type": [
"number",
"null"
],
"description": "PST/QST in percent as listed by CRA for reference; null in HST provinces"
},
"combinedPercentIfBothApply": {
"type": "number",
"description": "GST/HST plus PST/QST where both apply"
}
},
"description": "Ontario's HST rate row from CRA's table",
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Official canada.ca pages used for this answer"
},
"province": {
"type": "string",
"const": "ON",
"description": "Always ON (Ontario)"
},
"disclaimer": {
"type": "string",
"description": "Not-tax-advice notice"
},
"dataVersion": {
"type": "string",
"description": "Version of the Tallyfern Rates dataset, e.g. 2026.10.03"
},
"relatedLink": {
"type": "string",
"format": "uri",
"description": "Related free Tallyfern tool or page"
},
"registerWithinDays": {
"type": "integer",
"description": "Days to register after the effective date of registration (29)"
},
"smallSupplierThreshold": {
"type": "number",
"description": "Small-supplier threshold (30000)"
}
},
"additionalProperties": false
}{
"title": "Ontario HST basics",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 442 ms
- 95th percentile latency
- 442 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 442 ms · metadata changed · 5 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http tallyfern-rates-mcp https://mcp.tallyfern.com/mcpCodex
codex mcp add tallyfern-rates-mcp --url https://mcp.tallyfern.com/mcpCursor
{
"mcpServers": {
"tallyfern-rates-mcp": {
"url": "https://mcp.tallyfern.com/mcp"
}
}
}Cline
{
"mcpServers": {
"tallyfern-rates-mcp": {
"type": "streamableHttp",
"url": "https://mcp.tallyfern.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"tallyfern-rates-mcp": {
"type": "http",
"url": "https://mcp.tallyfern.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http tallyfern-rates-mcp https://mcp.tallyfern.com/mcpClaude Desktop
https://mcp.tallyfern.com/mcpWindsurf
{
"mcpServers": {
"tallyfern-rates-mcp": {
"serverUrl": "https://mcp.tallyfern.com/mcp"
}
}
}Let your agent find its tools
Find servers like Tallyfern Rates MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run Tallyfern Rates MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.