vinted-mcp について
vinted-mcp は Vinted 向けの MCP サーバーで、商品検索、国別の価格比較、出品者の分析を行います。複数の国のサイトで中古品を調べたいユーザーに向いています。ローカルの stdio またはネットワークエンドポイントで動作し、国とカテゴリのリソースを提供します。
主な機能
- 01価格、ブランド、カテゴリによる商品検索
- 02商品詳細と出品者プロフィールおよびレビューの取得
- 03国別の平均価格と中央値の比較
- 04お気に入り数と閲覧数による新着商品のランキング
- 05国とカテゴリのデータをリソースとして提供
活用シーン
- 01複数の国の Vinted サイトで同じ商品の価格を比較
- 02出品者のプロフィールと最近の評価を確認
- 03注目を集めている最近の出品商品を探す
MCP 対応
本プロジェクトは MCP サーバーであり、検索、商品詳細、出品者分析、価格比較のツールと、国・カテゴリのリソース、プロンプトテンプレートを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @andrijdavid/vinted-mcpVINTED_AUTH_MODEシークレットAuth mode: http | playwright | envVINTED_AUTH_COOKIESシークレットRequired for env auth modeVINTED_AUTH_CSRF_TOKENシークレットRequired for env auth modeVINTED_AUTH_ACCESS_TOKENシークレットOptional for env auth modeVINTED_PROXY_URLOptional network configurationVINTED_MAX_CONCURRENCYOptional performance tuning. Default: 3VINTED_REQUEST_DELAY_MSOptional performance tuning. Default: 500VINTED_MAX_RETRIESOptional performance tuning. Default: 3ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 返す商品の最大数(最大 100 件) |
| query | string | はい | 検索キーワード |
| sortBy | enum | いいえ | 並べ替え順relevance | price_low_to_high | price_high_to_low | newest_first |
| country | string | いいえ | 国コード(fr、de、uk、it、es、nl、pl、pt、be、at、lt、cz、sk、hu、ro、hr、fi、dk、se) |
| brandIds | array | いいえ | ブランド ID で絞り込みます |
| priceMax | number | いいえ | 最高価格フィルター |
| priceMin | number | いいえ | 最低価格のフィルター |
| condition | array | いいえ | 商品の状態フィルター(new_with_tags、new_without_tags、very_good、good、satisfactory) |
| categoryId | integer | いいえ | Vinted カテゴリー ID のフィルター |
詳細
Vinted MCP サーバー
Vinted の検索と分析を行う MCP サーバーです。出品の検索、アイテムの詳細情報の取得、販売者プロフィールの確認、国をまたいだ価格の比較、トレンドアイテムの表示を行うツールを提供します。
対応国とカテゴリーのデータをリソースとして公開します。
免責事項:このプロジェクトは、Vinted またはその子会社や関連会社と提携、関連、認可、承認されておらず、その他いかなる形でも公式に関係するものではありません。Vinted の公式ウェブサイトは vinted.com です。
クライアントのサポート
このサーバーは、ローカルの stdio サーバーに対応する MCP クライアントで利用できます。
主なクライアントとセットアップのドキュメント:
- Claude Desktop(ローカル):https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop
- Claude Desktop(リモート):https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp
- ChatGPT(MCP 開発者モード):https://platform.openai.com/docs/guides/developer-mode
- ChatGPT(MCP とコネクター):https://platform.openai.com/docs/guides/tools-remote-mcp
- Cursor:https://docs.cursor.com/context/model-context-protocol
- Windsurf:https://docs.windsurf.com/windsurf/cascade/mcp
- Cline:https://docs.cline.bot/mcp/configuring-mcp-servers
- MCP クライアントの一覧:https://modelcontextprotocol.io/clients
クイックスタート
オプション 1:npx
MCP クライアントの設定に次の内容を追加します:
{
"mcpServers": {
"vinted": {
"command": "npx",
"args": ["-y", "@andrijdavid/vinted-mcp"]
}
}
}
オプション 1b:bunx(カナリア版)
bunx @andrijdavid/vinted-mcp@next
これにより、サーバーが stdio モードで起動し、MCP クライアントからの接続を待ち受けます。
オプション 2:グローバルインストール
npm install -g @andrijdavid/vinted-mcp
次に、以下のように設定します:
{
"mcpServers": {
"vinted": {
"command": "vinted-mcp"
}
}
}
ネットワークモードで実行する(TCP 経由の Streamable HTTP)
stdio の代わりにネットワークエンドポイントが必要な場合は、次のコマンドを実行します:
VINTED_MCP_TRANSPORT=http VINTED_MCP_HOST=127.0.0.1 VINTED_MCP_PORT=3001 bunx @andrijdavid/vinted-mcp@next
任意の設定:
VINTED_MCP_PATH(デフォルトは/mcp)VINTED_MCP_ENABLE_LEGACY_SSE(デフォルトはtrue)VINTED_MCP_LEGACY_SSE_PATH(デフォルトは/sse)VINTED_MCP_LEGACY_MESSAGES_PATH(デフォルトは/messages)
デフォルトのエンドポイント:
- Streamable HTTP(推奨):
http://127.0.0.1:3001/mcp - Legacy SSE(旧クライアント向け):
http://127.0.0.1:3001/sse
CLI の使い方と環境変数
インラインで環境変数を渡す(macOS/Linux)
VINTED_AUTH_MODE=env \
VINTED_AUTH_COOKIES='session_cookie=your_value; other_cookie=your_value' \
VINTED_AUTH_CSRF_TOKEN='your_csrf_token' \
bunx @andrijdavid/vinted-mcp@next
インラインで環境変数を渡す(PowerShell)
$env:VINTED_AUTH_MODE = "env"
$env:VINTED_AUTH_COOKIES = "session_cookie=your_value; other_cookie=your_value"
$env:VINTED_AUTH_CSRF_TOKEN = "your_csrf_token"
bunx @andrijdavid/vinted-mcp@next
インラインで環境変数を渡す(Windows コマンドプロンプト)
set VINTED_AUTH_MODE=env
set VINTED_AUTH_COOKIES=session_cookie=your_value; other_cookie=your_value
set VINTED_AUTH_CSRF_TOKEN=your_csrf_token
bunx @andrijdavid/vinted-mcp@next
ローカルの .env ファイルを使う
サーバーは、現在の作業ディレクトリにある .env を自動的に読み込みます。
cp .env.example .env
bunx @andrijdavid/vinted-mcp@next
環境変数を指定して CLI からネットワークモードで実行する
VINTED_MCP_TRANSPORT=http \
VINTED_MCP_HOST=127.0.0.1 \
VINTED_MCP_PORT=3001 \
bunx @andrijdavid/vinted-mcp@next
Windows コマンドプロンプト:
set VINTED_MCP_TRANSPORT=http
set VINTED_MCP_HOST=127.0.0.1
set VINTED_MCP_PORT=3001
bunx @andrijdavid/vinted-mcp@next
認証と環境
サーバーは、作業ディレクトリに .env が存在する場合、自動的に読み込みます。
サンプルファイルを用意します:
cp .env.example .env
主な変数:
VINTED_AUTH_MODE:http、playwright、またはenvVINTED_AUTH_COOKIES:Cookie ヘッダー文字列または JSON オブジェクト文字列VINTED_AUTH_CSRF_TOKEN:CSRF トークンVINTED_AUTH_ACCESS_TOKEN:任意のベアラートークンVINTED_AUTH_REFRESH_TOKEN:任意のリフレッシュトークン。新しいアクセストークンの発行に使用されますVINTED_PROFILE_DIR:loginで作成するブラウザープロファイルの任意のルートディレクトリ。デフォルトは~/.vinted-mcpVINTED_PROXY_URL:任意のプロキシ URLVINTED_MAX_CONCURRENCY:任意の調整項目VINTED_REQUEST_DELAY_MS:任意の調整項目VINTED_MAX_RETRIES:任意の調整項目
環境変数による認証を使うクライアント設定の例:
{
"mcpServers": {
"vinted": {
"command": "npx",
"args": ["-y", "@andrijdavid/vinted-mcp"],
"env": {
"VINTED_AUTH_MODE": "env",
"VINTED_AUTH_COOKIES": "session_cookie=your_value; other_cookie=your_value",
"VINTED_AUTH_CSRF_TOKEN": "your_csrf_token"
}
}
}
}
サインイン
検索ツールと価格ツールは匿名で利用できます。アカウントに紐づく機能(like_item)と、get_seller で取得する出品者自身の出品には、ログイン済みのセッションが必要です。国ごとに一度実行してください。
npx @andrijdavid/vinted-mcp login --country fr
Vinted のブラウザーウィンドウが開きます。普段どおりにサインインしてください(パスワード、CAPTCHA、2FA、Google ログインのいずれも利用できます)。サインインが完了するとウィンドウは自動的に閉じ、ブラウザープロファイルが ~/.vinted-mcp/profile-<country> に保存されます。サーバーは Cookie が必要なときに、このプロファイルをヘッドレスで再度開くため、セッションは自動的に更新されます。コピーや貼り付けは不要です。
要件:Chromium を含む Playwright(npm i playwright && npx playwright install chromium)。
VINTED_PROFILE_DIR を設定すると、プロファイルのルートを ~/.vinted-mcp 以外の場所に変更できます。
手動での Cookie 設定(ヘッドレスサーバーと CI)
ブラウザーを開けない環境では、VINTED_AUTH_MODE=env を使用し、認証情報を自分で指定してください。
- ブラウザーで Vinted にサインインします。
- 開発者ツールを開きます。
Networkを開いて、ページを更新します。- 任意の
https://www.vinted.<country>/api/...リクエストを開きます。 Request Headersから次の値をコピーします。cookie->VINTED_AUTH_COOKIESx-csrf-token->VINTED_AUTH_CSRF_TOKEN
- 任意で、
authorization: Bearer ...トークンをVINTED_AUTH_ACCESS_TOKENに、refresh_token_webCookie の値をVINTED_AUTH_REFRESH_TOKENにコピーします。
セキュリティに関する注意事項:
- これらの値は秘密情報として扱ってください
.envをコミットしないでください- トークンや Cookie が漏えいした場合は更新してください
- 保存されたブラウザープロファイルには有効なセッションが含まれています。所有者のみがアクセスできる権限で保存されます
ツール
search_items
国、価格帯、ブランド ID、カテゴリー、状態、並べ替え、件数などのフィルターを指定して、出品を検索します。
get_item
itemId または url で商品詳細を取得します。Vinted は商品 API を廃止したため、代わりに公開商品ページを読み込みます。そのため検索より時間がかかり、閲覧数や出品日は取得できなくなりました。
get_seller
sellerId または url で、出品者のプロフィールデータ、最近のレビュー、任意で最近の出品を取得します。評価は 0~5 のスケールです。最近の出品は出品者のワードローブから取得しますが、Vinted は匿名の呼び出し元には何も返さないため、この情報の取得にはログイン済みのセッションが必要です。
compare_prices
クエリに対する平均価格と中央値を国ごとに比較します。
get_trending
最近出品された商品を、お気に入り数、次に閲覧数の順でランク付けして返します。カタログ API から出品日時や閲覧数が返されなくなったため、ランキングの精度は以前より粗くなっています。
like_item
itemId または url で商品をお気に入りに追加します。unlike: true を指定すると削除します。ログイン済みのセッションが必要です。サインインを参照してください。すでにお気に入りに追加済みの商品は、切り替えて解除するのではなく、そのままにします。
リソース
vinted://countriesvinted://categories
リソーステンプレート
vinted://item/{country}/{itemId}vinted://seller/{country}/{sellerId}vinted://search/{country}/{query}
これらのテンプレートを使うと、クライアントはリソース URI をすばやく作成できます。
プロンプトテンプレート
find_best_dealscreen_sellersearch_item_with_filterstrending_reportbuy_or_skip_decisionresale_arbitrage_estimator
これらの定義済みプロンプトは、クライアントが一般的な Vinted のワークフローをすぐに開始するのに役立ちます。
対応国:fr、de、uk、it、es、nl、pl、pt、be、at、lt、cz、sk、hu、ro、hr、fi、dk、se。
ローカルでの開発
npm install
npm run build
npm run bundle
npm start
テスト
プロトコルレベルのテストを実行します。
npm test
ライブ統合テストを実行します。
RUN_LIVE_MCP_TESTS=1 npm test
ライセンス
AGPL-3.0-or-later の下でライセンスされています。
LICENSE.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。