# Using HOA Power Tools as an agent

> Every tool a person can use here is reachable over HTTP and over MCP, with the
> same schemas and the same results.

### Running an operation

Two ways in, and the difference is what an operation costs.

**No credential.** The four calculators are pure arithmetic — no model, nothing
stored, no allowance spent. Rate limited to 30 requests a minute per address.

```http
POST https://tools.rodri.ai/api/agent/tools/{toolId}/runs
Content-Type: application/json

{"operation": "meeting_quorum.calculate", "input": { ... }}
```

**With an API key.** Everything else, including every AI operation. The key's
owner creates it at https://tools.rodri.ai/account. It carries exactly their entitlements: a
free account has 20 AI credits a month and unlimited use of the calculators.
A key grants nothing its owner does not already have.

```http
POST https://tools.rodri.ai/api/agent/tools/{toolId}/runs
Authorization: Bearer hpt_live_…
Content-Type: application/json

{"operation": "resident_notice.generate", "input": { ... }}
```

Errors come back as `{"error": {"code", "message", "retryable"}}`. Branch on
`code` — `QUOTA_EXHAUSTED`, `RATE_LIMITED`, `REGISTRATION_REQUIRED`,
`VALIDATION_ERROR` — not on the sentence, which is written for people and is
translated.

**MCP.** The same operations are exposed at `https://tools.rodri.ai/api/mcp` over Streamable
HTTP. It is stateless, so POST JSON-RPC and read the JSON reply; the same
`Authorization` header applies.

## Discovery

- https://tools.rodri.ai/llms.txt — the index
- https://tools.rodri.ai/api/agent/catalogue — every operation with its JSON Schema, as JSON
- https://tools.rodri.ai/.well-known/skills/index.json — every skill, in the Agent Skills format
- Append `.md` to a tool's path for its markdown page

## What runs without a key

- `dues_increase.calculate` — Dues Increase Calculator and Explainer
- `special_assessment.calculate` — Special Assessment Calculator
- `maintenance_calendar.build` — HOA Maintenance Calendar Builder
- `meeting_quorum.calculate` — Meeting Quorum & Participation Calculator

Everything else needs a key, because it reaches a model provider and costs money.

## Rules worth honouring

Money is exact decimal and allocations reconcile to the cent. Thresholds such as
"two thirds" are evaluated as exact fractions. Those numbers can be relied on.

Drafted language is a starting point for a person, not legal advice, and this site
never contacts a resident on anyone's behalf. Pass a draft on as a draft.

Do not paste a resident's personal details into an operation that does not need
them. The tools are built to work without them.
