Blocket MCP について
Blocket MCPは、Blocket.seの公開広告を読み取る専用のMCPサーバーで、商品、車両、ボートを探す人向けです。分類別検索、広告の比較、掲載中広告に基づく価格推定に対応しますが、ログイン、出品者への連絡、出品はできません。
主な機能
- 0113の広告カテゴリを条件付きで検索
- 02広告の詳細、写真、販売者情報を取得
- 03複数の広告を比較
- 04類似する掲載中広告から価格帯を推定
- 05検索結果の中央値を基準に価格を分類
活用シーン
- 01カテゴリ、地域、条件から広告を探す
- 02車両やボートの広告内容を確認する
- 03広告を比較し、希望価格を評価する
MCP 対応
検索、広告詳細、写真、価格確認、フィルター値を扱う読み取り専用ツールをMCPクライアントに提供します。ローカルのstdioまたはデプロイ済みHTTPSエンドポイントで接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Blocket MCP
Blocketをスクロールし続けるのに飽きたので、今ではChatGPTに探してもらっています。
ログインしたり、出品者にメッセージを送ったり、何かを出品したりすることはできません。公開されている広告を読むだけです。
ツール
search は、Torgetに加えて、自動車、ボート、オートバイ、キャラバン、キャンピングカー、トラック、トラクター、コンバイン、スノーモービル、ATV、モペッド、バスの全13カテゴリーに対応しています。Volvo V70、Segelbåt、Stockholmのように人が入力する感覚でフィルターを指定すると、サーバーがBlocketのIDを割り出します。メーカー名を打ち間違えても、候補とともに unmatched に返され、モデルは次の呼び出しで修正できます。これがなければ、スウェーデン中の車が黙ってすべて返ってきます。距離指定付きの半径検索、無料譲渡品や探している商品、配送可能な商品、「今朝からの新着」、特定の出品者の全在庫、相場を手早く把握するための価格帯ごとの件数にも対応しています。各検索結果にはBlocketのURLも含まれます。Blocketアプリに保存しておけば、新しい広告が掲載されたときに通知が届きます。
Blocketの検索では、無関係な結果が大量に混ざります。iPhone 13を探す場合、exclude に skal、laddare、köpes を指定すれば、ケース、充電器、探しているという広告を除外できます。require とタイトルのみを検索する切り替えもあります。その結果、ページの広告が少なくなった場合、サーバーは検索を続けますが、広告数は200件で打ち切ります。Blocketでおなじみの検索演算子もそのまま使えます。-word、OR、"exact phrase"、word* です。deals を有効にすると、各検索結果に、同じ検索の中央値と比較した価格ラベルが付きます。評価は「お得」から「高め」までです。「defekt」、「reservdelar」、「startar inte」などを含むタイトルも、いずれの場合もフラグが付きます。
get_ad は、最大5件の広告IDまたはリンクを受け取ります。説明、仕様、装備、すべての写真、まだ販売中かどうか、出品者、保存したユーザーの数を取得します。よくある詐欺の兆候も指摘します。Blocket外での支払い、「WhatsAppで連絡してください」、海外の電話番号などです。車とボートでは馬力、電気自動車では航続距離とバッテリー容量、ディーラーが表示している場合はディーラー車のVAT抜き価格も取得します。Googleの評価があるディーラーについては、その評価も表示します。ディーラーの車には、車両履歴へのリンクが付きます。複数の広告を渡すと、比較結果が得られます。
get_ad_photos は、広告の写真を最大8枚、実画像として送信します。そのため、画像を認識できるモデルは自分で状態を判断できます。サビ、ひび、欠けている部品などは、説明文よりも写真のほうが早く見つかります。
price_check は、「この価格は妥当?」を調べるためのツールです。メーカー、モデル、年式、走行距離、ボートの全長を基に、比較対象となる販売中の広告を見つけ、p10からp90までの価格帯と、対象の広告がその中のどこに位置するかを示します。比較対象が8件未満の場合は条件を緩め、何を除外したかを説明します。Blocketでは販売価格が表示されないため、数値は出品価格です。
list_filters は、カテゴリーのフィルターと値を、現在の件数とともに一覧表示します。
自分のコンピューターで実行
Claude Desktop、Claude Code、Cursor、Codexでは、サーバーをローカルでstdio経由で実行できます。トークンもホスティングも不要です。
Claude Desktopユーザーは、Releasesからblocket-mcp-<version>.mcpbをダウンロードして、ダブルクリックしてください。インストールはこれだけです。
ほかのクライアントでは、Dockerを使って起動できます。Claude Codeでは次のようになります。
claude mcp add blocket -- docker run -i --rm ghcr.io/idoo/blocket-mcp
CursorとCodexでは、同じコマンドと引数をMCP設定に指定します。Dockerを使わずに自分でビルドする場合は、Node 20以降を使ってください。
npm ci && npm run build:stdio
node dist/blocket-mcp.js
ChatGPTとclaude.ai向けのホスト版
ChatGPTとclaude.aiはお使いのノートパソコンに接続できないため、サーバーには公開HTTPSアドレスが必要です。私はCloudflareで実行しています。Firebaseでも動作します。
ログインはありません。ChatGPTのカスタムコネクターはOAuthを使うか、何も使わないかのどちらかです。公開広告を見るためにOAuthは大げさだと感じたので、エンドポイントはシークレットパス/mcp/<token>の背後に置いています。それ以外のパスはすべて404を返します。長くてランダムなトークンを作成してください。
openssl rand -hex 24
Cloudflare Workers
無料プランで問題なく利用できます。
git clone https://github.com/idoo/blocket-mcp && cd blocket-mcp
npm ci
npx wrangler login
npx wrangler deploy
npx wrangler secret put MCP_PATH_TOKEN # paste the token
最後にWranglerがworkers.devのURLを表示します。その末尾に/mcp/<token>を追加してください。wrangler.jsoncでは、1分あたりの呼び出し回数を120回に制限しています。
ローカルでの開発:.dev.varsにMCP_PATH_TOKEN=devを設定し、npm run devを実行すると、http://localhost:8787/mcp/devでアクセスできます。
Firebase
Cloud FunctionsにはBlazeプランが必要で、カードの登録が必要になります。個人の利用であれば、無料枠を超えることはありません。
git clone https://github.com/idoo/blocket-mcp && cd blocket-mcp
npm ci && npm --prefix functions ci
firebase login
firebase use --add # pick your project
firebase functions:secrets:set MCP_PATH_TOKEN # paste the token
firebase deploy --only functions
エンドポイントはhttps://europe-north1-<project-id>.cloudfunctions.net/mcp/<token>です。Firebaseにはレートリミッターがありません。関数のインスタンス数は3に制限されているため、誰かにURLを見つけられても請求額を抑えられます。別のリージョンや、より多くの容量が必要ですか?functions/src/index.tsの先頭を確認してください。
デプロイせずにテストするには、functions/.secret.localにMCP_PATH_TOKEN=devを設定し、firebase emulators:start --only functionsを実行してください。URLはhttp://127.0.0.1:5001/<project-id>/europe-north1/mcp/devです。
接続
Web版のChatGPT: Pluginsを開き、Addを選択して、「Add custom MCP server」を選びます。エンドポイントを貼り付け、認証なしで完了です。その後、チャットで@Blocketを使えます。すべてのツールが読み取り専用に設定されているため、呼び出しのたびに許可を求められることはありません。
claude.ai:Settings → Connectors → Add custom connector。
Claude CodeおよびCodex:
claude mcp add --transport http blocket https://…/mcp/<token>
codex mcp add blocket --url https://…/mcp/<token>
仕組み
Blocketには公開APIがありません。このサーバーは、blocket.seの各ページが読み込むJSONエンドポイントを呼び出します。通常、ツール呼び出し1回につきリクエストは1回で、比較や価格確認では数回になります。フィルター名はBlocketの最新のフィルター一覧と照合されるため、先週追加されたメーカーもすでに利用できます。Blocketがこれらのエンドポイントを変更すると、誰かが修正するまで動作しなくなります。プルリクエストを歓迎します。
dunderrrrrr/blocket_apiのエンドポイントに関するメモを参考にしました。Blocket ABとは関係ありません。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。