Lowball

io.github.peterskotte123Published by GitHub account peterskotte123v0.1.2Updated Nov 5, 2026

What to offer on a Zillow rental: nearby asks, real days listed, cuts, a message. Not affiliated.

VerifiedSTDIODesktop onlyLocation & LifestyleFinance

Overview

AI-generated overview

Estimates rent-negotiation numbers for Zillow rentals — nearby asks, real days listed, price cuts, an offer and a message — plus lease renewal pricing.

What you can do
  • Check a Zillow rental listing by link or id and get comparable nearby asks, real days listed, cuts, an offer, a likely settling point and a message to send
  • Score a rental you describe yourself with rent and US ZIP, optionally beds, baths, square footage, days listed and property type
  • Price a lease renewal: compare proposed rent with nearby asks, estimate the landlord's cost if the tenant leaves, and get a counter with reasons
When to use it
Useful when you are deciding what to offer on a rental, want to know whether a listing has really been sitting or was relisted, or need numbers to counter a renewal increase. Best fit for San Diego County listings, where it gives one figure with a confidence level; elsewhere it builds a wider-range estimate from nearby listings.
Requirements
Runs locally via npx with Node 18 or newer, or as a remote HTTP MCP server at the provider's endpoint. No account or API key. Each call makes one HTTPS request to the provider's API, so network access is needed. Listing lookups are capped per day across all users.
Before you install
Estimates only, not a guarantee, and not affiliated with Zillow. Each call sends the Zillow listing id or the numbers you typed to the provider's API; the remote server sees the chat client's IP address for rate limiting. No name, email or account is sent. When the daily lookup cap is hit, only the self-described scoring tool keeps working.

Installation

In SourceWeft

  1. Open Lowball in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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.

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 30npx -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-pluginclaude plugin install lowball@lowball

Or just the server, remote (nothing to install) or local:

claude mcp add --transport http lowball https://api.lowball.rent/mcpclaude 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:

tooltakesgives
check_renta Zillow listing link or idthe numbers, the reasons, the closest comparable listings, and a message
score_rentalrent and ZIP, plus beds, baths, sqft, days, typethe same, for a rental you describe yourself
renewalcurrent rent, proposed rent, ZIP, plus beds, years, free monthsa 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.

Source: README.md at commit f058d0b

Tools

3

check_rent

Check a Zillow rental

Check a Zillow rental listing before you apply: what similar rentals nearby ask, how long it has really been listed (Zillow's counter resets on a relist), whether and how much it has been cut, what empty weeks cost the landlord, an offer, a likely settling point, and a message to send. Takes a Zillow listing link or its numeric id. Works best in San Diego County; elsewhere it uses the listings Lowball has seen nearby. Estimates, never a guarantee. Not affiliated with Zillow. Docs: https://github.com/peterskotte123/lowball-plugin#readme

Parametersurlrequiredautopaylease_months

score_rental

Score a rental by its numbers

Same check as check_rent, for a rental you describe yourself (when the Zillow lookup is capped, the listing is off Zillow, or you only know the numbers). Needs the monthly rent and a US ZIP; bedrooms, bathrooms, square feet, days listed and property type sharpen it.

Parametersziprequiredbedsdayssqfttypebathspricerequiredis_complexlease_months

renewal

Price a renewal increase

Price a lease renewal increase: compares the proposed rent with what similar rentals nearby ask and what the landlord loses if the tenant leaves, and returns a counter and the reasons. Takes current rent, proposed rent, and ZIP; bedrooms, tenure in years, and any free months sharpen it.

Parametersziprequiredbedssqfttypebathsyearsnew_rentis_complexmonths_freecurrent_rentrequiredproposed_rentrequirednew_months_free

Version history

1
  1. v0.1.2LatestNov 4, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts