Mcll real estate
AI agent skills for MCLL Real Estate — luxury residences across Thailand, for sale and rent
npx -y skills add mcllrealestate/agent-skills --skill mcll-real-estateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Search and retrieve published MCLL real-estate listings from mcllrealestate.com. Use for Thai property searches, residences for sale or rent, prices, areas, branded residences, new developments, or comparisons across MCLL listings. Prefer the MCLL MCP server; its execute tool is Code Mode JavaScript for calculations and comparisons over published listings. REST and Markdown fallbacks work without MCP. Read-only, no auth, no API key. Skip real estate outside Thailand and non-MCLL portals.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.3 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
MCLL Real Estate
MCLL (mcllrealestate.com) is a Thai real-estate firm. This skill lets an agent search and read published sale and rent listings across Bangkok, Phuket, and the islands. Everything here is read-only public data; no key or login is needed.
Pick the access method your runtime supports. MCP and REST return listings; Markdown also renders the area, news, and development pages.
1. MCP server (prefer this)
Streamable-HTTP MCP endpoint: https://mcllrealestate.com/api/mcp
Server card: https://mcllrealestate.com/.well-known/mcp/server-card.json
Three tools:
search_listings: find listings. Args:type("sale"|"rent", required),locale(en/fr/th/zh, defaulten), and optionalcity,area,propertyType(human names such as"Phuket"or"Condo"),bedrooms,minPrice,maxPrice(THB),page. Returns{ total, page, results: [{ id, title, url, transactionType, city, area, bedrooms, bathrooms, areaSqm, priceThb, image }] }. Each result'surlends in aslugyou pass toget_listing.get_listing: full detail of one listing. Args:type("sale"|"rent"),slug(from a search result),locale. Returns price, size, features, coordinates, and a Markdowndescription.execute: MCLL Code Mode. Args:code(JavaScript string). Runs server-side in a Cloudflare Worker sandbox with globalmcll.search(args)andmcll.get(args). No open network, filesystem, environment variables, secrets, or writes. Usereturnfor the JSON-serializable result; top-levelawaitworks. Best for comparing, ranking, or computing across many listings in one call.
Example execute code:
const { results } = await mcll.search({ type: "sale", city: "Bangkok", page: 1 });
const details = await Promise.all(
results.slice(0, 2).map((r) =>
mcll.get({ type: "sale", slug: r.url.split("/").pop(), locale: "en" }),
),
);
return details.map((d) => ({
title: d.title,
url: d.url,
pricePerSqm: d.priceThb && d.areaSqm ? Math.round(d.priceThb / d.areaSqm) : null,
}));
2. REST API (no MCP client needed)
OpenAPI: https://mcllrealestate.com/api/openapi.json
- Search:
GET /api/listings?type=sale|rent&locale=enplus optional filters. Note these filters take ids (UUIDs), not names:city,area,propertyType,bedrooms,bathrooms,priceMin,priceMax,sizeMin,sizeMax,furnished,features,sort,page. Returns{ total, page, results }, where each result has the same safe public projection as MCP search: absoluteurl, public image URL, price fields, city/area names, and no admin-only fields. For name-based filtering such as "condos in Phuket", use the MCPsearch_listingstool, which resolves names to ids for you.) - Detail:
GET /api/listings/{type}/{slug}?locale=enreturns one listing as JSON, with a Markdowndescription.typeissaleorrent;slugcomes from a listing URL's last path segment.
# Detail of a known listing (slug from its public URL):
curl -s "https://mcllrealestate.com/api/listings/sale/kamala-cliff-villa?locale=en"
# Search (sale listings, page 1):
curl -s "https://mcllrealestate.com/api/listings?type=sale&locale=en"
3. Markdown content negotiation
Send Accept: text/markdown to any listing, area, news, or development URL and MCLL
returns a Markdown rendition instead of HTML, with fewer tokens than parsing the page.
The home page returns a site overview. Areas, news, and developments are reachable
only this way; no MCP tool or REST endpoint covers them. Find their URLs in the
sitemap.
curl -s -H "Accept: text/markdown" \
"https://mcllrealestate.com/en/buy/villa/phuket/kamala/kamala-cliff-villa"
Index and static pages have no Markdown rendition and return HTML; use the search API for those.
Typical workflow
- Use
executewhen the user asks for comparison, ranking, or derived metrics across multiple listings. - Otherwise search for what the user wants (
search_listings, orGET /api/listings). - Read the result list and pick the relevant listing(s) by
title,area,priceThb. - Fetch details for the chosen listing(s) (
get_listing, the detail REST route, or Markdown on the listingurl). - Answer the user with the listing's facts and link them to the public
url.
Discovery and conventions
- Sitemaps (every URL, per locale):
https://mcllrealestate.com/sitemap.xml. - API catalog (machine index):
https://mcllrealestate.com/.well-known/api-catalog. - Site guide for agents:
https://mcllrealestate.com/llms-full.txt. - Locales:
en·fr·th·zh. Unpublished locales fall back to English. - Prices are in THB;
priceOnRequest: true(orpriceThb: null) means the price is not public. Say "Price upon enquiry", never a number. - Only published listings are returned; there is no auth and nothing is writable here.
What ships with it: 1 file
1.6 KB alongside SKILL.md
evals/
- evals.json1.6 KB
Gives 0 of the 12 instructions most mcp tooling skills give in ~1.4k tokens
Counted across 638 of the 750 authors here whose files we hold, read 2026-08-07
- Create ten complex or independent read-only evaluation questionsin 69 of 638, across 15 files
- Test servers using MCP Inspectorin 61 of 638, across 19 files
- Provide actionable error messages with specific next stepsin 54 of 638, across 12 files
- Prioritize comprehensive API coverage over specific workflows or workflow toolsin 54 of 638, across 12 files
- Use TypeScript and Streamable HTTP for remote servers or clientsin 54 of 638, across 8 files
- Define structured output schemas where possiblein 50 of 638, across 8 files
- Use Zod or Pydantic for input schemasin 47 of 638, across 5 files
- Fetch MCP specification pages with markdown suffixin 46 of 638, across 4 files
- Load framework documentation using WebFetchin 45 of 638, across 3 files
- Verify each evaluation answer independentlyin 45 of 638, across 3 files
- Implement API client with authentication and paginationin 45 of 638, across 3 files
- Define input schemas with validationin 27 of 638, across 9 files
Said here and by no other author read
- prefer the MCLL MCP server
- use execute for listing comparisons
- search by names via MCP search_listings
- use search_listings to resolve names to ids
- use search_listings for name-based filtering
- send Accept text/markdown to listing URLs
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.