agentsclimarketplace

Mcll real estate

Skill mcllrealestate/agent-skills/skills/mcll-real-estate

AI agent skills for MCLL Real Estate — luxury residences across Thailand, for sale and rent

Install
npx -y skills add mcllrealestate/agent-skills --skill mcll-real-estate

Assembled 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, default en), and optional city, 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's url ends in a slug you pass to get_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 Markdown description.
  • execute: MCLL Code Mode. Args: code (JavaScript string). Runs server-side in a Cloudflare Worker sandbox with global mcll.search(args) and mcll.get(args). No open network, filesystem, environment variables, secrets, or writes. Use return for the JSON-serializable result; top-level await works. 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=en plus 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: absolute url, public image URL, price fields, city/area names, and no admin-only fields. For name-based filtering such as "condos in Phuket", use the MCP search_listings tool, which resolves names to ids for you.)
  • Detail: GET /api/listings/{type}/{slug}?locale=en returns one listing as JSON, with a Markdown description. type is sale or rent; slug comes 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

  1. Use execute when the user asks for comparison, ranking, or derived metrics across multiple listings.
  2. Otherwise search for what the user wants (search_listings, or GET /api/listings).
  3. Read the result list and pick the relevant listing(s) by title, area, priceThb.
  4. Fetch details for the chosen listing(s) (get_listing, the detail REST route, or Markdown on the listing url).
  5. 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 (or priceThb: 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/

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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.