Communitygithub.com

mcllrealestate/agent-skills

Habilidades de agente IA para MCLL Real Estate — residencias de lujo en Tailandia, en venta y alquiler

¿Qué es agent-skills?

Este skill permite a un agente de IA buscar y leer los listados públicos de MCLL Real Estate, una firma premium de bienes raíces en Tailandia. Cubre propiedades en venta y alquiler en Bangkok, Phuket y las islas tailandesas. Proporciona tres métodos de acceso: un servidor MCP con tres herramientas (search_listings, get_listing y execute), una API REST con OpenAPI, y negociación de contenido Markdown para páginas de propiedades, áreas y noticias. No requiere autenticación ni claves API, y está optimizado para agentes como Claude Code, Cursor o Codex; el método MCP es el más rico, especialmente el modo execute para cálculos y comparaciones entre múltiples listados en una sola llamada.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add mcllrealestate/agent-skills

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

MCLL Real Estate

MCLL (mcllrealestate.com) es una firma inmobiliaria tailandesa premium. Este skill permite a un agente buscar y leer sus listados publicados — en venta y alquiler, en Bangkok, Phuket y las islas. Todo aquí son datos públicos de solo lectura; no se necesita clave ni inicio de sesión.

Elige el método de acceso que soporte tu runtime. MCP y REST devuelven listados; Markdown también renderiza las páginas de áreas, noticias y desarrollos.

1. Servidor MCP (el más completo — preferir este)

Endpoint MCP Streamable-HTTP: https://mcllrealestate.com/api/mcp Tarjeta del servidor: https://mcllrealestate.com/.well-known/mcp/server-card.json

Tres herramientas:

  • search_listings — buscar listados. Args: type ("sale" | "rent", obligatorio), locale (en/fr/th/zh, por defecto en), y opcionales city, area, propertyType (nombres humanos — "Phuket", "Condo"), bedrooms, minPrice, maxPrice (THB), page. Devuelve { total, page, results: [{ id, title, url, transactionType, city, area, bedrooms, bathrooms, areaSqm, priceThb, image }] } — la url de cada resultado termina en un slug que pasas a get_listing.
  • get_listing — detalle completo de un listado. Args: type ("sale"|"rent"), slug (de un resultado de búsqueda), locale. Devuelve precio, tamaño, características, coordenadas y una description en Markdown.
  • execute — Modo Código. Args: code (cadena JavaScript). Se ejecuta en un sandbox de Cloudflare con las funciones globales mcll.search(args) y mcll.get(args). Sin red abierta, sistema de archivos, secretos ni escritura. Usa return para el resultado serializable en JSON; await de nivel superior funciona. Ideal para comparar, clasificar o calcular entre muchos listados en una sola llamada.

Ejemplo de código execute:

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. API REST (sin cliente MCP necesario)

OpenAPI: https://mcllrealestate.com/api/openapi.json

  • Búsqueda — GET /api/listings?type=sale|rent&locale=en más filtros opcionales. Ten en cuenta que estos filtros reciben ids (UUIDs), no nombres: city, area, propertyType, bedrooms, bathrooms, priceMin, priceMax, sizeMin, sizeMax, furnished, features, sort, page. Devuelve { total, page, results }, donde cada resultado tiene la misma proyección pública segura que la búsqueda MCP: url absoluta, URL de imagen pública, campos de precio, nombres de ciudad/área y sin campos de solo administración. (Para filtrado por nombre — "condos en Phuket" — usa la herramienta search_listings de MCP, que resuelve nombres a ids por ti.)
  • Detalle — GET /api/listings/{type}/{slug}?locale=en → un listado como JSON, con una description en Markdown. type es sale o rent; slug proviene del último segmento de la URL del listado.
# Detalle de un listado conocido (slug de su URL pública):
curl -s "https://mcllrealestate.com/api/listings/sale/kamala-cliff-villa?locale=en"

# Búsqueda (listados de venta, página 1):
curl -s "https://mcllrealestate.com/api/listings?type=sale&locale=en"

3. Negociación de contenido Markdown (cualquier página → texto limpio)

Envía Accept: text/markdown a cualquier URL de listado, área, noticia o desarrollo y MCLL devuelve una versión en Markdown en lugar de HTML — muchos menos tokens que analizar la página. La página de inicio devuelve una visión general del sitio. Las áreas, noticias y desarrollos solo son accesibles de esta manera — ninguna herramienta MCP ni endpoint REST los cubre; encuentra sus URLs en el sitemap.

curl -s -H "Accept: text/markdown" \
  "https://mcllrealestate.com/en/buy/villa/phuket/kamala/kamala-cliff-villa"

Las páginas de índice y estáticas no tienen versión Markdown y devuelven HTML — usa la API de búsqueda para esas.

Flujo de trabajo típico

  1. Usa execute cuando el usuario pida comparación, clasificación o métricas derivadas entre múltiples listados.
  2. De lo contrario busca lo que el usuario quiere (search_listings, o GET /api/listings).
  3. Lee la lista de resultados; elige el(los) listado(s) relevante(s) por title, area, priceThb.
  4. Obtén los detalles del(los) listado(s) elegido(s) (get_listing, la ruta REST de detalle, o Markdown en la url del listado).
  5. Responde al usuario con los datos del listado y enlázalos a la url pública.

Descubrimiento y convenciones

  • Sitemaps (cada URL, por locale): https://mcllrealestate.com/sitemap.xml.
  • Catálogo API (índice de máquina): https://mcllrealestate.com/.well-known/api-catalog.
  • Guía del sitio para agentes: https://mcllrealestate.com/llms-full.txt.
  • Idiomas: en · fr · th · zh. Los idiomas no publicados usan inglés por defecto.
  • Los precios están en THB; priceOnRequest: true (o priceThb: null) significa que el precio no es público — di "Precio bajo consulta", nunca un número.
  • Solo se devuelven listados publicados; no hay autenticación ni nada escribible aquí.

Skills relacionados