关于 paris-compass-mcp
paris-compass-mcp 是供 Agent 调查巴黎商业铺面的只读 MCP 服务,适合评估租约的创业者。六项工具基于公开来源返回地址和街区信息,并提供引用与置信等级,而非不透明的单一评分。
主要功能
- 01六项只读铺面调查工具
- 02地址历史与商誉转让记录
- 03街道业态更替和存续情况
- 04周边设施与环境指标
- 05为数据标注来源、日期和置信度
适用场景
- 01签租约前评估巴黎店面
- 02查看某地址过去经营的业态
- 03比较周边设施和环境情况
MCP 相关
它向 MCP 客户端提供托管数据集上的六项匿名只读工具;可通过 `npx -y paris-compass-mcp` 启动。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y paris-compass-mcpSUPABASE_URLOptional. The server carries the public Compass project, so nothing is required to run it. Set this only to read a different Supabase project — a derived deployment.SUPABASE_ANON_KEY密钥Optional, and never a service key. The anonymous publishable key, read-only under row level security — the same trust boundary a visitor of the website has.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
6收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Compass
签租约前,先读懂这条街。
这个地址曾经营过什么,这条街的商户更替情况如何,商誉转让价格是多少。仅使用公开来源,每个数字均有出处。
打开演示 → · 无需账户 · 预录入地址,巴黎 17 区
面向 Agent → npx -y paris-compass-mcp · 六个只读工具,使用托管数据集
问题
你站在一间空店面前。Agent 说这条街很热闹。
Compass 会同时从六个维度给出答案。
| 这里以前经营什么 | 10 rue Mandar,巴黎 2 区:2023 年普查中记录为一家亚洲餐厅,自 2017 年以来,这个门牌号发生过六次商誉转让 |
| 这条街的经营情况 | 按行业统计的商户更替率和存活率,基于三次普查测算——在 2017 年和 2020 年的许可问题解决前暂不提供 |
| 成本是多少 | 商誉中位价在 160 000 至 170 000 € 之间,咖啡馆为 220 000 € |
| 目前正在发生什么 | 在这里提交的资不抵债申请,会在任何挂牌信息出现前数月成为公开信息 |
| 周边有什么 | 800 m 范围内的学校、医疗、食品、绿地和交通设施数量,并汇总为步行便利度指标 |
| 环境状况如何 | 空气质量为实测(Copernicus),1 km 范围内的自然和技术风险,500 m 范围内主要道路的噪声为建模估算 |
每项数据都会附上来源、日期和置信度。
注意这里的措辞,产品也会保持一致:空气质量是实测的,噪声是建模估算的。噪声和人流量均为代理指标,屏幕上和本文中都会明确标注。
值得多说两句的三个问题
这里以前开过厨房吗? 如果这里曾经是餐厅,排烟系统、隔油池和电力设施很可能都已配齐。否则,建这些设施要花上数万欧元,还需要得到楼宇管理方的同意。这是这份数据能回答的最昂贵的问题——也是你动身前就能问的问题。
这里是死气沉沉的街区,还是好地段? 商铺不断更替的街道并不等于正在衰败:铺面可能换了店主,又重新开张。而更替率只有与该街区自身的行业情况,以及该街区本身相比才有意义——同一行业在不同街区的情况并不相同。Compass 根据三次普查衡量这两项指标。
这些数据没有在此列出。 它们基于 2017 年和 2020 年的数据版本,其许可尚未获批,服务端也不会向匿名调用者提供这些数据。本页面遵循与产品相同的规则:基于被扣留数据版本计算出的比率也会被扣留。
人们实际付了多少钱? 自 2015 年以来,已有 25 661 笔商誉转让交易连同价格一并公布。在其中 5 971 笔与单个铺面相关的交易中,巴黎商铺 fonds 的转让价格中位数在 160 000 到 170 000 € 之间——这是一个区间,而非单一数值,因为商誉价格通常以整数申报:中位数落在一个档位上,并会跳跃变化,因此给出单一数字,反而会对来源数据不具备的精确度作出暗示。行业几乎决定了一切。
| 食品商店 | 咖啡馆/餐厅 | 服装 | 个人服务 |
|---|---|---|---|
| 250 000 € | 220 000 € | 86 000 € | 50 000 € |
一个地址就能说明问题。在 10 rue Mandar,trace_premise 返回了 2017 至 2024 年间的六笔商誉转让交易,价格从 87 500 到 450 000 € 不等——检索日期为 2026 年 10 月 7 日。每一笔都标记为 probable,而非 established:这个门牌号对应两个铺面,而公告没有说明转让的是哪一家。2017 年和 2020 年的普查记录返回 withheld,2023 年的记录则返回 established。
数字如何获得一席之地
每个数字都附有来源、许可和日期——以及它的可信程度。
flowchart LR
A["APUR BDCom<br/>3 censuses"] --> M["Address<br/>matching"]
B["BODACC<br/>sales + insolvencies"] --> M
C["INSEE Sirene<br/>establishments"] --> M
M --> V{"Does the source<br/>name THIS unit?"}
V -->|"names it directly"| E["established"]
V -->|"two sources agree,<br/>neither names it"| F["corroborated"]
V -->|"address shared by<br/>several shopfronts"| G["probable"]
V -->|"source is silent"| H["undetermined"]
E --> O["Every figure carries<br/>source · licence · vintage · method"]
F --> O
G --> O
H --> O
O --> UI["Map and unit file"]
O --> MCP["MCP server,<br/>for an agent"]
四个等级,绝不用百分比。 以 100 分为满分的可信度评分,恰恰属于本产品拒绝提供的那种无法核实的数字。等级根据现有列计算得出,每一行都会附上产生该等级的原因。
截至 2026 年 10 月 6 日的语料库构成——这是质量指标;要提升质量,就要让以下四个数字逐步向左移动:
| 已确立 | 多方佐证 | 可能 | 未确定 |
|---|---|---|---|
| 51.2% | 5.9% | 37.0% | 5.9% |
37.0% 是结构性问题,不是疏忽:BODACC 提供的是地址,BDCom 提供的是铺面,而 69% 的铺面与其他铺面共用门牌号。没有任何公开数据能指出八家铺面中究竟哪一家转让了。
在发布任何内容之前,质量门禁会对整个语料库运行 56 项不变量检查、24 个冻结基线和 8 条人工核验的时间线,之后还会按计划每天再次运行——截至 2026 年 10 月 6 日的不变量数量通过 grep -c '^-- @invariant ' eval/invariants.sql 统计。其中大多数检查函数的返回结果;有一项检查函数本身:暴露 observed 列的函数必须是 SECURITY DEFINER,因为行级安全策略会悄无声息地将被扣留的记录变成“从未调查过”。
上方的徽章统计的是不变量数量,并不表示质量门禁已通过。目前尚未解决的红色问题,均标记为 porte-rouge。
两项创立原则
大多数商业地产工具只描述房源——建筑面积、租金、照片——剩下的都留给你自行推断。Compass 不卖覆盖范围,也不卖颗粒度:它卖的是解读,而产品本身就是背景信息。
解读的价值取决于你能否核验。这个市场上的工具承诺提供基于审计数据的答案——这说的是谁核验过。Compass 承诺提供可根据注明出处的公开来源重新推导的数字——这说的是谁可以核验:你自己。内部审计是一种承诺。注明出处的来源则是任何人都能重新验证的测试,包括针对我们自己的测试。
如果一个数字无法根据注明出处的公开来源重新推导,就不会显示。
没有房东声明,没有抓取的房源信息,没有专有估算,也不会为了填补空缺而凭空编造评分。缺失的数据会显示为缺失——n/a,绝不会显示为 0。
如果同一条街上的两个单元得到相同的结论,Compass 就什么也没说。
有用的颗粒度是街道分段,有时甚至精确到人行道的某一侧。无法在这个尺度上变化的指标,只能描述一般背景信息,无法为决策定论。
适用对象
创业者——决定在哪里开店的店主、餐馆经营者、手艺人或加盟商。在职业生涯中,通常只会做一两次这样的决定,却要签下多年租约。
Agent——通过 MCP 服务提出同样问题的大模型。相同的评分核心,相同的可追溯性要求,输出形式不同:提供 JSON 和思维链,而不是地图。
**不适用于经纪人。**经纪人每个月要筛选数十处地点,需要投资组合、批量比较和全国覆盖。每一项都会让产品变得更复杂,不利于深入研究单个地址。两边都服务,结果就是两边都服务不好——想用 Compass 的经纪人能获得的,和 Agent 一样:API。
它拒绝提供什么
每一次拒绝,都能换回一些东西。关键就在于这种取舍。
| 它拒绝提供什么 | 换回了什么 |
|---|---|
| 房源门户 | 位于挂牌信息的上游。Compass 显示哪些场所即将空置——停止营业、商誉已售出、法院裁定清算、普查中显示为空置——而不是所有人早已能看到的信息 |
| 租金估算 | 对那个人人都想知道的数字保持诚实。法国没有商业实际租金的开放数据集 |
| 营收预测 | 可信度。编造营收预测会让页面上的其他数字都失去可信度 |
| 满分 100 的单一评分 | 面包店关注人流量,瑜伽馆希望安静,葡萄酒商关注收入中位数。一个评分会将彼此冲突的因素平均掉 |
| 全国覆盖 | 深度。真正有价值的数据源都在地方 |
| 探索前必须注册账号 | 无需先完成任何步骤,就能了解这个工具是否有用 |
它无法回答的问题,以及原因——与功能相比,这些缺口对产品的塑造更大
我需要付多少租金? 法国没有商业租金的开放观测机构。地方租金观测机构覆盖的是私人住房;INSEE 的 ILC 是修订指数,而非租金水平。街区层面的商业价值数据由私营供应商出售——这恰恰证明了它们并非开放数据。商誉转让价格提供间接信号,仅此而已。
有多少人从这扇门前经过? 巴黎没有常设行人传感器:该市的多模式计数器统计自行车、踏板车、摩托车、汽车、卡车和公交车——不统计行人。
供应商确实会出售这一数字,而“专有且昂贵”只是个站不住脚的反对理由——最好准确说明它究竟是什么。它来自一个移动电话面板:嵌入第三方应用的 SDK 在后台报告 GPS 坐标,然后根据已知人口统计数据对样本加权并进行外推。供应商自己也这样说——“我们看不到所有人。我们看到的是一个样本。” 一项针对类似面板的同行评审研究测得,其平均抽样率为 7.5%,波动范围为 4.5% 至 14.5%;低收入和受教育程度较低的人群代表性不足,且城乡偏差在研究期间中途反转。1
因此,这个数字是 modelled,而非 measured——买家无法查看自己所在街道的面板规模,也无法重现加权过程,更不会获知重新校准何时改变了去年的数字。问题不在于诚实,而在于可验证性。Compass 转而使用开放数据衡量人流存在情况和节奏,并在屏幕上将其标注为代理指标。
1 Li Z., Ning H., Jing F., Lessani M. N. (2024). Understanding the bias of mobile location data across spatial scales and over time. PLOS ONE 19(1):e0294430.
这里的人会花多少钱,花在什么地方? 银行卡交易数据:专有数据。没有替代方案。
今天有哪些单元正在市场上挂牌? 商业房源只在禁止重复使用其信息的私人门户网站上发布。因此,Compass 选择在它们的上游开展工作。
状态
如实标注:这里的 已构建 表示代码可以运行且检查通过,并不表示已部署。
| 组件 | 状态 |
|---|---|
| 地图、街区评分、环境面板 | 演示版 — 预先录入的第 17 区地址,尚未接入已摄取的数据集 |
| 每项数据均显示来源 | 已构建 |
| BDCom ×3 · BODACC · Sirene · 地理数据 | 已构建 — 85 418 个单位,228 275 条人口普查记录 |
| 部署到托管数据库 | 自 2026 年 8 月 15 日起上线 — 使用 publishable key 匿名读取 |
| 浏览器中的场所历史记录 — 在同一时间线上展示 BDCom ×3 和 BODACC | 已构建 — 已在开发版浏览器中对托管数据库进行演示,未在演示版中展示。docs/tickets/w0-fiche.md |
| 可导出的单地址文件 | 设计中,接下来开发 |
| 面向 Agent 的 MCP 服务 | 已发布并列出 — npx -y paris-compass-mcp (npm,MCP 注册表),六个工具,仅支持匿名只读,无需配置。 |
| Agent 对自身置信度的评估 | 研究中 |
每个数字的来源
目前已接入
| 来源 | 提供方 | 用途 | 许可证 |
|---|---|---|---|
| OpenStreetMap(Overpass) | OSM 贡献者 | 空置和已占用单元、零售、学校、医疗、公园、交通、道路 | ODbL |
| Base Adresse Nationale | Etalab / IGN | 地理编码 | Licence Ouverte 2.0 |
| 租金管制数据集 | Ville de Paris / OLAP | 仅限住房——作为服务范围信号,绝不呈现为商业租金,绝不乘以建筑面积,也绝不用作筛选条件 | ODbL |
| CAMS Europe(Open-Meteo) | Copernicus | AQI、PM2.5、NO₂ | CC BY 4.0 |
| Géorisques | BRGM / MTE | 1 km 范围内的自然和技术风险 | Licence Ouverte 2.0 |
客户端计算的评分:步行便利性、交通可达性、各类别密度、噪音和人流量——由于缺乏可靠的开放数据源,后两项明确标注为估算值。
已导入托管数据库,尚未在演示版中使用
| 来源 | 提供方 | 贡献 |
|---|---|---|
| BDCom 2017 / 2020 / 2023 | APUR | 对所有带有橱窗的底层单元进行逐户普查,采用 224 类活动分类,并记录建筑面积区间。单元标识符在不同年份的数据中保持稳定,因此三次普查可以依据该单元所在街道的情况衡量其经营变迁,并以过往业态为证据。这里有两个需要说明的限制:只有 2017 年和 2020 年的数据可以衡量空置情况——2023 年图层仅包含零售数据,因此缺失单元表示“已不再是商铺”,而不是“空置”;此外,各年份的许可证不同,因此不能一概宣称 BDCom 遵循 ODbL |
| BODACC | DILA | 商誉转让及其价格,以及破产程序——这是最接近创业者实际支付金额的公开数据,也是单元即将空出的信号 |
| 地理编码后的 Sirene | INSEE | 交叉验证:标明同一公司的机构在该地址设有地点,可将提示提升为已交叉验证,但绝不会使其成为已确认 |
PLU 商业保护(plub_protcom) | Ville de Paris | 在受保护的线性地段上,底层单元不得改变用途——这是最可能扼杀项目的因素。仅供参考,不具备监管效力:Portail des Règles d'Urbanisme 才是权威来源。此版本于 2024 年 11 月 20 日经巴黎市议会表决通过 |
计划接入
| 来源 | 提供方 | 贡献 |
|---|---|---|
| Mobiliscope | CNRS | 按小时统计实际在场人口——区分中午人口增至三倍的办公区与住宅区 |
| 交通验证数据 | Île-de-France Mobilités | 自 2015 年以来按小时统计各车站的进站人数——用实测数据取代人流代理指标 |
| DVF | DGFiP | 每平方米房屋产权的成交价格 |
| INSEE IRIS / FiLoSoFi | INSEE | 人口、收入、社会职业类别 |
| GTFS IDFM | Île-de-France Mobilités | 实际出行时间和班次频率 |
| Bruitparif | Bruitparif | 模型估算和实测噪音,取代道路代理指标 |
| Sitadel | SDES | 规划许可——提前两年了解未来居民和未来竞争者 |
范围
首先覆盖巴黎市区,随后扩展至 Île-de-France。重深度而非广度:真正创造价值的数据源都来自本地。
技术栈
React 18 · TypeScript · Vite 5 · Tailwind + shadcn/ui · Leaflet(直接使用,不用封装)· TanStack Query · Supabase + PostGIS
src/core/ 是纯代码——不包含 fetch、React 或 DOM。因此,同一套评分逻辑可供浏览器、测试运行器和 MCP 服务使用。
在本地运行
Node.js 18+。
git clone https://github.com/IvandeMurard/paris-compass.git
cd paris-compass
npm install
npm run dev
服务地址为 http://localhost:8080。
| 脚本 | 作用 |
|---|---|
npm run dev | 启用 HMR 的 Vite 开发服务 |
npm run typecheck | tsc --noEmit |
npm run test | Vitest |
npm run eval | 质量门禁:不变量、基线、黄金用例 |
npm run build | 生产构建 |
开放数据源无需密钥。如需使用自己的后端,请将 VITE_SUPABASE_URL 和 VITE_SUPABASE_PUBLISHABLE_KEY 写入 .env.local。只有以 VITE_ 为前缀的变量会传到浏览器——切勿将服务角色密钥或付费密钥放在那里。
许可与署名
代码采用 Apache-2.0 许可。数据则不然。
这个区别比看起来更重要,尤其是在一个完全基于开放数据构建的产品中。该许可仅适用于本仓库中的内容——评分核心、数据导入管线和界面。它不授予对数据集的任何权利;每个数据集都遵循各自的条款:
| 要求 | |
|---|---|
| ODbL — OpenStreetMap、租金管制数据集、BDCom 2023 | 署名并以相同方式共享。任何再利用都必须注明 © OpenStreetMap contributors |
| Licence Ouverte 2.0 — Base Adresse Nationale、Géorisques、Sirene | 注明来源及其更新日期 |
| CC BY 4.0 — CAMS Europe / Copernicus | 署名 |
BDCom 2017 和 2020 完全不可再分发。 它们的许可与 2023 版不同,因此数据库会按每个版本记录 publicly_redistributable 标记,并对匿名调用者隐藏其内容——内容和缺失状态都会一并隐藏,以免泄露任何信息。
本仓库不包含任何数据摘录,也不得包含。这里存放的是用于获取、建模和引用数据的代码。
由 Ivan de Murard 制作。
对这种方法或 MCP 层感兴趣?请提交 issue。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。