About lowball
Lowball is an MCP server and CLI for estimating rental offers and lease-renewal counters using Zillow listings and comparable rentals. It gives negotiation figures, reasons, and a message, with estimates based on local listing data.
Key features
- 01Analyze a Zillow rental listing
- 02Score rentals from entered details
- 03Estimate lease-renewal counters
- 04Nearby comparable listings and offer rationale
- 05Negotiation message generation
Use cases
- 01Prepare an offer for a Zillow rental
- 02Compare asking rents and listing duration
- 03Assess a proposed renewal increase
- 04Draft a landlord negotiation message
MCP support
The public remote MCP server at `https://api.lowball.rent/mcp` exposes `check_rent`, `score_rental`, and `renewal`. MCP clients can connect without an account or API key.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
3Saved tool list · updated 6d ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | A zillow.com/homedetails/... link, or the numeric zpid from it. |
| autopay | boolean | No | Add an autopay line to the message. |
| lease_months | enum | No | Lease term to put in the message. Default 12.12 | 18 | 24 |
Details
From the project READMELowball 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.
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 ChatGPT, claude.ai, or any chat bot that takes an MCP connector
Lowball runs a public MCP server at https://api.lowball.rent/mcp. No account, no key.
- ChatGPT: Settings > Apps & Connectors > Advanced > Developer mode, then Create: name Lowball, URL
https://api.lowball.rent/mcp, authentication None. - claude.ai: Settings > Connectors > Add custom connector, URL
https://api.lowball.rent/mcp. - Anything else (Cursor, VS Code, Gemini, Copilot, Goose): add an HTTP MCP server with that URL.
Then paste a Zillow rental link and ask what to offer.
In Claude Code
As a plugin (adds the remote 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 server, remote (nothing to install) or local:
claude mcp add --transport http lowball https://api.lowball.rent/mcp
claude mcp add lowball -- npx -y @lowball/mcp
Then paste a Zillow rental link and ask what to offer.
The tools
The remote server and the npm package expose the same 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.
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. The remote server sees your chat client's IP address for rate limiting and keeps no record of it. 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.
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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.