Marktplaats & 2dehands について
marktplaats-mcpは、MCPクライアントをMarktplaats.nlと2dehands.beの掲載情報に接続します。詳細検索、出品者確認、価格分析に加え、ローカルのブラウザーセッションを使ったアカウント操作にも対応し、書き込みには明示的な確認を求めます。
主な機能
- 01条件を指定した掲載情報検索
- 02掲載詳細と出品者の信頼情報
- 03価格統計と新着掲載の監視
- 04アカウントのメッセージ・お気に入り・入札
- 05書き込み操作のプレビューと確認
- 06ホスト型の読み取り専用エンドポイント
活用シーン
- 01場所・価格・属性で掲載情報を探す
- 02出品者を確認して価格を比較
- 03オランダやベルギーの新着掲載を監視
- 04既存アカウントでメッセージや入札を管理
MCP 対応
構造化されたツール、プロンプト、カテゴリーリソースをMCPクライアントに提供します。ホスト型の読み取り専用エンドポイントに接続する方法と、アカウント用ツールを使うローカルサーバーがあります。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://marktplaats-mcp.jaspnerd.dev/mcpclaude mcp add --transport http jasp-nerd-marktplaats https://marktplaats-mcp.jaspnerd.dev/mcp{"mcpServers":{"jasp-nerd-marktplaats":{"type":"http","url":"https://marktplaats-mcp.jaspnerd.dev/mcp"}}}Cursor で開く{"servers":{"jasp-nerd-marktplaats":{"type":"http","url":"https://marktplaats-mcp.jaspnerd.dev/mcp"}}}VS Code で開く{"mcpServers":{"jasp-nerd-marktplaats":{"type":"http","url":"https://marktplaats-mcp.jaspnerd.dev/mcp"}}}{"mcpServers":{"jasp-nerd-marktplaats":{"serverUrl":"https://marktplaats-mcp.jaspnerd.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
marktplaats-mcp:Marktplaatsと2dehandsのMCPサーバー
marktplaats-mcpは、オランダのMarktplaats.nlとベルギーの2dehands.be(オランダとベルギーの中古品売買サイト)向けのMCPサーバーです。Claude、ChatGPT、Cursor、Codex、Geminiなど、あらゆるMCPクライアントから、出品を検索したり、カテゴリ属性で絞り込んだり、出品者を確認したり、価格を比較したり、新着広告をチェックしたりできます。自分のアカウントでログインすれば、メッセージの閲覧や送信、入札、お気に入りや出品の管理もできます。APIキーは不要です。
## 🚀 使い始めるインストール不要:URL を貼り付けるだけです。 ホスト型の読み取り専用サーバーは https://marktplaats-mcp.jaspnerd.dev/mcp で稼働しています。claude.ai(設定 → コネクター。Free プランとモバイルで利用できます)、ChatGPT、Mistral Le Chat、Perplexity、またはGemini アプリでカスタムコネクターとして追加してください。
Claude Code:コマンド 1 つ。
claude mcp add --scope user marktplaats -- uvx marktplaats-mcp
その他のクライアント。 uv をインストールして(brew install uv、Windows の場合は winget install --id=astral-sh.uv -e)、標準の MCP 設定を追加してください。
{ "mcpServers": { "marktplaats": { "command": "uvx", "args": ["marktplaats-mcp"] } } }
40 種類のクライアント(Cursor、VS Code、Codex、Gemini CLI、Cline、Windsurf、JetBrains、Zed、opencode、Goose など)向けの手順をステップごとに説明します。各 OS の設定ファイルのパスと、各クライアントの公式ガイドへのリンクも掲載しています:docs/clients.md。
続けて、次のように尋ねてください:「1011 AB から 25 km 以内で、500 ユーロ未満、フレームサイズ 57~61 cm のロードバイクを探して、出品者が信頼できそうか教えてください。」
Marktplaats には公開 API がなく、ログインには SMS による二要素認証が必要なため、このサーバーがパスワードを尋ねることはありません。すでにログインしているブラウザーからセッションをコピーします。
uvx --from 'marktplaats-mcp[login]' marktplaats-mcp login
セッションは ~/.config/marktplaats-mcp/session.json に保存され、読み取れるのは自分のユーザーだけです。MCP クライアントを再起動すると、アカウントのツールが表示されます。
marktplaats-mcp login --site 2dehands # also import your 2dehands.be session
marktplaats-mcp login --read-only # never send, bid or change favorites
marktplaats-mcp login --window # open a browser window and log in there instead
marktplaats-mcp login --paste # paste a Cookie header from DevTools instead
marktplaats-mcp status # is the stored session still valid?
marktplaats-mcp logout # delete it
ログイン時にブラウザーの Cookie を読み取れなかったと表示される場合
- macOS:システムがコマンドラインツールによるブラウザーデータの読み取りをブロックし、確認を求めません。最初に一度、システム設定 → プライバシーとセキュリティ → フルディスクアクセスを開き、使用するターミナルアプリ(Terminal、iTerm、Warp、または VS Code)を追加してから、アプリを終了して再度開きます。その後、ログインコマンドをもう一度実行します。
- Windows:Chrome と Edge は起動中に Cookie ファイルをロックしますが、ツールが先にコピーするため、通常はそのまま動作します。動作しない場合は、ブラウザーを閉じて再度ログインするか、
--pasteを使います。 - Linux:Chromium 系ブラウザーは Cookie キーをキーリング(GNOME Keyring または KWallet)に保存するため、キーリングのロックを解除する必要があります。Firefox では何も必要ありません。Snap または Flatpak のブラウザーは別の場所にプロファイルを保存するため、その場合は
--pasteを使います。 - すべての環境:
marktplaats-mcp login --pasteでは権限は必要ありません。ブラウザーで marktplaats.nl を開き、F12 → Network を押して、任意のリクエストをクリックし、Cookieリクエストヘッダーをコピーして貼り付けます。
または、クライアントの設定で MARKTPLAATS_COOKIE / TWEEDEHANDS_COOKIE(リクエストの Cookie ヘッダー)を設定します。セッションは数週間有効です。有効期限が切れると、ツールが再ログインを促します。
メッセージの送信、出品者への連絡、入札では、最初にプレビューが返され、confirm=true を指定して再度呼び出した場合にのみ実行されます。Marktplaats では入札に拘束力があり、ツールは最低額を下回る入札を拒否します。Marktplaats の規約では広告の自動掲載が禁止されているため、この機能は意図的に実装していません。安全性モデルをご覧ください。
🧰 ツール
| ツール | 内容 | アカウント | 書き込み |
|---|---|---|---|
search_listings | クエリ、カテゴリー、サブカテゴリー、カテゴリー固有の属性、価格帯、状態、受け渡し方法(直接受け取り/配送)、郵便番号からの距離、掲載時期、除外キーワード、並べ替え、ページネーションを指定して検索します | ||
get_listing_details | 広告の全情報:説明、属性、ステータス(掲載中/終了)、正確な掲載時刻、閲覧数とお気に入り数、入札状況と最低入札額、配送、画像、出品者の返信率とアカウント開設時期。貼り付けた URL も受け付けます | ||
get_seller_profile | 信頼性の指標:銀行口座、本人確認、電話番号、事業者の認証、支払い方法、レビュー評価と件数、出品者が受け付ける最低入札額 | ||
list_seller_listings | 1 人の出品者が出品しているすべての商品:個人出品者を装う業者や重複広告も含みます | ||
list_categories | 絞り込みに使用するカテゴリー階層(名前と ID)。MCP リソースとしても利用できます | ||
list_category_filters | カテゴリーの絞り込み項目(ブランド、フレームの高さ、走行距離、燃料、RAM など)と、その有効な値および件数を確認します | ||
check_new_listings | ステートレスカーソルを使用して新しい広告から順に確認します。since 以降に掲載された広告のみを返し、見逃しません | ||
analyze_prices | 検索結果の希望価格の中央値、四分位数、最小値、最大値、平均値と、最安値の商品を返します | ||
get_my_account | セッション確認、未読メッセージ、通知 | ✅ | |
list_conversations, get_conversation | 受信トレイとメッセージスレッド全体 | ✅ | |
list_my_listings, list_favorites, list_my_bids, list_saved_searches | 自分の広告(閲覧数、お気に入り数、最高入札額、有効期限)、お気に入り、入札、保存済み検索 | ✅ | |
send_message, contact_seller | スレッドへの返信、または出品者への質問や拘束力のないオファーの送信。先にプレビューし、confirm=true で送信します | ✅ | ✅ |
place_bid | 商品に入札します。先にプレビューし、最低入札額未満の入札は拒否されます。破壊的操作としてマークされています | ✅ | ✅ |
set_favorite, extend_my_listing | 商品をお気に入りに追加/削除する、期限が近い自分の広告を更新する | ✅ | ✅ |
読み取り専用ツールには対応する MCP アノテーションが付いているため、クライアントはそれらの確認プロンプトを省略し、書き込みツールに対して確認を求めます。すべてのツールは、実際のスキーマに沿った構造化出力を返します。一般的なワークフローを組み込んだプロンプトとして、bargain_hunt と vet_listing の 2 つがあります。
指示すると、どう動作するか
| 指示 | エージェントが呼び出すツール |
|---|---|
| 「状態の良い iPhone 15 128 GB の価格が 450 ユーロなのは妥当ですか?」 | analyze_prices → 中央値、四分位数、最安値の広告 3 件 |
| 「中古の Golf を探してください。2018〜2022 年、走行距離 100,000 km 未満、ガソリン車、個人出品者」 | list_category_filters("Auto's") → search_listings(attributes={"Bouwjaar": "2018-2022", "Kilometerstand": "-100000", "Brandstof": "Benzine", "Adverteerder": "Particulier"}) |
| 「この出品者は信頼できますか?ほかに何を出品していますか?」 | get_listing_details → get_seller_profile → list_seller_listings |
| 「アントワープ近郊で、新しいカーゴバイクの広告が出たら教えてください」 | 返されたカーソルを毎回の確認時に使用して check_new_listings(site="2dehands", postcode="2000", distance_km=25) を呼び出します |
| 「まだ購入できますかと出品者に尋ねて、120 ユーロを提示してください」 | contact_seller(..., offer_euros=120) をプレビュー → ユーザーが確認 → 送信 |
| 「土曜日に受け取りに行けると Piet に返信してください」 | list_conversations → send_message をプレビュー → ユーザーが確認 → 送信 |
🔒 安全モデル
- デフォルトでは認証情報を使用しません。 検索、詳細、出品者の確認、フィルター、価格統計、モニタリングにアカウントは不要です。
- セッションはお客様のもとに留まります。 ローカルサーバーは、お使いのブラウザーまたはお客様だけが読み取れるファイルから Cookie を読み込み、marktplaats.nl / 2dehands.be にのみ送信し、ログには記録しません。ホスト型エンドポイントは、アカウント認証情報が設定されていると起動を拒否します。
- 書き込み操作は明示的に行われます。 送信と入札は事前にプレビューを表示し、
confirm=trueが必要です。最低額未満の入札は拒否されます。login --read-onlyまたはMARKTPLAATS_READ_ONLY=1を指定すると書き込み操作が完全に無効になり、確認済みの書き込み操作はすべてローカルに記録されます。 - 信頼できないコンテンツにはラベルが付けられます。 出品情報のテキストやメッセージは他のユーザーが作成したものです。サーバーはモデルに、それらを指示ではなくデータとして扱うよう伝えます。
- マーケットプレイスに配慮しています。 リクエストの間隔を空け(
MARKTPLAATS_MIN_INTERVAL_MS、デフォルト値は 200)、バックオフとRetry-Afterを使って再試行し、検索ページを 1 分間キャッシュします。ホスト型エンドポイントでは、クライアントごとおよび全体のレート制限を適用しています。 - アフィリエイトリンクやトラッキングはありません。 出品 URL は、各マーケットプレイスが公開しているものをそのまま返します。
❓ よくある質問
Marktplaats 用の MCP サーバーはありますか?
はい、これがそうです。無料のオープンソース(MIT)で、API キーは不要です。ホスト型 URL を claude.ai に貼り付けるか、uvx marktplaats-mcp を実行してください。
2dehands.be とベルギーでも使えますか?
はい。すべてのツールで site="2dehands" を指定でき、language="nl" または "fr" を指定すると、ベルギーの検索結果を一方の言語に絞り込めます。
Marktplaats アカウントや API キーは必要ですか?
いいえ。アカウント用ツールで必要なのはご自身のログイン情報だけです。パスワードではなく、既存のブラウザーセッションを使用します。
AI は Marktplaats のメッセージを読んで送信したり、入札したりできますか?
はい。ローカルサーバーで marktplaats-mcp login を実行すると利用できます。送信と入札はプレビューを表示し、お客様が確認した後にのみ実行されます。
ログイン認証情報はどこに保存されますか?
お使いのマシンの ~/.config/marktplaats-mcp/session.json に保存され、読み取れるのはお客様のユーザーだけです。または、お客様が設定した環境変数に保存されます。これらの情報は marktplaats.nl / 2dehands.be にのみ送信されます。marktplaats-mcp logout を実行すると削除されます。
何もインストールせずに使えますか?
はい。ホスト型エンドポイント https://marktplaats-mcp.jaspnerd.dev/mcp は claude.ai で動作し、Free プランやモバイルアプリでも利用できます。読み取り専用ツールを提供しています。
ChatGPT、Cursor、Gemini、VS Code、Cline で使えますか?
はい。クライアントごとの手順は docs/clients.md をご覧ください。stdio サーバーを実行できるクライアントなら uvx marktplaats-mcp を、リモートサーバーに対応したクライアントならホスト型 URL を利用できます。
これは Marktplaats の公式プロジェクトですか? または Marktplaats と提携していますか?
いいえ。Marktplaats、2dehands、Adevinta とは一切関係のない独立したオープンソースプロジェクトです。ウェブサイトと同じ公開 JSON エンドポイントを使用しています。この API は文書化されておらず、変更される可能性があるため、毎日ライブカナリアを実行しています。
上限より結果が少なく表示されたり、total_count が多く見えたりするのはなぜですか?
有料プロモーション(DAGTOPPER、TOPADVERTENTIE)はデフォルトで除外されます。表示するには include_sponsored=true を指定してください。total_count は、除外処理前のマーケットプレイス上の生の件数です。
対応している Python のバージョンは何ですか?
3.10 以降です。CI では Linux、macOS、Windows 上で 3.11 から 3.13 までをテストしています。
📚 ドキュメント
- クライアントへのインストール:40 種類のクライアントごとの手順
- 設定:ローカルサーバーとホスト型サーバーの環境変数
- 他のサーバーとの比較:他の Marktplaats MCP サーバーとの比較
- 変更履歴
🗺️ ロードマップ
- サイト横断検索(NL と BE を 1 回の呼び出しで検索)
- エージェントからの保存済み検索の作成
- Claude Desktop 拡張機能バンドル(MCPB)
🤝 コントリビューション
PR を歓迎します。開発環境のセットアップについては、CONTRIBUTING.md をご覧ください。uv sync --all-groups を実行し、その後 uv run pytest を実行します。uv run python scripts/e2e_smoke.py を実行すると、ライブカナリアを実行できます。
このプロジェクトでは、marktplaats-py、marktplaats-monitor、marktplaats-2dehands-mcp、PonClick/marktplaats-mcp の実績あるアイデアを再利用しています。詳細は THIRD_PARTY_NOTICES.md をご覧ください。
このプロジェクトのおかげで Marktplaats まで出かけずに済んだら、スターを付けていただけると、ほかの人にも見つけてもらいやすくなります。
📄 ライセンス
MIT © 2026 jasp-nerd
mcp-name: io.github.jasp-nerd/marktplaats-mcp
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。