mcpField
P
paris-compass-mcp

paris-compass-mcp

本地服务
github.com/IvandeMurard商业与营销12 周前更新

关于 paris-compass-mcp

paris-compass-mcp 是供 Agent 调查巴黎商业铺面的只读 MCP 服务,适合评估租约的创业者。六项工具基于公开来源返回地址和街区信息,并提供引用与置信等级,而非不透明的单一评分。

主要功能

  1. 01六项只读铺面调查工具
  2. 02地址历史与商誉转让记录
  3. 03街道业态更替和存续情况
  4. 04周边设施与环境指标
  5. 05为数据标注来源、日期和置信度

适用场景

  1. 01签租约前评估巴黎店面
  2. 02查看某地址过去经营的业态
  3. 03比较周边设施和环境情况

MCP 相关

它向 MCP 客户端提供托管数据集上的六项匿名只读工具;可通过 `npx -y paris-compass-mcp` 启动。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ivandemurard-paris-compass": {
"command": "npx",
"args": [
"-y",
"paris-compass-mcp"
],
"env": {
"SUPABASE_URL": "<SUPABASE_URL>",
"SUPABASE_ANON_KEY": "<SUPABASE_ANON_KEY>"
}
}
}
}
启动命令npx -y paris-compass-mcp
需要配置的环境变量
SUPABASE_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmparis-compass-mcp0.1.4

工具

6

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

Compass

签租约前,先读懂这条街。

这个地址曾经营过什么,这条街的商户更替情况如何,商誉转让价格是多少。仅使用公开来源,每个数字均有出处。

演示 范围 数据 评估门槛 MCP 许可证 技术栈

打开演示 → · 无需账户 · 预录入地址,巴黎 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 NationaleEtalab / IGN地理编码Licence Ouverte 2.0
租金管制数据集Ville de Paris / OLAP仅限住房——作为服务范围信号,绝不呈现为商业租金,绝不乘以建筑面积,也绝不用作筛选条件ODbL
CAMS Europe(Open-Meteo)CopernicusAQI、PM2.5、NO₂CC BY 4.0
GéorisquesBRGM / MTE1 km 范围内的自然和技术风险Licence Ouverte 2.0

客户端计算的评分:步行便利性、交通可达性、各类别密度、噪音和人流量——由于缺乏可靠的开放数据源,后两项明确标注为估算值。

已导入托管数据库,尚未在演示版中使用
来源提供方贡献
BDCom 2017 / 2020 / 2023APUR对所有带有橱窗的底层单元进行逐户普查,采用 224 类活动分类,并记录建筑面积区间。单元标识符在不同年份的数据中保持稳定,因此三次普查可以依据该单元所在街道的情况衡量其经营变迁,并以过往业态为证据。这里有两个需要说明的限制:只有 2017 年和 2020 年的数据可以衡量空置情况——2023 年图层仅包含零售数据,因此缺失单元表示“已不再是商铺”,而不是“空置”;此外,各年份的许可证不同,因此不能一概宣称 BDCom 遵循 ODbL
BODACCDILA商誉转让及其价格,以及破产程序——这是最接近创业者实际支付金额的公开数据,也是单元即将空出的信号
地理编码后的 SireneINSEE交叉验证:标明同一公司的机构在该地址设有地点,可将提示提升为已交叉验证,但绝不会使其成为已确认
PLU 商业保护(plub_protcom)Ville de Paris在受保护的线性地段上,底层单元不得改变用途——这是最可能扼杀项目的因素。仅供参考,不具备监管效力:Portail des Règles d'Urbanisme 才是权威来源。此版本于 2024 年 11 月 20 日经巴黎市议会表决通过
计划接入
来源提供方贡献
MobiliscopeCNRS按小时统计实际在场人口——区分中午人口增至三倍的办公区与住宅区
交通验证数据Île-de-France Mobilités自 2015 年以来按小时统计各车站的进站人数——用实测数据取代人流代理指标
DVFDGFiP每平方米房屋产权的成交价格
INSEE IRIS / FiLoSoFiINSEE人口、收入、社会职业类别
GTFS IDFMÎle-de-France Mobilités实际出行时间和班次频率
BruitparifBruitparif模型估算和实测噪音,取代道路代理指标
SitadelSDES规划许可——提前两年了解未来居民和未来竞争者
范围

首先覆盖巴黎市区,随后扩展至 Î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 typechecktsc --noEmit
npm run testVitest
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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。