Zoopla MCP Server
Enables access to UK property listings, price estimates, agent information, and market data through the Zoopla API for searching properties for sale or rent with detailed filters and analytics.
README
Zoopla MCP Server
用于访问 Zoopla API 的 MCP 服务器。
🚀 使用 EMCP 平台快速体验
EMCP 是一个强大的 MCP 服务器管理平台,让您无需手动配置即可快速使用各种 MCP 服务器!
快速开始:
- 🌐 访问 EMCP 平台
- 📝 注册并登录账号
- 🎯 进入 MCP 广场,浏览所有可用的 MCP 服务器
- 🔍 搜索或找到本服务器(
bach-zoopla) - 🎉 点击 "安装 MCP" 按钮
- ✅ 完成!即可在您的应用中使用
EMCP 平台优势:
- ✨ 零配置:无需手动编辑配置文件
- 🎨 可视化管理:图形界面轻松管理所有 MCP 服务器
- 🔐 安全可靠:统一管理 API 密钥和认证信息
- 🚀 一键安装:MCP 广场提供丰富的服务器选择
- 📊 使用统计:实时查看服务调用情况
立即访问 EMCP 平台 开始您的 MCP 之旅!
简介
这是一个 MCP 服务器,用于访问 Zoopla API。
- PyPI 包名:
bach-zoopla - 版本: 1.0.0
- 传输协议: stdio
安装
从 PyPI 安装:
pip install bach-zoopla
从源码安装:
pip install -e .
运行
方式 1: 使用 uvx(推荐,无需安装)
# 运行(uvx 会自动安装并运行)
uvx --from bach-zoopla bach_zoopla
# 或指定版本
uvx --from bach-zoopla@latest bach_zoopla
方式 2: 直接运行(开发模式)
python server.py
方式 3: 安装后作为命令运行
# 安装
pip install bach-zoopla
# 运行(命令名使用下划线)
bach_zoopla
配置
API 认证
此 API 需要认证。请设置环境变量:
export API_KEY="your_api_key_here"
环境变量
| 变量名 | 说明 | 必需 |
|---|---|---|
API_KEY |
API 密钥 | 是 |
PORT |
不适用 | 否 |
HOST |
不适用 | 否 |
在 Cursor 中使用
编辑 Cursor MCP 配置文件 ~/.cursor/mcp.json:
{
"mcpServers": {
"bach-zoopla": {
"command": "uvx",
"args": ["--from", "bach-zoopla", "bach_zoopla"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}
在 Claude Desktop 中使用
编辑 Claude Desktop 配置文件 claude_desktop_config.json:
{
"mcpServers": {
"bach-zoopla": {
"command": "uvx",
"args": ["--from", "bach-zoopla", "bach_zoopla"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}
可用工具
此服务器提供以下工具:
propertiesv2list
List properties for sale or rent with options and filters
端点: GET /properties/v2/list
参数:
-
locationValue(string) 必需: The value of geoLabel field returned in .../v2/auto-complete endpoint with listings as search_type. Or the value of name field returned in .../house-prices/v2/get-area (If you are searching by postal code). You must use EXACTLY the value returned by the endpoint. *'listing_id' OR 'area' parameter must be provided to get this endpoint working. -
locationIdentifier(string) 必需: The value of geoIdentifier field returned in .../v2/auto-complete endpoint with listings as search_type. Or the value of id field returned in ..../house-prices/v2/get-area endpoint (If you are searching by postal code). You must use EXACTLY the value returned by the endpoint. -
category(string): One of the following residential|commercial -
furnishedState(string): One of the following : Any|furnished|part_furnished|unfurnished -
includeRented(string): Example value: -
includeRetirementHomes(string): Example value: -
includeSharedAccommodation(string): Example value: -
includeSharedOwnership(string): Example value: -
includeSold(string): Example value: -
isAuction(string): Example value: -
petsAllowed(string): Example value: -
billsIncluded(string): Example value: -
keywords(string): Any word or term, ex : garden,wooden floors -
section(string): One of the following : for-sale|to-rent -
bedsMax(number): Max number of bed rooms (1 - 10) -
bedsMin(number): Min number of bed rooms (1 - 10) -
priceMax(number): Maximum sale or rent price -
priceMin(number): Minimum sale or rent price -
sortOrder(string): One of the following : newest_listings|highest_price|lowest_price|most_reduced -
page(number): The page index for paging purpose -
radius(number): The radius (miles) to look for properties (0.25 - 40) -
priceFrequency(string): One of the following per_month|per_year -
newHomes(string): One of the following : only|exclude -
added(string): Recently added. One of the following : 24_hours|3_days|7_days|14_days|30_days -
propertySubType(string): Filter properties by category. Ignore OR one of the followings (Separated by comma for multiple options) : park_home,bungalow,farms_land,terraced,flats,semi_detached,detached -
chainFree(string): Example value: -
reducedPriceOnly(string): Example value: -
feature(string): One of the followings : has_balcony_terrace|has_parking_garage|has_garden . Separated by comma for multiple options. Ex : has_balcony_terrace,has_parking_garage,... -
tenure(string): One of the followings : share_of_freehold|freehold|leasehold. Ex : freehold,leasehold,... -
smartTags(string): One of the followings : condition.needs_modernisation|architecture.period_property|type.cottage|style.modern|attributes.utility_room|attributes.basement|attributes.conservatory|attributes.home_office|attributes.bath|attributes.en_suite|attributes.patio|attributes.kitchen_island. Ex : condition.needs_modernisation,architecture.period_property,...
house_pricesv2estimate
Returned list of estimated house prices
端点: GET /house-prices/v2/estimate
参数:
-
geoIdentifier(string) 必需: The value of 'urlPath' field returned in .../house-prices/v2/auto-complete endpoint OR the value of 'id' field returned in .../house-prices/v2/get-area endpoint. -
after(number): The offset to ignore for paging purpose. -
first(number): The number of items per response
agentsdetail
Get detailed information of an agent by id
端点: GET /agents/detail
参数:
id(number) 必需: The value of id field returned in .../agents/list endpoint
agentslist
List agents with filters and options
端点: GET /agents/list
参数:
-
location(string) 必需: The value of geoIdentifier field returned in .../v2/auto-complete endpoint with listings as search_type. Or the value of id field returned in ..../house-prices/v2/get-area endpoint (If you are searching by postal code). You must use EXACTLY the value returned by the endpoint. -
search_type(string): One of the followings : estate-agents|letting-agents|commercial-agents -
company_name(string): Search by agent name. Either 'location' or 'company_name' is required. You can ignore 'location' parameter when passing value into 'company_name' parameter. -
agents_sort(string): One of the following : a_z|lowest_avg_price|highest_avg_price|shortest_avg_age|longest_avg_age -
pn(number): The page index for paging purpose -
radius(number): The radius (miles) to look for agents (0.25 - 40)
house_pricesget_area_stats_deprecated
Get area stats
端点: GET /house-prices/get-area-stats
参数:
property_id(number) 必需: The value of property_id field returned in .../house-prices/estimate endpoint.
house_pricesget_historic_listings_deprecated
Get historic listings
端点: GET /house-prices/get-historic-listings
参数:
property_id(number) 必需: The value of property_id field returned in .../house-prices/estimate endpoint.
house_pricesv2get_area
Use along with .../house-prices/v2/auto-complete endpoint to get related geo id. For example, geo id of postal code.
端点: GET /house-prices/v2/get-area
参数:
geoString(string) 必需: Postal code, city, district, ward, area, etc.... Use exact values returned in .../house-prices/v2/auto-complete endpoint for best result
house_pricesget_running_costs_deprecated
Get running costs
端点: GET /house-prices/get-running-costs
参数:
property_id(number) 必需: The value of property_id field returned in .../house-prices/estimate endpoint.
house_pricesget_market_activity_deprecated
Get market activity in an area
端点: GET /house-prices/get-market-activity
参数:
-
identifier(string): The value of suggestions/identifier json object returned in .../auto-complete endpoint with properties as search_type. You must use EXACTLY the value returned by the endpoint. -
area(string) 必需: The value of suggestions/value json object returned in .../auto-complete endpoint with properties as search_type. You must use EXACTLY the value returned by the endpoint.
house_pricesget_sales_history_deprecated
Get sales history
端点: GET /house-prices/get-sales-history
参数:
property_id(number) 必需: The value of property_id field returned in .../house-prices/estimate endpoint.
propertiesget_nearby_deprecated
Get nearest points of interest
端点: GET /properties/get-nearby
参数:
listing_id(number) 必需: The value of listing_id field returned in .../properties/list endpoint
propertiesv2detail
Get property detail
端点: GET /properties/v2/detail
参数:
listingId(number) 必需: The value of listingId field returned in .../properties/v2/list endpoint
propertiesget_broadband_deprecated
Get broadband information
端点: GET /properties/get-broadband
参数:
listing_id(number) 必需: The value of listing_id field returned in .../properties/list endpoint
propertiesget_running_costs_deprecated
Get running costs
端点: GET /properties/get-running-costs
参数:
-
listing_id(number) 必需: The value of listing_id field returned in .../properties/list endpoint -
category(string): One of the following residential|commercial -
section(string): One of the following for-sale|to-rent
propertieslist_deprecated
List properties for sale or rent with options and filters
端点: GET /properties/list
参数:
-
area(string) 必需: The value of suggestions/value json object returned in .../auto-complete endpoint with listings as search_type. You must use EXACTLY the value returned by the endpoint. *'listing_id' OR 'area' parameter must be provided to get this endpoint working. -
identifier(string): The value of suggestions/identifier json object returned in .../auto-complete endpoint with listings as search_type. You must use EXACTLY the value returned by the endpoint. -
listing_id(string): The value of listing_id field returned right in this endpoint. *'listing_id' OR 'area' parameter must be provided to get this endpoint working. -
category(string): One of the following residential|commercial -
created_since(string): The date time from which properties added. The format must be yyyy-MM-dd HH:mm:ss, Ex : 2020-09-16 15:00:00 -
furnished(string): One of the following furnished|part_furnished|unfurnished -
include_featured_properties(number): One of the following 1 | 0 -
include_rented(number): One of the following 1 | 0 -
include_retirement_homes(string): One of the following yes | no -
include_shared_accommodation(string): One of the following yes | no -
include_shared_ownership(string): One of the following yes | no -
include_sold(number): One of the following 1 | 0 -
keywords(string): Any word or term, ex : garden,wooden floors -
listing_status(string): One of the following sale | rent -
maximum_beds(number): Max number of bed rooms (1 - 10) -
minimum_beds(number): Min number of bed rooms (1 - 10) -
maximum_price(number): Maximum sale or rent price -
minimum_price(number): Minimum sale or rent price -
order_by(string): One of the following age|price|price_change|view_count -
ordering(string): One of the following ascending|descending -
page_number(number): The page index for paging purpose -
page_size(number): The number of items per response (max 40) -
property_type(string): One of the following and separated by comma for multiple values : flats|farms_land|terraced|semi_detached|detached|bungalow|park_home|offices|retail|industrial|hospitality|land -
radius(number): The radius (miles) to look for properties (1 - 40) -
pets_allowed(string): One of the following yes | no -
price_frequency(string): One of the following per_month|per_year -
step_back_used(number): One of the following 1 | 0 -
bills_included(string): One of the following yes | no -
floor_area_max(number): Maximum floor area, only use with commercial category. -
floor_area_min(number): Minimum floor area, only use with commercial category. -
floor_area_units(string): One of the following sq_feet|sq_metres -
new_homes(string): One of the following yes | no
propertiesget_area_stats_deprecated
Get area stats
端点: GET /properties/get-area-stats
参数:
listing_id(number) 必需: The value of listing_id field returned in .../properties/list endpoint
v2auto_complete
Get auto complete suggestion by term or phrase
端点: GET /v2/auto-complete
参数:
locationPrefix(string) 必需: Example value: greenwich
auto_complete_deprecated
Get auto complete suggestion by term or phrase
端点: GET /auto-complete
参数:
-
search_term(string) 必需: Example value: greenwich -
search_type(string): One of the following properties|listings. Use listings value to get suggestion for .../properties/list endpoint. Use properties value to get suggestion for .../house-prices/estimate endpoint.
house_pricesv2detail
Get property price detailed information
端点: GET /house-prices/v2/detail
参数:
uprn(number) 必需: The value of "uprn" field returned in .../house-prices/v2/estimate endpoint.
house_pricesv2auto_complete
Get suggestions by term or phrase about city, country, area,etc...
端点: GET /house-prices/v2/auto-complete
参数:
addressPartial(string) 必需: City, district, ward, area, etc....
house_pricesget_points_of_interest_deprecated
Get nearest points of interest
端点: GET /house-prices/get-points-of-interest
参数:
property_id(number) 必需: The value of property_id field returned in .../house-prices/estimate endpoint.
house_pricesestimate_deprecated
Returned list of estimated house prices
端点: GET /house-prices/estimate
参数:
-
identifier(string): The value of suggestions/identifier json object returned in .../auto-complete endpoint with properties as search_type. You must use EXACTLY the value returned by the endpoint. -
area(string) 必需: The value of suggestions/value json object returned in .../auto-complete endpoint with properties as search_type. You must use EXACTLY the value returned by the endpoint. -
order_by(string): One of the following price_paid|last_sold|address|estimated_value -
ordering(string): One of the following ascending|descending -
page_number(number): The page index for paging purpose -
page_size(number): The number of items per response (max 40) -
property_type(string): One of the following detached|flat|terraced|semi_detached
技术栈
- 传输协议: stdio
- HTTP 客户端: httpx
许可证
MIT License - 详见 LICENSE 文件。
开发
此服务器由 API-to-MCP 工具生成。
版本: 1.0.0
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。