Happy Endpoint MCP Server
OfficialHappy Endpoint MCP Server lets MCP clients query live UAE real estate data plus retail and travel APIs through task-shaped tools.
Search sale/rental property listings by area, price, bedrooms, and type (asking prices; annual rents).
Get full details for a property, including amenities, agency, and location hierarchy.
Retrieve recorded sale/rental transactions with price per sqm and sale type for valuation and market trends.
Compare computed gross rental yields across up to eight areas.
Search off-plan/under-construction developments, including pre-handover payment limits.
Find real estate agents by area with agency and performance badges.
Find/resolve UAE areas, communities, and buildings by name.
Search Sephora beauty products and IKEA home goods, including IKEA cross-country price comparison.
Search hotels by destination and dates with prices and availability.
List reachable Happy Endpoint APIs and subscription links.
Provides product search and data retrieval for IKEA furniture and home goods across eight countries.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Happy Endpoint MCP Server What's the rental yield on a 1-bed in JVC versus Dubai Marina?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Happy Endpoint MCP Server
An MCP server that gives Claude, Cursor, and other MCP clients direct access to real-time real estate, retail, and travel data. Ask questions in plain language and the assistant queries the APIs itself.
Beta. This is a 0.x release. Tools and their arguments may change before 1.0.
"What's the rental yield on a 1-bed in JVC versus Dubai Marina?"
"What did apartments in Business Bay actually sell for this year?"
"Find off-plan projects in Dubai Hills under 2 million with less than 50% before handover."Built and maintained by Happy Endpoint.
Install
Add to your MCP client config and restart it. No install step, npx fetches the
package on first run.
{
"mcpServers": {
"happyendpoint": {
"command": "npx",
"args": ["-y", "happyendpoint-mcp"],
"env": {
"RAPIDAPI_KEY": "your_rapidapi_key"
}
}
}
}Client | Config path |
Claude Desktop (macOS) |
|
Claude Desktop (Windows) |
|
Cursor |
|
Claude Code |
|
Windsurf |
|
Get a key at rapidapi.com/user/happyendpoint. One key works across every API, and each has a free tier, but you subscribe to each one separately.
Related MCP server: Frostbyte MCP
Tools
Tool | What it does |
| Property listings for sale or rent by area, price, bedrooms, type |
| Full record for one property, with amenities and agency |
| Recorded sale transactions with price per sqm and sale type |
| Gross yield across several areas at once, computed |
| Off-plan and under-construction developments |
| Agents by area, with agency and performance badges |
| Search areas, communities, and buildings by name |
| Retail product search across beauty and home categories |
| Hotel search by destination and dates |
| What this server can reach, and where to subscribe |
Why this rather than a generic API proxy
Some marketplaces expose a generic MCP endpoint that forwards raw REST calls. For simple cases that is fine. This server exists because four things go wrong when an assistant is handed raw endpoints.
1. Location IDs fail silently
Property search endpoints take a numeric location ID. Pass a wrong one and the API returns a different area rather than an error. The answer looks completely plausible and is about the wrong place.
This is not hypothetical. A published ID table for these endpoints had seven of nine areas wrong, with two major communities transposed.
Here, tools take place names. IDs are resolved internally, and every response echoes which area was actually matched:
"resolvedLocation": { "name": "Jumeirah Village Circle (JVC)", "id": "5416" }2. The endpoints disagree with each other
Four different response shapes for closely related data:
Endpoint | Shape |
Property search |
|
Property details | flat object, |
Agent search | a bare array, snake_case field names |
Transactions | search-index shaped |
Given three shapes for "title", a model will read the wrong field and state the result confidently. Everything is normalised to one shape here.
3. Some questions are not a single endpoint
"Which area has the better rental yield" needs a sale search and a rent search
per area, medians over both, and a division. compare_rental_yields does it in
one call across up to eight areas. There is no endpoint for it.
4. Ten tools beats seventeen
Models choose badly among seventeen near-identical endpoint names. This exposes ten task-shaped tools with descriptions that say when to use them, including the distinction that trips up most analysis: listings are asking prices, transactions are what property actually sold for.
Example output
compare_rental_yields across four areas, 1-bed apartments:
Area | Gross yield | Median asking sale | Median annual rent |
Jumeirah Village Circle (JVC) | 7.87% | 890,000 | 69,999 |
Business Bay | 6.06% | 1,650,000 | 100,000 |
Dubai Marina | 6.00% | 1,500,000 | 90,000 |
Palm Jumeirah | 3.78% | 3,700,000 | 140,000 |
get_transactions returns a computed summary alongside the rows:
{
"totalTransactions": 3421,
"summary": {
"medianPricePerSqm": 15871,
"minPricePerSqm": 7944,
"maxPricePerSqm": 27013,
"saleTypeBreakdown": { "Primary First Sale": 13, "Secondary Resale": 7 }
}
}Data domains
Domain | Coverage |
Real estate | UAE listings, transactions, agents, off-plan developments |
Retail, beauty | Cosmetics and skincare across the US, Canada, France |
Retail, home | Furniture and home goods across eight countries |
Travel | Hotels, flights, car rental |
Full catalogue at happyendpoint.com/library.
Things worth knowing
Rental prices are annual. These markets quote yearly rent, not monthly. The server labels it so the assistant does not divide by twelve without noticing.
Asking prices are not transaction prices. search_properties returns what
sellers want. get_transactions returns what buyers paid. For valuation, use
transactions.
get_property_details is slow, routinely over 30 seconds. The server allows
for it, but prefer search_properties when its fields suffice.
Gross yield is not net yield. Service charges, management, maintenance, and vacancy typically remove 2 to 3 percentage points. The tool says so in its output.
Local development
git clone https://github.com/happyendpointhq/happyendpoint-mcp
cd happyendpoint-mcp
npm install
npm run build
RAPIDAPI_KEY=your_key node test-client.mjstest-client.mjs connects over stdio, lists the tools, and calls several
against the live API.
Point your client at the local build:
{
"mcpServers": {
"happyendpoint-dev": {
"command": "node",
"args": ["/absolute/path/to/happyendpoint-mcp/dist/index.js"],
"env": { "RAPIDAPI_KEY": "your_key" }
}
}
}FAQ
Do I need a paid plan?
No. Every API has a free tier, enough to try all the tools. Heavier use needs a paid plan on the specific APIs you use.
Why did a tool return a 403?
You are not subscribed to that particular API, or its quota is exhausted. The
error names the API and links its subscription page. list_available_apis shows
all of them.
Does it cover countries outside the UAE?
Property tools are UAE-focused today. The wider catalogue covers the UK, Spain, Turkey, Singapore, Japan, and the US, and those will be added as tools. See happyendpoint.com/library.
Is my API key sent anywhere except the data provider?
No. It stays in your MCP client config, is read from the environment, and is sent only as an authentication header to the upstream API gateway.
Can I use this without an MCP client?
Yes, through the language SDKs: happyendpoint on PyPI and happyendpoint-js.
Status
Beta, 0.x. Tool names and arguments may change before 1.0. Pin a version if you need stability.
Disclaimer
Happy Endpoint is an independent provider. This package is not affiliated with, endorsed by, sponsored by, or connected to any of the websites, platforms, retailers, or marketplaces whose data may be accessible through the underlying APIs.
All product names, brands, trademarks, and registered trademarks are the property of their respective owners. Any reference to them is descriptive only, to identify the subject matter of the data, and does not imply any association or endorsement.
Users are responsible for ensuring their use of any data complies with applicable laws and the terms of service of the relevant source.
Related
happyendpoint - Python client for the same APIs
happyendpoint-js - TypeScript client
awesome-real-estate-apis - curated list of property data sources
awesome-alternative-data - curated list of alternative data sources
About Happy Endpoint
Happy Endpoint builds and maintains real-time data APIs across real estate, ecommerce, retail, and travel.
Catalogue: happyendpoint.com/library
Datasets: happyendpoint.com/datasets
Contact: hello@happyendpoint.com
Licence
MIT. See LICENSE.
Available Tools
10 toolscompare_rental_yieldsCompare rental yields across areasA
Calculate and compare gross rental yield for several UAE areas at once. Yield is annual rent divided by purchase price, the headline metric for buy-to-let investors. This is computed from live listings, not available as a single API call. Uses median asking prices, so treat it as a screening tool rather than a valuation.
Inputs: locations (required), bedrooms, propertyType.
find_agentsFind real estate agentsA
Find real estate agents active in a UAE area, with their agency and performance badges such as TruBroker. Useful for agent directories and for finding who is most active in a given community.
Inputs: location (required), purpose.
find_locationsFind property locationsA
Search UAE property locations by name. Returns matching areas, communities, and individual buildings with how many listings each has. Use this when a place name is ambiguous, or to discover what areas exist. Other property tools accept place names directly and resolve them for you, so you usually do not need to call this first.
Inputs: query (required), limit.
get_property_detailsGet full property detailsA
Full record for one property: specification, amenities, agency, and location hierarchy. Needs an id from search_properties. This endpoint is slow, often over 30 seconds, so prefer search_properties when its fields are enough.
Inputs: propertyId (required).
get_transactionsGet historical property transactionsA
Actual recorded sale and rental transactions for a UAE area, with price per sqm and whether each was a first sale from the developer or a resale. This is what property really sold for, unlike search_properties which returns asking prices. Use this for valuation, market trends, and price-per-sqm questions.
Inputs: location (required), page, purpose, timePeriod.
list_available_apisList available Happy Endpoint APIsA
List the data sources this server can reach, and where to subscribe to each. Useful when a call fails because of a missing subscription, or to see what data is available.
Inputs: no named parameters.
search_hotelsSearch hotelsA
Search hotels by destination and dates, with prices and availability. Give dates as YYYY-MM-DD; they are converted to the format the API expects. The destination is resolved to an internal id automatically.
Inputs: checkIn (required), checkOut (required), destination (required), rooms, +2 more.
search_off_planSearch off-plan developmentsA
Search off-plan and under-construction property projects in the UAE. Off-plan means not yet built, usually bought on a payment plan. Useful for questions about new developments, launches, and pre-handover payment terms.
Inputs: location (required), page, priceMax, maxPreHandoverPayment.
search_productsSearch retail productsA
Search live product data from a retailer. "sephora" covers beauty products across the US, Canada, and France. "ikea" covers furniture and home goods across eight countries, and supports cross-country price comparison via countryCode.
Inputs: query (required), retailer (required), countryCode.
search_propertiesSearch property listingsA
Search UAE property listings for sale or rent by area, price, bedrooms, and type. Takes a place name, not an ID. Prices are AED; for rentals the price is the ANNUAL rent. Returns asking prices from current listings, which run higher than actual sale prices, so use get_transactions for what property really sold for.
Inputs: location (required), page, purpose, bedrooms, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: location discovery, property listing search, off-plan search, transaction data, yield comparison, agent lookup, product search, hotel search, and API list. No two tools overlap in function; even similar property tools (search vs. off-plan vs. transactions) are separated by listing type and data source.
All tool names follow a consistent snake_case verb_noun pattern (find_locations, search_properties, get_transactions, compare_rental_yields, list_available_apis). The verbs vary semantically (find, search, get, compare, list) but are used appropriately, and there is no mixing of camelCase or irregular styles.
With 10 tools, the server sits comfortably in the ideal 3-15 range. Each tool serves a distinct endpoint or computation, and the property-focused subset (7 tools) is thorough without being bloated. The additional product, hotel, and meta tools expand the server's reach without making the count unwieldy.
The UAE property domain is well-covered: location search, property listing search, detailed property records, off-plan projects, actual transactions, rental yield comparison, and agent lookup. Missing are update/delete operations, but this is a read-only data server. The product and hotel sections are minimal (only search), but they serve simple use cases. Overall, minor gaps exist in non-property areas, but core workflows are covered.
Maintenance
Related MCP Connectors
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted MCP server for live public-data APIs and Skills for AI agents.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Related MCP Servers
- AlicenseBqualityBmaintenanceAn MCP server that provides AI agents with access to Dubai and UAE public data (prayer times, exchange rates, school ratings, etc.) and curated business setup knowledge for entrepreneurs.12030 PyPI6MIT
- AlicenseNot gradedqualityCmaintenanceA unified MCP server providing AI agents with 40+ developer APIs including geolocation, crypto prices, DNS lookup, and web scraping. Enables natural language access to various tools through a single gateway.1MIT
- FlicenseNot gradedqualityBmaintenanceRemote MCP server for Saudi real estate data from Kite (kite.sa): live rent and sale listings from 20+ Saudi sources, price checks against comparable listings, neighborhood stats, rental yield and development projects. Connect at https://mcp.kite.sa/mcp with OAuth sign-in.1-

ReefAPI MCPofficial
AlicenseAqualityBmaintenanceOne MCP server providing access to 160+ live web data APIs (search, social media, e-commerce, real estate, jobs, travel, news, finance, and more) using dynamic discovery via 4 generic tools to avoid the agent's tool limit.54MIT