Lowball MCP Server
README.md
# Lowball for the terminal and for Claude
Rent negotiation numbers for any Zillow rental: what similar places nearby ask, how long it has really been listed
(Zillow's counter restarts on a relist), whether it has been cut, what an empty month costs the landlord, an offer,
a likely settling point, and a message to send. Also prices a lease renewal increase.
Free, no account. Estimates, not a guarantee. Not affiliated with Zillow. The browser extension and the website are
at [lowball.rent](https://lowball.rent).
## From the command line
```
npx -y @lowball/mcp check https://www.zillow.com/homedetails/.../12345678_zpid/
npx -y @lowball/mcp score --rent 2450 --zip 92109 --beds 2 --baths 1 --sqft 850 --days 30
npx -y @lowball/mcp renewal --current 3000 --proposed 3300 --zip 92014 --beds 2 --years 2
```
Options for `check`: `--lease 12|18|24` sets the term in the message, `--autopay` adds an autopay line.
## In Claude Code
As a plugin (adds the MCP server and a skill that knows when to use it):
```
claude plugin marketplace add peterskotte123/lowball-plugin
claude plugin install lowball@lowball
```
Or just the MCP server:
```
claude mcp add lowball -- npx -y @lowball/mcp
```
Then paste a Zillow rental link and ask what to offer.
## In any other MCP client
Run `npx -y @lowball/mcp` as a stdio server. Three tools:
| tool | takes | gives |
|---|---|---|
| `check_rent` | a Zillow listing link or id | the numbers, the reasons, the closest comparable listings, and a message |
| `score_rental` | rent and ZIP, plus beds, baths, sqft, days, type | the same, for a rental you describe yourself |
| `renewal` | current rent, proposed rent, ZIP, plus beds, years, free months | a counter, the landlord's cost if you leave, and the reasons |
## Where the numbers come from
Lowball is trained on San Diego County rental listings and tracks them nightly (cuts, relists, exits). There it gives
one number with a confidence level. Anywhere else it builds the estimate from like-for-like listings it has seen
within a few miles and says so with a wider range. Monthly figures are published at
[lowball.rent/rent-report](https://lowball.rent/rent-report/).
## What is sent
Each call is one HTTPS request to `api.lowball.rent` carrying only the Zillow id or the numbers you typed. No name,
email or account. Listing lookups are capped per day across all users; when the cap is hit, `score_rental` with the
numbers typed in still works. Privacy: [lowball.rent/privacy](https://lowball.rent/privacy).
## Development
Zero dependencies, Node 18+. `node cli/lowball.js` runs the MCP server on stdio; `node cli/lowball.js check <link>`
runs the terminal check. Set `LOWBALL_API` to point at a local API.
MIT.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues