booli_search_areas
Resolve a Booli area
Resolve a place name to Booli areas — municipalities, districts, streets — each with its `area_id` to pass as `area_id` into booli_search_listings / booli_search_sold. Read-only.
limitqueryrequired
io.github.chrischallPublished by GitHub account chrischallv2.2.0Updated Nov 7, 2026
Booli.se real estate for Claude: search listings, sold prices, areas & market stats
Read-only MCP server for the Swedish property portal Booli: search for-sale and sold listings, resolve areas, and compute market statistics.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
An MCP server for Booli, the Swedish property portal — search active for-sale listings, sold prices (slutpriser), resolve areas, and compute market statistics, all from Claude.
Developed and maintained by AI (Claude Code). Use at your own discretion and within booli.se's terms of use.
Booli fronts www.booli.se — including its GraphQL API — with a Cloudflare bot wall that blocks server-side clients. booli-mcp therefore reads Booli's consumer GraphQL API by routing each query through your own signed-in www.booli.se browser tab via the fetchproxy bridge (the ContextMint Bridge browser extension), reusing your Cloudflare-cleared session. No Booli login is required — just a normal page view. All tools are read-only.
BOOLI_TRANSPORT selects the path: auto (default — direct fetch first,
browser-bridge fallback when walled), fetchproxy (always the bridge), or
direct. The fetchproxy fleet shares WS port 37149 (BOOLI_WS_PORT).
Install ContextMint Bridge from its
releases page — Chrome: download
the chrome zip, unzip it, and load it unpacked at chrome://extensions
(Developer mode). Safari isn't available yet (it will ship inside the
ContextMint app, which has no public download), so use Chrome for now.
Keep a www.booli.se tab open.
ContextMint Bridge is the fetchproxy browser extension under its new name,
from the same maintainer — fetchproxy's own
README points to it.
Its source is public at
nullnet-app/contextmint-bridge:
build it yourself, or check a release zip against the .sha256 file
published beside it
(shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256).
On the first request, approve the one-time pairing prompt in ContextMint Bridge.
Run booli_healthcheck to confirm the path is working. Its transport
field says which leg served the probe (direct or fetchproxy) and,
once the bridge exists, bridge.session_state says whether the
extension is linked, pair_pending (approve the pair code
it names), or extension_disconnected.
Searches scope by area_id (from booli_search_areas) or a free-text
location. Money is SEK, areas m². See
docs/BOOLI-API.md for the underlying GraphQL API.
MIT
Source: README.md at commit e7ea253
Resolve a Booli area
Resolve a place name to Booli areas — municipalities, districts, streets — each with its `area_id` to pass as `area_id` into booli_search_listings / booli_search_sold. Read-only.
limitqueryrequiredSearch Booli for-sale listings
Search active for-sale property listings on booli.se. Scope by `area_id` (from booli_search_areas) or a free-text `location`, and filter by price, rooms, living area, plot, object type, construction year. Paginated by `page`; check `total_count`/`pages`. Read-only.
pagesortviewarea_idlocationascendingmax_roomsmin_roomsobject_typemax_plot_areamin_plot_areamax_list_price+8 moreGet a Booli property
Full detail for one property by its Booli residence id — the number in a booli.se/bostad/<id> URL, or the `residence_id` from a search result. Works for both active and sold properties. Read-only.
viewresidence_idrequiredSearch Booli sold listings (slutpriser)
Search sold properties (slutpriser) on booli.se with the achieved final price and over/under-asking % — the comparables for valuation. Scope by `area_id` or free-text `location`, filter by sold price, sold date, rooms, area, object type. Paginated by `page`. Read-only.
pagesortviewarea_idlocationascendingmax_roomsmin_roomsobject_typemax_plot_areamax_sold_datemin_plot_area+10 moreBooli sold-price market statistics
Aggregate sold-price statistics (median/average final price, price per m², average over/under-asking %) for an area on booli.se. Takes the same scope and filters as booli_search_sold, computed over ONE page of sold results (most recent first by default) — `page`/`pages` say which, and `total_count` is the whole matching set, not the sample. `sample_size` is the rows on the page; `sold_price_count` / `price_per_sqm_count` / `price_change_count` are the rows that fed each metric. Check them before trusting a thin median. Read-only.
pagesortviewarea_idlocationascendingmax_roomsmin_roomsobject_typemax_plot_areamax_sold_datemin_plot_area+10 moreVerify the ContextMint Bridge connection end-to-end
Round-trips a small public www.booli.se URL (/graphql) through ContextMint Bridge (your signed-in browser tab) and returns diagnostics: the bridge's role (host/peer/null), port, version, the extension link (linked / pair pending / not attached / never answered), the elapsed round-trip time, and a plain-English hint distinguishing 'bridge never came up' from 'extension not connected' from 'this browser can't serve a capability' from 'real www.booli.se-side problem'. Read-only, no auth required. Call this when a real tool fails and you want to know which hop broke.
Takes no parameters.
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.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
// mcp config{ "mcpServers": { "booli": { "command": "npx", "args": ["-y", "@chrischall/booli-mcp"] } }}npm installnpm test # vitest, no networknpm run build # tsc + esbuild bundle