Sverige Begagnad について
Sverige Begagnadは、スウェーデンの中古マーケットを検索する、購入者や転売者向けのMCPサーバーです。Blocket、Tradera、Klaravik、Vintedの出品をまとめ、条件や位置情報で絞り込めます。
主な機能
- 014つの中古マーケットを検索
- 02横断検索と個別検索
- 03価格とカテゴリの絞り込み
- 04地域と県による絞り込み
- 05出品の座標と距離情報
- 06マーケットのカテゴリ検索
活用シーン
- 01スウェーデンの指定地域で中古品を探す
- 02複数マーケットの出品を比較
- 03修理や転売向けの商品を仕入れる
MCP 対応
マーケット検索、カテゴリと地域の検索、データソースの稼働確認ツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx sverige-begagnad-mcpTRADERA_APP_IDNumeric Tradera App ID from api.tradera.com/register.TRADERA_APP_KEYシークレットTradera App Key (GUID secret) from api.tradera.com/register.BLOCKET_LOCATIONSOptional comma-separated Blocket region (län) names to scope searches; empty = all of Sweden.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
11掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | フリーテキストの検索クエリ。スウェーデン語の語句が最適です(例:'String hylla'、'Festool'、'Fjällräven')。 |
| category | any | いいえ | 結果を絞り込むための任意の Blocket カテゴリー名。list_blocket_categories() の値を指定してください。不明な値は無視され、`warning` に記録されます。 |
| locations | any | いいえ | 検索対象とする地域(län)名の任意のリスト。例:['KRONOBERG','KALMAR']。有効な名前は list_blocket_locations() から取得します。省略すると、BLOCKET_LOCATIONS 環境変数のデフォルト値を使用し、それもなければスウェーデン全域を検索します。 |
| max_pages | integer | いいえ | 取得する検索結果ページ数(1 ページあたり約 60 件の広告)。負荷を抑えるため、1~3 ページにしてください。 |
詳細
🇸🇪 Sverige Begagnad MCP
スウェーデン各地で良質な中古品を探せます。AI アシスタントから直接ご利用いただけます。
Claude(または任意の MCP クライアント)から Blocket、Tradera、 Klaravik、Vinted(さらにオプションでローカルの Facebook Marketplace)を検索し、 購入や修復、転売に値する中古品を見つけられる MCP サーバーです。
💬 Claude に頼めること
接続したら、話しかけるだけです。
🪑 「Växjö の近くで、1000 SEK 未満の String 棚(String hylla)を探して。」
🛠️ 「Blocket と Tradera で、利益を出して転売できそうな Festool または Makita の工具を検索して。」
🔊 「Tradera にある、500〜3000 SEK の Bang & Olufsen のスピーカーは?」
🚲 「Blocket のカテゴリーを一覧表示してから、Skåne で質の良い自転車(Kronan、Crescent)を探して。」
📈 「今週の仕入れ調査として、Kronoberg と近隣の県でスカンジナビアデザインを探し、推定利益順に並べて。」
Claude が適切なツールを選び、フィルターを適用して、タイトル、価格、 場所、リンク、画像を、両方のマーケットプレイスからまとめて返します。
✨ 機能
| 🔎 4つのマーケットプレイス | Blocket + Tradera + Klaravik + Vinted をまとめて、または個別に検索し、統一された形式に正規化します |
| 🎯 詳細なフィルター | 価格の下限・上限、カテゴリー、県(Tradera) · 地域 + カテゴリー(Blocket) |
| 📍 位置情報に対応 | Blocket の各検索結果には coordinates + distance が含まれ、正確な半径指定で絞り込めます |
| 🌍 デフォルトは全体検索 | スウェーデン全域を検索します。設定または検索ごとに対象地域を指定できます |
| 🧭 検索用ツール | カテゴリー、地域、県を一覧表示し、エージェントが適切に絞り込めます |
| 🧩 簡単にインストール | Claude Code プラグインをワンコマンドでインストールするか、uvx またはソースから利用できます。各ユーザーが独自のキーを用意します |
| ✅ 実環境でテスト済み | 各データソースを実際の API に対してエンドツーエンドで検証済みです |
📊 ソースの状況
| ソース | 方法 | 安定性 |
|---|---|---|
| Tradera | 公式 REST API(v4) | 🟢 安定 — 実環境でテスト済み。無料登録が必要です |
| Blocket | コミュニティパッケージ(blocket-api) | 🟡 準安定、非公式 — 実環境でテスト済み |
| Klaravik | 内部 JSON エンドポイント | 🟡 非公式 — 実環境でテスト済み。オークションの現在の入札価格 |
| Vinted | 内部 API(ボット対策あり) | 🟠 非公式で、最も不安定 — 住宅用 IP からの利用が最適です |
| Facebook Marketplace | デフォルトでは無効 | 🔴 リスクあり、ローカルのみ — facebook_client.py を参照してください |
🔑 Tradera の認証情報を取得する(すべてのインストール方法で必須)
- https://api.tradera.com/register で無料登録します。
- 利用規約とロゴ利用規約に同意します。
- アプリケーションを作成し、数値の App ID と App Key
(GUID シークレット)をコピーします。これらを
TRADERA_APP_ID/TRADERA_APP_KEYとして設定します。
Blocket では認証情報は不要です。Facebook Marketplace はデフォルトで無効です。
📦 インストール
各ユーザーは自分の Tradera キーを使って各自のコピーを実行します。利用するクライアントに合った方法を選んでください。
uv をインストール済みの場合は、uvx ベースの方法を利用できます
(curl -LsSf https://astral.sh/uv/install.sh | sh、または Windows では
winget install astral-sh.uv)。クローンや仮想環境は不要です。
オプション 1 — Claude Code プラグイン(最も簡単)
claude plugin marketplace add tudorgrigoriu90/sverige-begagnad-mcp
claude plugin install sverige-begagnad@sverige-begagnad-marketplace
次に、キーをエクスポートします(プラグインはキーをサーバーに渡します)。
export TRADERA_APP_ID=... # Windows PowerShell: $env:TRADERA_APP_ID="..."
export TRADERA_APP_KEY=...
export BLOCKET_LOCATIONS= # optional; empty = all of Sweden
Claude Code を再起動すると、search_blocket、search_tradera、search_all などを利用できます。このプラグインは、GitHub から uvx 経由でサーバーを直接実行します。
オプション 2 — uvx(Claude Desktop または任意の MCP クライアント)
クライアントの MCP 設定に追加します(Claude Desktop の場合:Settings → Developer → Edit Config)。
{
"mcpServers": {
"sverige-begagnad": {
"command": "uvx",
"args": ["sverige-begagnad-mcp"],
"env": {
"TRADERA_APP_ID": "...",
"TRADERA_APP_KEY": "...",
"BLOCKET_LOCATIONS": ""
}
}
}
}
初回実行時に uvx が PyPI から公開済みパッケージを取得してキャッシュします。クライアントを再起動してください。
オプション 3 — ソースから実行(開発用)
git clone https://github.com/tudorgrigoriu90/sverige-begagnad-mcp
cd sverige-begagnad-mcp
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
cp .env.example .env # then fill in your keys
クライアントで、仮想環境内の sverige-begagnad-mcp コマンド(または
python -m sverige_begagnad_mcp.server)を指定し、cwd をリポジトリに設定してください。
✅ 動作確認(任意)
キーを設定したソースチェックアウトから実行します(.env または環境変数に設定)。
# Tradera — official REST API v4 (https://api.tradera.com/v4, header auth)
python -m sverige_begagnad_mcp.tradera_client
# Blocket — unofficial community API
python -c "import asyncio; from sverige_begagnad_mcp.blocket_client import search_blocket; print(asyncio.run(search_blocket('String hylla')))"
どちらも実際の環境でテスト済みです。Tradera の形式に変更があった場合は、OpenAPI 仕様を
https://api.tradera.com/openapi.json で確認できます。
🧰 ツール
| ツール | 目的 |
|---|---|
search_blocket(query, category?, locations?, max_pages?) | Blocket を検索 |
list_blocket_categories() | 有効なカテゴリ名を一覧表示 |
list_blocket_locations() | 有効な地域(län)名を一覧表示 |
search_tradera(query, category_id?, price_min?, price_max?, county_id?) | Tradera を検索 |
list_tradera_categories() | カテゴリツリー → category_id |
list_tradera_counties() | 任意の county_id フィルターに使う県 ID |
search_klaravik(query) | Klaravik のオークションを検索(現在の入札価格) |
search_vinted(query, price_min?, price_max?) | Vinted のファッション商品を検索 |
search_facebook_marketplace(...) | デフォルトで無効(ローカルのみ) |
search_all(query, blocket_category?, blocket_locations?, tradera_category_id?, price_min?, price_max?) | 1 回の呼び出しで Blocket、Tradera、Klaravik、Vinted を検索 |
health_check() | すべての情報源に ping を送信し、現在もデータを取得できているものを報告 |
📍 地理的な検索範囲
検索範囲はデフォルトでスウェーデン全土です。範囲は次の 3 つの方法で指定でき、優先順位は記載順です。
- 検索ごとに指定 —
search_blocketにlocations(またはsearch_allにblocket_locations)を渡します。例:["KRONOBERG", "KALMAR"]。有効な名前はlist_blocket_locations()で確認できます。 - 個人用のデフォルト値 —
.envのBLOCKET_LOCATIONSに、カンマ区切りで地域名を設定します。 - 未設定の場合 — スウェーデン全土。
Blocket のフィルターは地域(län)単位で、正確な距離(km)を指定するものではありません。
「車で X 分以内」のように範囲を絞るには、各出品について Claude に最終確認させてください。各結果には、広告本文に記載された場所に加えて、coordinates(緯度・経度)と Blocket 独自の
distance が含まれます。Tradera は配送に対応する全国規模のサービスなので、半径の概念はありません(任意の county_id フィルターはありますが、通常は不要です)。
🗺️ 例:自分用の Växjö / Älmhult の設定
個人用の範囲設定は .env のみに保存されます(Git の対象外のため、配布時のデフォルトには含まれません)。
BLOCKET_LOCATIONS=KRONOBERG,KALMAR,JONKOPING,HALLAND,SKANE
🤖 パワーユーザー向け:週次の「仕入れエージェント」用プロンプト全文
これを指示として貼り付けると、ツールを使って利益順に並べた週次検索を実行できます。 スウェーデン国内で対象を絞った検索を多数実行し、距離と品質で絞り込み、利益を見積もって、 優先順位付きの候補リストを返します。ブランド、地域、しきい値は好みに合わせて調整してください。
ROLE: You are a sourcing assistant for a personal, quality-focused loppis (flip).
Each week, search Blocket and Tradera for second-hand items to buy, minimally
restore, and resell at a profit.
METHOD: Search with SWEDISH terms. Run MANY targeted searches — by BRAND and by
CATEGORY — across both sources; deduplicate. Prices are in SEK.
AREA: within ~35 km straight-line of Växjö (56.88, 14.81) or Älmhult (56.55, 14.14),
computed from each Blocket result's `coordinates`. Tradera ships nationally, so
include shippable Tradera items too.
QUALITY: recognized brand or top craftsmanship (String, Artek, Fritz Hansen, Louis
Poulsen, Iittala, Orrefors, Bang & Olufsen, Braun, Marantz, Bahco, Hilti, Festool,
Makita, Kronan, Crescent…); "bra skick"/"nyskick" or minor cosmetic wear; asking
price clearly below market; only minimal restoration (clean, polish, light sand,
small off-the-shelf parts).
PROFIT: estimate resale value (use web search for comparables if available — do NOT
invent sold prices). Net = resale − (purchase + restoration + pickup/courier), with
stated assumptions (~80 SEK pickup fuel, ~70 SEK courier, 0–150 SEK materials).
Include only items with estimated net profit ≥ 300 SEK. Note that Tradera auction
prices may rise before close.
OUTPUT: ranked by net profit descending, max 15. For each: title + link + location
(distance from Växjö or "ships nationally"), asking vs. estimated market price, net
profit with assumptions, 2–3 restoration steps, and a risk note. End with a 2–3
sentence read on the week's trends. Don't pad with weak candidates.
🚫 Facebook Marketplace — 無効になっている理由
Facebook Marketplace には公開 API がありません。判明している方法(セッション Cookie またはヘッドレスブラウザーによるスクレイピング)は、いずれも Facebook の利用規約に明示的に違反します。
src/sverige_begagnad_mcp/facebook_client.py モジュールは意図的にスタブのままにしてあり、自分で実装する方法についての説明が含まれていますが、実行は自己責任です。
🛠️ メンテナンスと公開
メンテナー向けメモ
- データソースが使えなくなった場合: Blocket → https://pypi.org/project/blocket-api/ で 新しいバージョンを確認します。Tradera → https://api.tradera.com/openapi.json の OpenAPI 仕様を確認します。
- PyPI(短い
uvx sverige-begagnad-mcpコマンドを利用できるようにします):まずpython -m buildを実行し、 続いてtwine upload dist/*を実行します。先にpyproject.tomlとsrc/sverige_begagnad_mcp/__init__.pyのversionを更新してください。 - プラグインマーケットプレイス:
.claude-plugin/marketplace.jsonとplugins/ディレクトリにより、 このリポジトリ自体がマーケットプレイスとして機能します。追加のホスティングは不要です。 - MCP Registry:
server.jsonは準備済みです。PyPI へのリリース後、mcp-publisherCLI で公開します(Registry の公開ガイドを参照してください)。
📄 ライセンス
MIT — 各ユーザーがそれぞれの認証情報を使って、自分用のコピーを実行します。Blocket には公式 API がないため、 非公式のコミュニティパッケージを使用しています。Blocket 関連の部分はその点を踏まえてご利用ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。