SavePropTax MCP server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A remote MCP server and an open HTTP API for California property tax appeals.
Ask it whether a home is over-assessed. If recent comparable sales support a
lower value, it prepares the county's own Proposition 8 decline-in-value review
form and emails a signing link to the homeowner. The owner signs and pays a flat
$29. Checking is free, keyless, and can only ever lower a tax bill, never raise
it.
There is nothing to install. The server is hosted:
Streamable HTTP, no authentication, stateless.
Add it to a client
**Claude:** Settings, then Connectors, then Add custom connector, and paste the
URL above.
**ChatGPT:** Settings, then Connectors (or Apps), then add an MCP server by URL,
where your plan supports custom connectors.
**Claude Code:**
**Any MCP client:** point a streamable-HTTP transport at the URL. No token.
Tools
| Tool | Arguments | What it does |
| --- | --- | --- |
| check_property_tax_savings | address (required), unit | Free check of one California home. Returns a status, the current assessment, an opinion of value from recent comparable sales, and estimated annual savings. A qualifying result carries a continueToken. |
| start_filing | continueToken, ownerName, ownerPhone, ownerEmail | Prepares the county form and emails the signing link to the owner. The link is never returned to the client. |
| get_filing_status | docId | Coarse status only: awaiting_signature, awaiting_payment, filed, delivered, unknown. No personal information. |
The rule that shapes everything
**An agent never handles the signature or the money.** The signing link goes to
the owner's inbox. The owner reviews the county's own form, signs it, and pays.
The worst an anonymous caller can do is spend a free check and send a real
homeowner a legitimate link to their own property.
HTTP API
The same capability without MCP. Keyless.
A qualifying response:
Then hand the token and the owner's details to prepare:
Poll the status endpoint for progress:
Every status to handle
| status | meaning |
| --- | --- |
| qualifies | Comparable sales support a defensibly lower value, savings exceed $500 a year, and the county window is open. The only status carrying a continueToken. |
| fair_assessment | Sales do not support a value below the current assessment this year. |
| not_enough_data | Too few closely matched recent sales for a defensible filing. |
| not_residential | The parcel's county record is not residential. |
| window_closed | The county's review window has closed; filing.reopens says when it returns. |
| county_not_served | A California county not covered yet. |
| already_filed | A review request was already filed for this property this year. |
| address_not_found | Retry with the city included. |
| needs_more_info | The message says what is missing, for example a unit number. |
| busy | Heavy load: fresh checks briefly paused, cached answers still serve. Retry shortly. |
Every message is a relayable one-sentence explanation you can pass to your user
as written.