Joomil — Swiss Classifieds MCP について
Joomilは、スイスのフランス語圏にあるJoomil.chの公開分類広告を検索する読み取り専用MCPサーバーです。自然言語による絞り込み候補、広告詳細、カテゴリや州の検索に対応します。
主な機能
- 01自然言語から検索条件を提案
- 02キーワードや場所で広告を検索
- 03広告の詳細情報を取得
- 04カテゴリと州の一覧を確認
活用シーン
- 01予算内の車両を探す
- 02都市や部屋数で住居を検索
- 03電子機器などのカテゴリを閲覧
- 04地域別に公開求人を探す
MCP 対応
リモートMCPサーバーは、広告検索、詳細取得、条件提案、カテゴリと州の照会ツールを提供します。Joomil.chの公開REST APIを利用する読み取り専用サービスです。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://joomil-mcp.snowy-surf-deec.workers.dev/mcpclaude mcp add --transport http valmodev-joomil https://joomil-mcp.snowy-surf-deec.workers.dev/mcp{"mcpServers":{"valmodev-joomil":{"type":"http","url":"https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"}}}Cursor で開く{"servers":{"valmodev-joomil":{"type":"http","url":"https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"}}}VS Code で開く{"mcpServers":{"valmodev-joomil":{"type":"http","url":"https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"}}}{"mcpServers":{"valmodev-joomil":{"serverUrl":"https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
5| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | 自然言語による検索リクエスト。例:'appartement 3 pièces à Sion' または 'Tesla Model 3 moins de 25000 CHF'。 |
詳細
joomil-mcp
Joomil.ch 向け MCP サーバー — 2007 年から運営されている、スイスを代表するフランス語圏のクラシファイドマーケットプレイスです。
スイスのフランス語圏(ロマンディ)にある 34 のカテゴリーから、45,000 件以上の掲載情報を閲覧・検索できます。不動産、自動車、求人、動物、電子機器、ファッションなどを網羅しています。
ツール
| ツール | 説明 |
|---|---|
suggest_filters | 自然言語のクエリから search_classifieds のフィルターを推測します |
search_classifieds | キーワード、カテゴリー、州(厳密な列挙型)、場所、価格帯、並べ替え、ページネーションで掲載情報を検索します |
get_classified | ID を指定して掲載情報の詳細(説明、画像、出品者、有効期限)を取得します |
get_categories | parent_id による階層を含め、現在有効なカテゴリーを一覧表示します |
get_cantons | canton フィルターで使用できる州の値(API 固有の綴り)を一覧表示します |
クイックスタート
これはリモート MCP サーバーのため、ローカルへのインストールは不要です。
エンドポイント: https://joomil-mcp.snowy-surf-deec.workers.dev/mcp
Claude Desktop
~/.claude/claude_desktop_config.json に追加します。
{
"mcpServers": {
"joomil": {
"command": "npx",
"args": ["mcp-remote", "https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"]
}
}
}
Cursor
MCP 設定に追加します。
{
"joomil": {
"url": "https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"
}
}
プロンプトの例
- 「ヴォー州で 10'000 CHF 以下のオートマ車を探してください。」
- 「シオンで 3 部屋のアパートを探してください。」
- 「Joomil にはどのような電子機器カテゴリーがありますか?」
- 「ヴァレー州でヴィンテージのソファの掲載情報を見せてください。」
- 「ヌーシャテルでホテル業界の求人を探してください。」
エージェント向けのヒント:州で絞り込む前に
get_cantonsを呼び出してください。API では一見わかりにくい綴りが使用されます(例:BerneではなくBern、Genève/GenevaではなくGeneve)。 ユーザーの自由形式のリクエストでは、まずsuggest_filtersを呼び出し、返されたfiltersオブジェクトをsearch_classifiedsに渡してください。
API リファレンス
suggest_filters
| パラメーター | 型 | 説明 |
|---|---|---|
query | string | 自然言語の検索リクエスト。例:appartement 3 pièces à Sion |
search_classifieds ですぐに使用できる filters オブジェクトに加え、カテゴリーの信頼度スコアと、マッチングが不確かな場合の警告を返します。カテゴリーのメタデータは MCP レイヤーで短時間キャッシュされるため、提案のたびにカテゴリー階層を再取得する必要はありません。
使用例:
| ユーザーのリクエスト | 通常提案されるフィルター |
|---|---|
Tesla Model 3 moins de 25'000 CHF | q: "Tesla Model 3"、cat_id: 101、price_max: 25000、sort: "price_asc" |
vélo budget 1.5k CHF | q: null、スポーツ/レジャーのカテゴリー、price_max: 1500、sort: "price_asc" |
appartement 3 pièces à Sion | q: "3 pièces"、cat_id: 10255、location: "Sion" |
voiture entre 10'000 et 20'000 CHF | cat_id: 101、price_min: 10000、price_max: 20000 |
Golf GTI dans le canton de Vaud | q: "Golf GTI"、cat_id: 101、canton: "Vaud" |
canapé vintage à Lausanne | q: "vintage"、cat_id: 10022、location: "Lausanne" |
iPhone 14 à Genève | q: "iPhone 14"、cat_id: 10127、location: "Genève" |
{
"query": "appartement 3 pièces à Sion",
"filters": {
"q": "3 pièces",
"cat_id": 10255,
"canton": null,
"location": "Sion",
"price_min": null,
"price_max": null,
"sort": "recent",
"limit": 20
},
"category": {
"id": 10255,
"name": "Appartements",
"url": "https://www.joomil.ch/annonces/immobilier/locations/appartements/10255",
"parent_id": 339,
"confidence": 0.82,
"reason": "requête immobilière appartement"
},
"confidence": 0.74,
"warnings": [],
"next_step": "Call search_classifieds with the filters object. Adjust q or cat_id if the result set is too broad."
}
search_classifieds
| パラメーター | 型 | 説明 |
|---|---|---|
q | string | 全文検索(タイトル+説明) |
cat_id | number | カテゴリー ID — サブカテゴリーを含みます |
canton | enum | 厳密な列挙型 — get_cantons を参照してください。Geneve、Vaud、Valais、Fribourg、Neuchatel、Jura、Bern、Argovie、Zurich、Lucerne、Bale-Ville、Etranger |
location | string | 市区町村名または郵便番号(一部一致) |
price_min | number | 最低価格(CHF) |
price_max | number | 最高価格(CHF) |
sort | enum | recent(デフォルト、新しい順)、price_asc、price_desc、views(閲覧数順) |
limit | number | 1 ページあたりの結果数(1~50、デフォルト 20) |
offset | number | ページネーションのオフセット — 前回のレスポンスの next_offset を使用してください |
ツールのレスポンスには、短い人間向けの概要と、それに続く MCP との後方互換性のための content 内のコンパクトなシリアライズ済み JSON が含まれます。完全なデータは results、total、limit、offset、has_more、next_offset、および filtered_out(MCP 側のカテゴリー制限により、現在のページから除外された項目)を含む structuredContent にも返されます。
結果の形式(各項目):
{
"id": 366872, "title": "Maison avec étangs",
"price": { "amount": 237977.5, "currency": "CHF" },
"location": { "city": "Saint Eugène", "postal_code": "71320", "canton": "Geneve", "country": "FR" },
"category": { "id": 10261, "name": "Maisons & Villas", "url": "https://..." },
"url": "https://www.joomil.ch/annonce/.../366872",
"created_at": "2026-06-26T22:17:11+02:00",
"has_picture": true,
"seller": { "name": "jpclair", "certified": false }
}
get_classified
| パラメーター | 型 | 説明 |
|---|---|---|
id | number | 出品 ID(検索結果または出品 URL から取得) |
完全な説明、画像、カテゴリーの階層、掲載終了日、ブーストレベル、出品者の詳細など、出品の詳細情報を返します。
get_categories
| パラメーター | 型 | 説明 |
|---|---|---|
parent_id | number | 任意 — すべてのカテゴリーを取得する場合は省略し、ルートカテゴリーの場合は 0、子カテゴリーを取得する場合は任意のカテゴリー ID を指定します |
get_cantons
パラメーターはありません。search_classifieds の canton フィルターで受け付けられる州の値と、対応するフランス語のラベルを返します。
{
"cantons": [
{ "name": "Geneve", "label_fr": "Genève", "code": "GE", "region": "Romandie" },
{ "name": "Bern", "label_fr": "Berne", "code": "BE", "region": "Suisse alémanique" }
],
"total": 12
}
canton フィルターには、必ず name フィールドを渡してください(label_fr や code ではありません)。
データ
- ソース:Joomil.ch の公開 REST API
- 対象範囲:45,000 件以上の有効な出品、34 のトップレベルカテゴリー、190,000 人以上の登録ユーザー
- 所在地:スイス(フランス語圏 — ロマンディ)
- 言語:フランス語
- 更新頻度:リアルタイム
- 認証:不要
制限事項
この MCP サーバーは読み取り専用で、公開データのみを使用します。
- 書き込み操作はできません:出品の作成、編集、削除や、出品者への連絡はできません。
- 認証はありません:ユーザーアカウント、メッセージ、お気に入り、保存済み検索は利用できません。
- 出品者への連絡はできません:電話番号とメールアドレスは公開されません。Joomil.ch を直接開くには、出品の
urlを使用してください。 - 投稿はできません:広告の掲載は joomil.ch で行う必要があります。
- 制限対象カテゴリー:Erotique(28)、Rencontres & Amitié(14000)、Voyance & Astrologie(651)とその子孫カテゴリーは、コンテンツポリシーに従って MCP レイヤーで除外されます。基盤となる PHP API は引き続き直接利用できます。
- 州フィルターは厳密です:
get_cantonsが返す値のみ受け付けられます。それ以外の表記(Berne、Genève、Geneva、GE、VDなど)は上流 API に無視され、フィルターされずにすべての出品が返されます。この厳密な列挙型により、それを防止します。 - 通貨:価格はすべて CHF です。出品の
price.amountはnull(価格は要問い合わせ)または0(無料)の場合があります。 - 上流のエラー:Joomil API の障害は、
isError: trueを含む MCP ツールエラーとして返されます。
独自にデプロイする
git clone https://github.com/Valmo-Sarl/joomil-mcp
cd joomil-mcp
npm install
npx wrangler login
npm run deploy
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。