martdata について
martdataは、HasDataのWalmartデータサービスにつなぐローカルブリッジで、商品、口コミ、ストア検索の結果をJSONで取得します。MCPサーバーとCLIで読み取り専用の操作を提供し、カートや購入処理は行いません。
主な機能
- 01商品IDまたはURLから詳細を取得
- 02顧客の口コミを閲覧・絞り込み
- 03キーワードやカテゴリで商品を検索
- 04価格、配送方法、並び順で絞り込み
- 05CLIまたはMCPでツールを利用
活用シーン
- 01商品の価格と在庫状況を比較
- 02特定商品の口コミを確認
- 03価格帯を指定して商品を検索
- 04Walmartのカテゴリを閲覧
MCP 対応
MCPクライアントに読み取り専用のWalmartデータツールを3種類提供し、呼び出しをHasDataのホスト型MCPサーバーへ転送します。各ツールはCLIのサブコマンドからも実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | いいえ | そのままスクレイピングする Walmart 商品の完全な URL。指定すると `itemId` が上書きされ、ストアフロントは URL 自体から判定されます。`itemId` を指定しない場合は必須です。 |
| domain | enum | いいえ | 商品が属する Walmart ストアフロント。各ストアフロントは独自の商品カタログ、商品 ID、価格、通貨を持つため、あるストアフロントの ID は別のストアフロントでは解決できません。`url` を指定すると無視されます。デフォルトは `walmart.com` です。walmart.com | walmart.ca |
| itemId | string | いいえ | Walmart の商品 ID。商品 URL または Walmart Search API レスポンスの id フィールドから取得します。`walmart.com` では数値(例:`14977205582`)、`walmart.ca` では英数字コード(例:`6NZMJ5CW6MH2`)です。`url` を指定しない場合は必須です。 |
| language | enum | いいえ | 商品詳細の言語。利用可能な言語はストアフロントによって異なります。`walmart.com` は `en` と `es`、`walmart.ca` は `en` と `fr` を提供します。ストアフロントが指定言語に対応していない場合は、デフォルトの言語にフォールバックします。en | es | fr |
| otherOffers | boolean | いいえ | この商品を扱う他の競合販売者のオファーも収集します。各販売者の名前、ストアフロント、価格、状態、送料、配達日、返品ポリシーが含まれます。Walmart へのリクエストが 1 回追加され、実際に競合販売者がいるかどうかにかかわらず、基本の 10 クレジットに加えて 5 クレジットを消費します。このスイッチのオン/オフにかかわらず、商品ページに表示される競合販売者数と最安の競合価格は `otherOffers` ブロックに返されるため、収集対象があると件数で確認できるまでオフのままにできます。デフォルトは `false` です。 |
詳細
martdata
martdata は、ホスト型 HasData Walmart MCP サーバーへの小規模なローカルブリッジです。このサーバーは、Walmart のストアフロント データを JSON で返します。商品 ID または URL を指定して、商品ページ全体を 1 件取得したり、その商品のカスタマーレビューをページごとに取得したり、 価格、フルフィルメント、並べ替えフィルターを指定してストアフロント全体を対象にキーワード検索やカテゴリ検索を実行したりできます。
このブリッジ自体は商品データを保持しません。ライブ エンドポイントからそのまま取得したツール一覧をローカルで返し、各ツール呼び出しを 上流に転送して、返ってきた内容を変更せずに返します。取得できるのは、公開されている ストアフロントデータに対する読み取り専用の 3 種類の取得処理です。カート、チェックアウト、注文、 支払いのツールは含まれておらず、個人の連絡先データも返されません。
ツール
hasdata_walmart_product_getWalmartProduct—itemIdまたはurlで、Walmart の商品を 1 件、全項目取得します(両方指定した場合は URL が優先されます)。任意の引数:domain(walmart.com/walmart.ca)、language(en/es/fr)、競合販売者のオファーも取得するotherOffers。商品名、 ブランド、価格と在庫状況、購入ボックスの販売者、 評価、バリエーション、フルフィルメントの詳細、その他の販売者のブロックを返します。取得したスキーマでは 必須とされている引数はありません。itemIdとurlは 互いに代替として使用できます。hasdata_walmart_reviews_getWalmartReviews—itemIdまたはurlで、1 商品の カスタマーレビューを 1 ページ 10 件取得します。任意の引数:domain、language、page、sort(関連度順、新着順、 役立った順、評価の高い順または低い順、古い順)、rating(星評価 1 種類)、aspectId(頻繁に言及されるトピック 1 つ)、condition、verifiedPurchasesOnly。 各レビューの評価、本文、投稿者、 投票数に加え、商品の評価内訳、AI によるレビューの要約、観点ごとのスコア、後続の呼び出しでフィルターに使用できる値を示すfiltersブロックを返します。hasdata_walmart_search_getSearchResults— キーワードqでストアフロントを検索するか、catIdでカテゴリを 閲覧するか、urlを使って検索 URL 全体をスクレイピングします。 任意の引数:domain、language、sort(最適一致、価格の昇順または降順、ベストセラー、評価の高い商品、新着商品)、page、minPrice、maxPrice、deliveryType(shipping/pickup)、name:value形式で絞り込むfacet。価格、評価、販売者、フルフィルメントの詳細を含む 商品一覧に加え、facetsブロックと ページネーションを返します。
設定
HASDATA_WALMART_MCP_URL(任意)— 上流エンドポイントを上書きします。既定値はhttps://mcp.hasdata.com/mcp?apis=walmartです。(この 上書き用フックは、この再構築版独自の、再構築であることを明示した実装です。)HASDATA_API_KEY(任意)— 設定すると、上流への各リクエストに、呼び出し元自身の HasData API キーを指定するx-api-key: <key>ヘッダーが付加されます。設定されていない場合、キーのヘッダーは送信されません。(ヘッダー名と環境変数名は、オリジナルのレジストリ記録で固定されています。この環境変数からキーを転送する動作は、再構築であることを明示した実装です。オリジナルの サーフェスはキーなしで取得されました。)
転送の仕組み
最初のツール呼び出し時に、クライアントは上流とのストリーム可能な
HTTP セッションを開きます。JSON-RPC の initialize リクエスト(protocolVersion 2025-03-26、clientInfo name
martdata)を送信し、続いて notifications/initialized
通知を送信してから、呼び出し元の引数を変更せずに含めた tools/call リクエストを送信します。上流が initialize への応答で Mcp-Session-Id ヘッダーを返した場合、
その値はセッションの後続のすべてのリクエストに付加され、プロセスが終了するまでセッションが再利用されます。
応答は通常の JSON またはサーバー送信イベントで届く場合があり、どちらも読み取ります。
上流からの成功した結果は、上流が設定した isError フラグも含め、そのまま渡されます。
JSON-RPC エラー、2xx 以外のステータス、読み取れない応答、または完了できないリクエストによる失敗は、テキストが
martdata error: で始まる isError 結果として返されます(このエラー表示は、この再構築版独自の、再構築であることを明示した実装です)。
CLI
各ツールは、1 つの JSON 引数文字列を受け取るサブコマンドでもあります。
npx @reneturcios/martdata hasdata_walmart_product_getWalmartProduct '{"itemId":"14977205582"}'
npx @reneturcios/martdata hasdata_walmart_reviews_getWalmartReviews '{"itemId":"14977205582","sort":"mostRecent"}'
npx @reneturcios/martdata hasdata_walmart_search_getSearchResults '{"q":"coffee maker","maxPrice":90}'
npx @reneturcios/martdata --version
終了コード:成功時は 0、isError の結果の場合は 1、使用方法に誤りがある場合は 2 です。
MCP サーバー
npx -y @reneturcios/martdata mcp
MCP クライアントの設定:
{
"mcpServers": {
"martdata": {
"command": "npx",
"args": ["-y", "@reneturcios/martdata", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/martdata
docker run --rm ghcr.io/cloudcorprecords/martdata --version
コンテナのデフォルトコマンドは mcp であるため、最初の形式では stdio MCP サーバーとして動作します。それ以外の引数は通常どおり CLI に渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートはすべてスタブ化された JSON-RPC アップストリームに対して実行され、実際のネットワーク呼び出しは行いません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。