Communitygithub.com

mcllrealestate/agent-skills

MCLL Real EstateのAIエージェントスキル — タイ全土の高級住宅の売買・賃貸情報を検索・取得します。

agent-skills とは?

このスキルは、MCLL Real Estate(mcllrealestate.com)が公開しているタイの高級不動産リスティングを、AIエージェントが検索・詳細取得できるようにするためのツールセットです。バンコク、プーケット、島々を含むエリアの販売物件と賃貸物件をカバーしており、認証キーやログインは不要で公開データのみを扱います。対応するアクセス方法は3つあります:最もリッチなMCPサーバー(`search_listings`、`get_listing`、`execute`ツールを提供)、REST API(OpenAPI準拠)、そしてMarkdownコンテンツネゴシエーション(任意のページをMarkdownとして取得可能)。特に`execute`ツールを使えば、複数リスティングの比較、ランキング、派生メトリクスの計算を1回の呼び出しで実行でき、効率的な分析が可能です。価格はTHB表示で、非公開の場合は「Price upon enquiry」と応答します。

対応~Claude Code~Codex CLI~Cursor
npx skills add mcllrealestate/agent-skills

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

MCLL Real Estate

MCLL(mcllrealestate.com)は、タイの高級不動産会社です。このスキルにより、エージェントは公開されているリスティング(販売・賃貸、バンコク、プーケット、島々)を検索・閲覧できます。ここにあるデータはすべて読み取り専用の公開データであり、キーやログインは不要です。

お使いのランタイムがサポートするアクセス方法を選択してください。MCPとRESTはリスティングを返します。Markdownはエリア、ニュース、開発ページもレンダリングします。

1. MCPサーバー(最もリッチ — 推奨)

Streamable-HTTP MCPエンドポイント:https://mcllrealestate.com/api/mcp サーバーカード:https://mcllrealestate.com/.well-known/mcp/server-card.json

3つのツール:

  • search_listings — リスティングを検索。引数:type("sale" | "rent"、必須)、locale(en/fr/th/zh、デフォルト en)、オプションで city、area、propertyType(人間が読める名前 — "Phuket"、"Condo")、bedrooms、minPrice、maxPrice(THB)、page。戻り値:{ total, page, results: [{ id, title, url, transactionType, city, area, bedrooms, bathrooms, areaSqm, priceThb, image }] } — 各結果の url の末尾には slug があり、get_listing に渡します。
  • get_listing — 1件のリスティングの詳細。引数:type("sale"|"rent")、slug(検索結果から)、locale。価格、サイズ、特徴、座標、Markdownの description を返します。
  • execute — コードモード。引数:code(JavaScript文字列)。Cloudflareサンドボックス内で実行され、グローバル mcll.search(args) と mcll.get(args) を使用できます。ネットワーク、ファイルシステム、シークレット、書き込みは不可。JSONシリアライズ可能な結果を返すには return を使用;トップレベルの await も動作します。複数のリスティングを1回の呼び出しで比較、ランキング、計算するのに最適です。

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. REST API(MCPクライアント不要)

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

  • 検索 — GET /api/listings?type=sale|rent&locale=en とオプションフィルター。これらのフィルターはID(UUID) を取ることに注意(名前ではありません):city、area、propertyType、bedrooms、bathrooms、priceMin、priceMax、sizeMin、sizeMax、furnished、features、sort、page。戻り値:{ total, page, results }、各結果はMCP検索と同じ安全な公開プロジェクションを持ちます:絶対 url、公開画像URL、価格フィールド、市区町村名、管理者専用フィールドは含まれません。(名前ベースのフィルタリング — 「プーケットのコンド」— には、名前をIDに解決してくれるMCPの search_listings ツールを使用してください。)
  • 詳細 — GET /api/listings/{type}/{slug}?locale=en → JSONで1件のリスティング、Markdownの description を含みます。type は sale または rent;slug はリスティングURLの最後のパスセグメントです。
# 既知のリスティングの詳細(スラグは公開URLから):
curl -s "https://mcllrealestate.com/api/listings/sale/kamala-cliff-villa?locale=en"

# 検索(販売リスティング、1ページ目):
curl -s "https://mcllrealestate.com/api/listings?type=sale&locale=en"

3. Markdownコンテンツネゴシエーション(任意のページ → クリーンテキスト)

任意のリスティング、エリア、ニュース、開発URLに Accept: text/markdown を送信すると、MCLLはHTMLではなくMarkdown版を返します — ページを解析するよりもはるかに少ないトークン数です。ホームページはサイト概要を返します。エリア、ニュース、開発はこの方法でのみアクセス可能です — MCPツールやRESTエンドポイントではカバーされていません;それらのURLはサイトマップで見つけてください。

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

インデックスページと静的ページにはMarkdown版がなく、HTMLを返します — それらには検索APIを使用してください。

典型的なワークフロー

  1. ユーザーが複数のリスティングの比較、ランキング、派生メトリクスを要求した場合は、execute を使用します。
  2. それ以外の場合は、ユーザーが求めるものを検索します(search_listings、または GET /api/listings)。
  3. 結果リストを読み、title、area、priceThb で関連するリスティングを選択します。
  4. 選択したリスティングの詳細を取得します(get_listing、詳細RESTルート、またはリスティング url のMarkdown)。
  5. リスティングの事実をユーザーに回答し、公開 url にリンクします。

発見と規則

  • サイトマップ(すべてのURL、ロケール別):https://mcllrealestate.com/sitemap.xml。
  • APIカタログ(マシン用インデックス):https://mcllrealestate.com/.well-known/api-catalog。
  • エージェント向けサイトガイド:https://mcllrealestate.com/llms-full.txt。
  • ロケール:en · fr · th · zh。未公開のロケールは英語にフォールバックします。
  • 価格はTHB単位;priceOnRequest: true(または priceThb: null)は価格が非公開であることを意味します — 「Price upon enquiry」と伝え、数値を決して表示しないでください。
  • 公開されたリスティングのみが返されます;認証はなく、書き込み可能なものはありません。

関連スキル