ccpcrate — Canadian CCPC corporate tax
by ccpcrate.ca · remote · no sign-in to list tools · v0.1.0 · published by ca.ccpcrate
Deterministic Canadian CCPC rate stack: small business deduction and grinds, Part IV, RDTOH.
4 tools: 2 change things and 2 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http ccpcrate https://ccpcrate.ca/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
4 tools
Changes things 2Claude Code: ask
ccpcrate_groupCompute a whole associated group (s.256) in one call: federal line 417 as the sum of the members' prior-year adjusted investment income, the Schedule 23 allocation of the business …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Compute a whole associated group (s.256) in one call: federal line 417 as the sum of the members' prior-year adjusted investment income, the Schedule 23 allocation of the business limit, and every member's return in payer-before-recipient order so that a connected dividend's Part IV under s.186(1)(b) is filled in from the payer's own refund instead of being asked for. Returns each member's lines plus what the grind costs the group and which member causes it — the case a single-corporation computation cannot show. 0.25 USDC covers the group and its first 2 computed members, then 0.05 per additional member, never more than 1. Members that only contribute line 417 are free.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
ccpcrate_rulesThe statutory rates and parameters the engine uses (14 jurisdictions, effective dates, application modes, sources, verification status), filterable by jurisdiction, key and date.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The statutory rates and parameters the engine uses (14 jurisdictions, effective dates, application modes, sources, verification status), filterable by jurisdiction, key and date. Free.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
Only reads 2Claude Code: allow
ccpcrate_explainFree diagnostic pass over the same input as ccpcrate_resolve: which layers run, the defaults the engine would apply, every warning with its meaning (grind binding, provincial asymm…No findings
Why it is in this group
- The name "ccpcrate_explain" says "explain": a word for reading.
Description, as the server wrote it Free diagnostic pass over the same input as ccpcrate_resolve: which layers run, the defaults the engine would apply, every warning with its meaning (grind binding, provincial asymmetries, missing inputs), the rule rows in force for the year with sources and verification status, the open verifications, and what the paid computation would return. Contains no computed amounts — the numbers are in ccpcrate_resolve.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
ccpcrate_resolveCompute the federal Part I / Part IV / refundable / RDTOH / dividend-refund lines and the provincial layer for one CCPC and one taxation year.No findings
Why it is in this group
- The name "ccpcrate_resolve" says "resolve": a word for reading.
Description, as the server wrote it Compute the federal Part I / Part IV / refundable / RDTOH / dividend-refund lines and the provincial layer for one CCPC and one taxation year. Returns a readable summary plus the structured result: lines (rounded, as printed), unrounded audit values, facts, warnings, layers, balances carried forward, the inputs still missing, engine and rules versions and a request hash. Deductions are negative, taxes positive. A missing required input is an error, not a default. Paid: 0.25 USD per call in USDC over x402 (Base); without a payment the call returns the x402 payment requirements.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http ccpcrate https://ccpcrate.ca/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__ccpcrate__ccpcrate_resolve",
"mcp__ccpcrate__ccpcrate_explain"
],
"ask": [
"mcp__ccpcrate__ccpcrate_group",
"mcp__ccpcrate__ccpcrate_rules"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as ccpcrate. Review it before you use it.