Booli Mcp

io.github.chrischall由 GitHub 账号 chrischall 发布v2.2.0更新于 Nov 7, 2026

Booli.se real estate for Claude: search listings, sold prices, areas & market stats

已验证STDIO仅桌面位置与生活数据与分析

概览

AI 生成的概览

面向瑞典房产网站 Booli 的只读 MCP 服务器:搜索在售与已售房源、解析区域,并计算市场统计。

可以做什么
  • 把地名解析为 Booli 区域 ID(市镇、街区、街道)
  • 按区域或自由文本搜索在售房源,可按价格、房间数、居住面积、地块、房型和建造年份筛选
  • 按房源 ID 获取单套房产的完整详情,在售与已售均可
  • 搜索已售房源(slutpriser),返回成交价与高于或低于要价的百分比,可按成交价、成交日期、房间数、面积和房型筛选
  • 计算某区域的成交价汇总统计:中位数与平均成交价、每平方米价格、平均高于或低于要价比例
  • 运行健康检查,报告本次探测走的数据通道以及浏览器桥接的状态
适用场景
适合让助手调研瑞典房地产市场:把要价与已售可比房源对比、为房产估值,或汇总某个市镇、街区的价格走势。仅面向 Booli.se 数据,金额为瑞典克朗,面积为平方米。
运行要求
通过 npx 从 npm 包 @chrischall/booli-mcp 本地运行(需要 Node.js)。Booli 会拦截服务端客户端,因此默认路径需要:在 Chrome 中安装 ContextMint Bridge 浏览器扩展、保持一个已登录的 www.booli.se 标签页打开,并完成一次配对授权。无需 Booli 账号登录。可选环境变量:BOOLI_TRANSPORT、BOOLI_WS_PORT、FETCHPROXY_IDENTITY_DIR、FETCHPROXY_WS_HOST。
安装前请注意
查询会经由你自己已登录的 booli.se 浏览器标签页转发,复用你已通过 Cloudflare 校验的会话,因此流量会经过该浏览器扩展;README 建议用随发布提供的校验和核对扩展压缩包。桥接会在磁盘上保存长期身份密钥对(FETCHPROXY_IDENTITY_DIR)。README 说明该服务器由 AI 开发,请自行斟酌使用并遵守 booli.se 的使用条款。所有工具均为只读。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Booli Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

booli-mcp

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.

How it works

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).

Setup

  1. 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).

  2. On the first request, approve the one-time pairing prompt in ContextMint Bridge.

  3. 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.

Install

jsonc
// mcp config{  "mcpServers": {    "booli": {      "command": "npx",      "args": ["-y", "@chrischall/booli-mcp"]    }  }}

Tools

ToolWhat it does
booli_search_areasResolve a place name to Booli area ids
booli_search_listingsSearch active for-sale listings by area + filters
booli_get_listingFull detail for one property (active or sold) by residence id
booli_search_soldSearch sold listings (slutpriser) with final prices
booli_market_statsMedian/average sold-price statistics for an area
booli_healthcheckProbe the data path and report transport (direct / fetchproxy, the BOOLI_TRANSPORT mode) and, once the bridge is up, bridge (role, port, extension link session_state, pending pair code) with a next-step hint

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.

Development

npm installnpm test          # vitest, no networknpm run build     # tsc + esbuild bundle

License

MIT

来源:README.md,提交 e7ea253

工具

6

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.

输入参数limitquery必填

booli_search_listings

Search 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 个

booli_get_listing

Get 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_id必填

booli_search_sold

Search 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 个

booli_market_stats

Booli 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 个

booli_healthcheck

Verify 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.

无需输入参数。

版本历史

15
  1. v2.2.0最新Nov 4, 2026
  2. v2.1.11Oct 20, 2026
  3. v2.1.10Oct 17, 2026
  4. v2.1.9Oct 16, 2026
  5. v2.1.8Oct 10, 2026
  6. v2.1.7Oct 7, 2026
  7. v2.1.6Oct 5, 2026
  8. v2.1.5Oct 3, 2026
  9. v2.1.4Sep 28, 2026
  10. v2.1.3Sep 23, 2026
  11. v2.1.2Sep 23, 2026
  12. v2.1.1Sep 21, 2026
  13. v2.1.0Sep 20, 2026
  14. v2.0.0Sep 17, 2026
  15. v1.3.3Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分