# ccpcrate — Canadian CCPC corporate tax

> Deterministic Canadian CCPC rate stack: small business deduction and grinds, Part IV, RDTOH.

- name: ca.ccpcrate/ccpcrate
- version: 0.1.0
- connection class: R0 (autonomous)
- trust: 92/100
- quality: 89/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ca.ccpcrate%2Fccpcrate
- tools: https://api.protogrid.dev/v1/servers/ca.ccpcrate%2Fccpcrate/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "ccpcrate": {
      "type": "http",
      "url": "https://ccpcrate.ca/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 99
- freshness: 85
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-97% ~updated-43d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 4 of 4 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: ccpcrate_rules (destructiveHint); ccpcrate_explain (destructiveHint); ccpcrate_resolve (destructiveHint); …
- pass `tools.token_cost`: about 6,748 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 6,748 tokens to load them all
- tool set hash: 8cf80b05f0015a01fb3f6577850c3fe5
- badge: [![protogrid quality](https://protogrid.dev/badge/ca.ccpcrate/ccpcrate.svg)](https://protogrid.dev/servers/ca.ccpcrate/ccpcrate)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://ccpcrate.ca/mcp (streamable-http, auth none, reachable true, uptime30d 0.974359)

## Packages

_none_

## Tools (4)

- `ccpcrate_explain`: 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.
- `ccpcrate_group`: 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.
- `ccpcrate_resolve`: 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.
- `ccpcrate_rules`: The statutory rates and parameters the engine uses (14 jurisdictions, effective dates, application modes, sources, verification status), filterable by jurisdiction, key and date. Free.
