Realtor.ca MCP 服务器
一个用于在realtor.ca上搜索加拿大房地产的MCP(模型上下文协议)服务器。
特点/特性
- 🏠 按城市和省份搜索房产
- 💰 按价格范围筛选(最低/最高)
- 🏷️ 支持销售和租赁房源
- 📍 基于位置的搜索自动地理编码
- 🔧 修理工具/螺丝刀 高级搜索 对所有参数拥有完全控制权
- 🏢 房产类型筛选(住宅、商业、农业等)
- 🛏️ 按卧室、浴室、面积筛选
- 🚗 设施过滤器(车库、泳池、壁炉、空调)
- 🔑 在描述中进行关键词搜索
- 📅 按照房源发布时间和开放参观时间筛选
- 🔄 使用stdio传输方式,便于集成
安装
- 安装依赖项:
pip install -r requirements.txt使用方法
在本地运行服务器
fastmcp run server.py或者用Python:
python server.py可用工具
search_properties
在realtor.ca上,可通过城市、省份和价格范围简单搜索房产。
参数:
city(必填):城市名称(例如,“多伦多”,“温哥华”,“蒙特利尔”)province(必填):省份代码(例如,“ON”,“BC”,“QC”)min_price(可选):最低价格(加元)max_price(可选):最高价格(加元)transaction_type(可选):可选“for_sale”(出售)或“for_rent”(出租)(默认:“for_sale”)max_results(可选):结果的最大数量(默认:50,最大:200)
示例用法:
# Search for homes in Toronto, ON between $500k and $800k
search_properties(
city="Toronto",
province="ON",
min_price=500000,
max_price=800000,
transaction_type="for_sale",
max_results=50
)advanced_search
高级搜索功能,全面掌控realtor.ca的所有搜索参数。
基本参数:
city(必填):城市名称(例如,“多伦多”、“温哥华”、“蒙特利尔”)province(必填):省份代码(例如,“ON”,“BC”,“QC”)min_price(可选):最低价格(加元)max_price(可选):加元最高价transaction_type(可选):可选“for_sale”(出售)或“for_rent”(出租)(默认:“for_sale”)max_results(可选):最大结果数量(默认:50,最大:200)
属性类型参数:
property_type_id(可选):房产类型ID - 用逗号分隔(例如,“1”表示住宅,“3”表示商业)building_type_id(可选):建筑类型ID - 用逗号分隔(例如,“1”表示房屋,“17”表示公寓)construction_style_id(可选):建筑风格ID - 逗号分隔ownership_type_id(可选):所有权类型(例如,“1”表示独有产权,“2”表示公寓产权)
尺寸与特性:
min_bedrooms/max_bedrooms(可选):卧室系列min_bathrooms/max_bathrooms(可选):卫浴系列min_square_feet/max_square_feet(可选):面积范围min_parking/max_parking(可选):停车位范围min_storeys/max_storeys(可选):楼层范围
设施(布尔过滤器):
air_conditioning(可选):空调滤网pool(可选):泳池过滤器fireplace(可选):壁炉过滤器garage(可选):车库过滤器
额外过滤器:
keywords(可选):在描述中搜索的关键词(例如,“临水”,“商业车库”)open_house(可选):筛选有开放参观的房产number_of_days(可选):筛选X天内的列表sort_order(可选):排序顺序(默认:“1-D”)
- "1-D": 价格降序 - "1-A": 价格升序 - “11-D”:最新
current_page(可选):用于分页的页码(默认:1)
示例用法:
# Search for commercial properties with garages under $500k
advanced_search(
city="Sault Ste Marie",
province="ON",
max_price=500000,
property_type_id="3", # Commercial
garage=True,
keywords="garage",
max_results=50
)
# Search for waterfront homes with pool
advanced_search(
city="Vancouver",
province="BC",
min_price=1000000,
max_price=2000000,
min_bedrooms=3,
pool=True,
keywords="waterfront",
sort_order="1-A" # Price ascending
)响应格式:
{
"success": true,
"total_found": 150,
"returned": 50,
"location": "Toronto, ON",
"price_range": {
"min": 500000,
"max": 800000
},
"properties": [
{
"mls_number": "E1234567",
"price": "$750,000",
"address": {
"street": "123 Main St",
"city": "Toronto",
"province": "ON",
"postal_code": "M5V 3A8"
},
"property_type": "Single Family",
"bedrooms": 3,
"bathrooms": 2,
"square_feet": "1800 sqft",
"description": "Beautiful home...",
"photo_url": "https://...",
"listing_url": "https://www.realtor.ca/..."
}
]
}参考代码
省份代码
常见的加拿大省份代码:
- 开安大略省
- BC不列颠哥伦比亚省
- QC(Quality Control)魁北克
- AB阿尔伯塔(加拿大省份)
- MB马尼托巴省
- SK萨斯喀彻温省
- NS新斯科舍省
- 注:新不伦瑞克
- NL(荷兰语缩写)纽芬兰与拉布拉多省
- PE爱德华王子岛
- NT西北地区
- YT育空(Yukon)
- NU努纳武特(地区)
属性类型ID
使用这些与……一起 property_type_id 参数在 advanced_search:
- 1住宅用的
- 二娱乐性的
- 三商业
- 4农业的
- 5停车
- 六空地
建筑类型ID
常见的建筑类型有 building_type_id 参数:
- 一房子
- 二复式(住宅)
- 三三复式(或三重复式,具体根据上下文可能有所不同,指的是一种结构或设计上的三重重复或叠加)
- 5住宅与商业混合(或:商住混合)
- 六移动房屋
- 12特殊用途
- 14其他
- 十六联排别墅/镇屋
- 十七公寓
- 十九四层公寓楼
- 二十花园之家
- 二十七移动式/可移动住宅
- 二十八商业公寓
- 二十九商业混音
所有权类型ID
与……一起使用 ownership_type_id 参数:
- 一永久产权(或“自由持有”)
- 2公寓/分层建筑(或:共管公寓/分层物业)
- 三分时度假/部分产权
- 四租赁权(或租约地)
排序订单
与……一起使用 sort_order 参数:
- 1-A价格递增
- 1-D价格从高到低排序(默认)
- 6-D按日期降序排列(最新在前)
- 11-D最新的
- 12-D开放日日期从晚到早排序
MCP客户端的配置
要使用此服务器与MCP兼容客户端(如Claude Desktop)配合,需在您的MCP设置中添加以下内容:
{
"mcpServers": {
"realtor-ca": {
"command": "python",
"args": ["/path/to/realtor-mcp/server.py"],
"env": {}
}
}
}或者使用fastmcp:
{
"mcpServers": {
"realtor-ca": {
"command": "fastmcp",
"args": ["run", "/path/to/realtor-mcp/server.py"],
"env": {}
}
}
}技术细节
这台MCP服务器:
- 使用realtor.ca公开API(与pyRealtor使用的相同)
- 使用 reese84 令牌实现适当的认证
- 使用OpenStreetMap的Nominatim API进行地理编码
- 处理分页和结果限制
- 将属性数据格式化为清晰、结构化的响应
局限性
- realtor.ca API可能会对请求过多的IP进行限速或阻止
- 地理搜索使用近似边界框(约50公里半径)
- 每次请求最多可返回200个结果(API限制)
- 根据房源数据,某些房产详情可能缺失
功劳/学分/信用
受……的启发 pyRealtor(可译为“房地产Python工具”或根据具体上下文意译为“房地产领域的Python应用”) 由rachitt96(创作/提供)。 构建于 FastMCP 由jlowin(创作/提供/等,具体根据上下文确定)。
许可证
MIT 许可证 - 请随意使用并根据需要进行修改。
