关于 Cenogram - Polish Real Estate Prices & Parcel Data
Cenogram 是面向波兰房地产分析的 MCP 服务,供评估师、投资者和研究者查询全国交易与地籍地块信息。它将契约成交价与规划、风险、交通等地块背景结合。
主要功能
- 01查询波兰房地产成交记录
- 02按位置、价格和日期筛选交易
- 03查看地块规划与风险背景
- 04生成地块综合报告与估值
- 05统计、分布及区域价格对比
适用场景
- 01查找指定地址或地籍编号的成交记录
- 02评估地块的洪水、规划及交通条件
- 03比较不同城区的房地产价格
MCP 相关
该 MCP 服务向 AI 客户端开放交易搜索、价格统计、地块查询、背景图层和估值等工具。可连接托管端点,也可通过 npx 在本地运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.cenogram.pl/mcpclaude mcp add --transport http pl-cenogram https://mcp.cenogram.pl/mcp{"mcpServers":{"pl-cenogram":{"type":"http","url":"https://mcp.cenogram.pl/mcp"}}}在 Cursor 中打开{"servers":{"pl-cenogram":{"type":"http","url":"https://mcp.cenogram.pl/mcp"}}}在 VS Code 中打开{"mcpServers":{"pl-cenogram":{"type":"http","url":"https://mcp.cenogram.pl/mcp"}}}{"mcpServers":{"pl-cenogram":{"serverUrl":"https://mcp.cenogram.pl/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Cenogram MCP Server
面向 AI 的波兰房地产交易与地块数据
用于访问波兰房地产数据的 MCP 服务。直接从 Claude、Cursor、ChatGPT、Grok 或任何兼容 MCP 的 AI 助手中,访问来自国家价格与价值登记处(Rejestr Cen Nieruchomosci,RCN)的 800 多万笔房地产交易——这些是来自公证契约的价格,而非房源挂牌价。除了交易价格,该服务还能解析地籍地块,并提供每块地的背景信息:分区规划、洪水与滑坡风险、遗产登记、建筑许可与施工活动、公共交通可达性、农业用地分类、周边土地用途、自然环境——附近森林及与保护区的重叠情况——地下情况(采矿区和大型地下水储层)、土地用途与土壤质量分类,以及道路通达性。
数据来源:波兰国家 RCN 登记处(Rejestr Cen Nieruchomosci) | 平台:cenogram.pl
获取 API 密钥
- 前往 cenogram.pl/api
- 输入你的电子邮件地址
- 你会通过电子邮件收到
cngrm_...API 密钥
在 cenogram.pl/ustawienia 管理密钥。
免费套餐
新账户可获得 1,000 个令牌和 Standard 套餐的 14 天试用期。此后,密钥仍可使用,每周提供 50 个令牌——余额每 7 天恢复至 50 个,而不是累积——且永不过期,也无需绑定银行卡。
统计、参考数据、地块身份信息和市镇背景信息的调用各需 1 个令牌;交易搜索需 3 个令牌(包括列表及其摘要;使用 summaryOnly 时需 1 个);价格直方图或区域内地块列表需 2 个;地块或交易的一项背景信息图层需 4 个;空间搜索、地块轮廓、估值和多区县比较需 5 个;get_parcel_report 一次返回所有图层,需 45 个令牌。位置目录免费。付费套餐会提高可用额度——详情请见 cenogram.pl/api。
安装
选择你的客户端。以下所有选项均使用托管服务——无需本地安装(npx/stdio 除外)。
Claude Code
一条命令,无需配置文件:
claude mcp add cenogram https://mcp.cenogram.pl/mcp \
-t http -H "Authorization: Bearer YOUR_API_KEY"
Codex CLI
API 密钥。 添加到 ~/.codex/config.toml:
[mcp_servers.cenogram]
url = "https://mcp.cenogram.pl/mcp"
bearer_token_env_var = "CENOGRAM_API_KEY"
然后在启动 Codex 的 shell 中导出密钥:
export CENOGRAM_API_KEY=cngrm_...
OAuth。 使用相同的代码块,但不包含 bearer_token_env_var,然后登录:
[mcp_servers.cenogram]
url = "https://mcp.cenogram.pl/mcp"
codex mcp login cenogram
如果没有 API 密钥或 OAuth 登录,服务将返回 401。不同 Codex 版本的配置键各不相同,因此请查看适用于你所用版本的 Codex 文档;本节不保证特定版本能够连接。
Cursor
在项目中的 .cursor/mcp.json 添加:
{
"mcpServers": {
"cenogram": {
"type": "http",
"url": "https://mcp.cenogram.pl/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Claude Desktop
添加到你的配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
npx(stdio):
{
"mcpServers": {
"cenogram": {
"command": "npx",
"args": ["-y", "@cenogram/mcp-server@latest"],
"env": {
"CENOGRAM_API_KEY": "YOUR_API_KEY"
}
}
}
}
VS Code / GitHub Copilot
在工作区中的 .vscode/mcp.json 添加:
{
"servers": {
"cenogram": {
"type": "http",
"url": "https://mcp.cenogram.pl/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
HTTP 远程连接:
{
"mcpServers": {
"cenogram": {
"type": "http",
"url": "https://mcp.cenogram.pl/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
如果 HTTP 无法正常工作,请改用下方的 npx(stdio) 选项。
Cline
在 VS Code 中:Settings > Cline > MCP Servers。添加:
{
"cenogram": {
"type": "http",
"url": "https://mcp.cenogram.pl/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
npx(stdio)——本地/离线
需要 Node.js >= 18。如果你想在本地运行服务,而不是连接到托管服务,请使用此选项。
{
"mcpServers": {
"cenogram": {
"command": "npx",
"args": ["-y", "@cenogram/mcp-server@latest"],
"env": {
"CENOGRAM_API_KEY": "YOUR_API_KEY"
}
}
}
}
| 客户端 | 配置文件 |
|---|---|
| Cursor | .cursor/mcp.json |
| Claude Code | 项目中的 .mcp.json |
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Cline | VS Code 设置 > Cline > MCP Servers |
配置
| 环境变量 | 必需 | 默认值 | 说明 |
|---|---|---|---|
CENOGRAM_API_KEY | 是(stdio) | - | 来自 cenogram.pl/api 的 API 密钥 |
CENOGRAM_API_URL | 否 | https://cenogram.pl | API 基础 URL |
MCP_TRANSPORT | 否 | stdio | 设为 http 可启用 Streamable HTTP 模式 |
MCP_PORT | 否 | 3002 | HTTP 服务端口(仅限 HTTP 模式) |
CENOGRAM_CLIENT_ID | 否 | 自动生成 | 持久客户端标识符 |
你也可以使用 --http CLI 标志来代替 MCP_TRANSPORT=http。
提示
- 模型选择:为获得最佳效果,请使用 Claude Opus。它会按顺序调用更多工具,并生成更丰富的分析。你可以在聊天窗口底部的下拉菜单中切换模型。
示例提示词
波兰语:
- “2025 年克拉科夫的公寓价格中位数是多少?”
- “显示莫科托夫区普瓦夫斯卡街 15 号的交易”
- “查找地块 126104_9.0015.201 上的交易”
- “查询地块 126104_9.0015.201 的地方规划和洪水风险”
- “查找弗罗茨瓦夫市中心 5km 范围内,价格超过 500 000 PLN 的土地交易”
- “比较莫科托夫区和沃拉区的公寓价格”
- “显示波兰房地产价格分布”
英语:
- “2025 年克拉科夫的公寓价格中位数是多少?”
- “显示莫科托夫区普瓦夫斯卡街 15 号的交易”
- “查找地块 126104_9.0015.201 上的所有交易,然后搜索附近区域”
- “查询地块 126104_9.0015.201 的分区规划和洪水风险”
- “查找弗罗茨瓦夫市中心 5km 范围内,价格超过 500,000 PLN 的土地交易”
- “比较莫科托夫区和沃拉区的公寓价格”
- “显示波兰房地产价格分布”
工具
| 工具 | 描述 | 关键参数 |
|---|---|---|
search_transactions | 根据筛选条件搜索交易 | location、street、buildingNumber、parcelId、propertyType、marketType、价格/日期/面积范围 |
get_price_statistics | 按地点统计每平方米价格(仅住宅);默认统计最近 24 个月,答案会注明统计时段 | location(可选)、period(24m|all)、dateFrom/dateTo |
get_price_distribution | 价格直方图 | bins、maxPrice |
search_by_area | 按地理半径搜索交易 | latitude、longitude、radiusKm |
get_market_overview | 数据库概览和统计信息 | (无) |
list_locations | 列出可用地点 | search(可选) |
search_parcels | 按地籍编号前缀搜索地块 | q(地块编号前缀,至少 3 个字符) |
list_parcels_in_area | 列出区域内的地籍地块——简要列表或完整轮廓 | teryt、location、bbox、lat + lng + radiusKm 或 polygon;includeGeometry、minArea/maxArea、street/buildingNumber、cursor |
search_by_polygon | 在 GeoJSON 多边形范围内搜索交易 | polygon、propertyType、dateFrom/dateTo |
compare_locations | 比较 2-5 个城区的统计数据 | districts(逗号分隔)、propertyType |
get_building_breakdown | 查看单笔交易对应建筑物的详细信息(占地轮廓、楼层数、估算建筑面积) | transaction_id(搜索结果中的 UUID) |
get_parcel_report | 单个地块的综合档案:核心信息、13 个增强数据层、交易历史、本地价格背景(县和市镇按房产类型统计的 zł/m² 中位数)、市镇背景信息,以及地块形状部分(外接矩形、最大内切圆、形状类别、远离边界的区域——仅依据轮廓几何形状) | parcelId(地籍编号或 UUID) |
resolve_parcel | 将地块解析为其地籍身份 | parcelId、q(完整地籍编号或“地点 + 地块编号”——不是街道地址),或 lat + lng |
get_demographics | 某地点的人口和人口统计背景信息 | location 或 teryt、year(或 yearFrom/yearTo)、category |
get_infrastructure_signals | 市政基础设施动态(招标、公用事业、资本支出) | location 或 teryt |
estimate_value | 公寓的可比销售估值 | area,以及 lat + lng 或 parcelId;rooms、market |
estimate_land_value | 未开发土地(建筑用地或农田)的可比销售估值,按每平方米和每公顷计 | lat + lng(必须提供面积)或 parcelId(面积取自地籍);landType、mpzpDesignation |
get_transaction_flood | 交易中房产的洪水风险 | transaction_id(搜索结果中的 UUID) |
get_transaction_heritage | 房产的遗产名录状态 | transaction_id |
get_transaction_landslide | 房产的滑坡风险 | transaction_id |
get_transaction_surroundings | 房产周边的滋扰因素和土地利用背景 | transaction_id |
get_transaction_transit | 房产的公共交通可达性 | transaction_id |
get_transaction_permits | 房产登记的建筑许可 | transaction_id |
get_permits_in_area | 查询某点周边自 2016 年以来登记的建筑许可和施工通知(仅已签发的决定),结果包括列表以及按年份 × 类别汇总的数据 | lat + lng;radiusKm(最大值为 2)、dateFrom、dateTo、intent、categories、excludeCategories、worksType、limit、cursor、aggregateOnly |
get_transaction_planning | 房产的当地分区和规划状态 | transaction_id |
get_transaction_farmland | 房产的农业用地分类 | transaction_id |
get_transaction_nature | 房产附近的森林和与其重叠的自然保护区 | transaction_id |
get_transaction_subsurface | 房产下方的矿区和大型地下水储层 | transaction_id |
get_transaction_roads | 房产道路通行的几何证据(距离、道路等级、通行指标) | transaction_id |
地点命名
- 大多数城市:直接使用城市名称(例如,“Gdansk”“Lublin”)
- Warsaw:“Warszawa”涵盖全部 18 个区;指定一个区(“Mokotow”“Srodmiescie”“Wola”)可缩小范围
- Krakow 和 Lodz 的规则相同:城市名称涵盖所有下级区域,也可以指定一个区域(“Krakow-Podgorze”)
- 街区名称不是行政区划单位——请改用半径或多边形搜索
- 使用
list_locations查找有效名称
房产类型
| 值 | 波兰语 | 英语 |
|---|---|---|
land | Grunt | Land plot |
building | Budynek | Building |
developed_land | Grunt zabudowany | Developed land |
unit | Lokal | Apartment/unit |
工作流
结果包含地块 ID 和 GPS 坐标,可用于开展多步研究:
1. Search by address -> search_transactions(location="Mokotow", street="Pulawska", buildingNumber="15")
2. Note parcel_id and coordinates from results
3. Search nearby -> search_by_area(lat=52.19, lng=21.01, radiusKm=2, propertyType="unit")
4. Compare prices -> get_price_statistics(location="Mokotow")
这模拟了房地产估价师为估价报告查找可比交易的方式。
从土地而不是产权契据入手,是另一种途径:
1. List the parcels -> list_parcels_in_area(location="Wawer", minArea=800)
2. Draw the ones you want -> list_parcels_in_area(bbox="21.10,52.20,21.14,52.23", includeGeometry=true)
3. Open one in full -> get_parcel_report(parcelId="146518_8.0108.27")
步骤 1 使用游标分页;步骤 2 有结果上限,通常会被截断,因此应缩小搜索框,而不要把截断的回答当作该区域的地块列表。
数据
- 800 万笔以上交易,覆盖波兰全境(380 个县)
- **日期范围:**2003 年至今
- **来源:**波兰国家 RCN 登记处(Rejestr Cen Nieruchomosci)
- **更新:**定期从 RCN 更新
- **每块地的背景信息:**分区规划、洪水和滑坡风险、遗产登记、建筑许可和施工活动、公共交通可达性、农业用地用途、周边环境、自然环境(附近森林和保护区)、地下情况(采矿地带和主要地下水储量)、土地用途和土壤质量分类,以及道路可达性——可通过地籍 ID 查询
故障排除
“Error: CENOGRAM_API_KEY is required” —— 这仅适用于 stdio 模式。请确保在 MCP 配置的 env 区块中设置了 CENOGRAM_API_KEY。对于 HTTP 远程模式,应将密钥放入 Authorization 标头。
npx 卡住或失败 —— 使用 node -v 检查 Node.js 版本。stdio 模式要求 Node.js >= 18。如果使用的是更早版本,请改用 HTTP 远程选项(无需 Node.js)。
地点返回 0 条结果 —— 该名称可能不是行政区划单位。区和街区是两种不同的区域:“Mokotow”是一个区,可以正常使用;“Sluzew”是区内的一个街区,无法使用。请使用 list_locations(search="...") 查找有效名称,或者对于小于一个区的区域,使用半径搜索(search_by_area)。
401 Unauthorized(HTTP 模式) —— 服务接受 API 密钥(Authorization: Bearer cngrm_...,需包含 Bearer 前缀和完整密钥,而不只是前缀),或接受已完成 OAuth 登录的客户端提供的 OAuth 访问令牌。如果缺少令牌,或令牌格式无法识别,就会返回 401;响应正文会链接至 cenogram.pl/api,可在此获取密钥。既没有密钥也没有 OAuth 登录的客户端(例如 Codex CLI)每次请求都会收到 401——请参阅上方的设置说明。
402 Payment Required —— 账户的令牌已用完。免费账户的响应会说明余额每周恢复至 50 的日期;在此之前,密钥和连接仍然有效。付费方案可解除限制——请参阅 cenogram.pl/api。
开发
git clone https://github.com/cenogram/mcp-server.git
cd mcp-server
npm install
npm test
npm run build
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。