MCP Server: ClaudeやChatGPTからショップを検索できるようにする
チャットウィンドウで買い物を始める人が増えています。ClaudeやChatGPTに「サイズ43で120ユーロ以下の防水ハイキングブーツ」と頼み、購入できる商品を返してもらうことを期待します。アシスタントが薦められるのは、読み取れる情報だけです。ただのウェブサイトであるショップは、ときどきクロールされる程度です。独自のMCPサーバーを持つショップは、誰かが尋ねるたびに、実際のフィルター、価格、在庫でリアルタイムに検索されます。
バージョン3.4.7から、HUSKYはWooCommerceショップにMCPサーバーを追加します。MCP(Model Context Protocol)は、AIアシスタントが外部のデータに接続するための標準的な方法です。有効にすると、ショップに接続したアシスタントは、HUSKYのフィルターフォームとまったく同じ方法でカタログを絞り込み、商品、価格、リンクを返します。その後、顧客は商品ページを開き、いつもどおりあなたのサイトで購入します。
デモショップですぐに試せます。ClaudeまたはChatGPTにコネクタとして https://demo.products-filter.com/hello-mcp を追加し、たとえば「30ドル以下の赤い服」のように尋ねてください。
得られるもの
- 顧客向けのショッピングアシスタントを、あなたも顧客も無料で使えます。AIサービスの料金は不要です。顧客は普段使っているアシスタントにアドレスを1つ追加するだけで、自分の言葉と言語でカタログに話しかけられます。
- 大規模なカタログでも検索しやすくなります。数千点の商品と数十の属性があるショップでは、長いフィルターフォームを前に諦めてしまう人が少なくありません。アシスタントはすべてのフィルターを読み取り、組み合わせて、「在庫ありのみ」「安いもの」「同じものの青」のように段階的に絞り込みます。
- 信頼できる回答が得られます。アシスタントは、古いサイトのコピーから推測することはありません。すべての検索はフィルターフォームと同じクエリで実行されるため、訪問者が見るものと同じフィルター、同じロジック(OR、AND、NOT IN)、同じ値、同じ件数が反映されます。
- 商品ページへのアクセスが増えます。すべての結果に商品ページへのリンクが付きます。検索で可変商品が1つのバリエーションに絞り込まれた場合は、そのバリエーションが選択された状態でリンクが開きます。例:
?attribute_pa_color=red&attribute_pa_size=42。 - 言語と通貨に対応します。WPMLまたはPolylangを使っていれば、アシスタントは買い物客の言語で検索できます。FOX Currency Switcherを使っていれば、買い物客の通貨で価格を表示でき、商品リンクもその通貨で開きます。
- 目に見える案内を出せます。サイト上のボックスで、AIアシスタントを使って買い物できることを顧客に知らせられます。AIツールは、標準的なディスカバリーファイルからサーバーを自動的に見つけます。
ショップにとって安全ですか?
このサーバーは、公開されているカタログだけを表示するように作られています。
- デフォルトではオフです。有効にするまで、サーバー、そのアドレス、ディスカバリーファイル、head内のリンク、llms.txtのセクション、ショートコードのボックスはサイトに存在しません。
- 読み取り専用です。3つのツールはすべて読み取りのみを行います。サーバー経由で、購入、カートへの追加、編集、削除はできません。チェックアウトのリンクが返されることもありません。
- ゲスト訪問者として動作します。下書き、非公開の商品、パスワード保護された商品、カタログで非表示の商品は返しません。WooCommerceで在庫切れの商品を非表示にしている場合は、サーバーも非表示にします。WooCommerceの「Coming soon」モードでは、ツールは応答を拒否します。
- アカウント、キー、個人データは不要です。サーバーは、どの訪問者にも見える情報だけを読み取るため、サインインを必要としません。Cookieを設定せず、呼び出し元に関する情報も保存しません。
- レート制限があります。すべてのアドレスに厳格な制限がかかります。デフォルトは1分あたり60リクエスト、バーストは20です。制限を超えると、呼び出し元には待機秒数付きのHTTP 429が返されます。このブロックは一時的で自動的に解除されるため、手動で解除する必要はありません。
- AIプラットフォーム用の別の制限があります。claude.aiやChatGPTを使う買い物客は、アシスタント自身のサーバーからショップにアクセスするため、多くの買い物客が少数のアドレスを共有します。AnthropicとOpenAIがこの目的で公開しているアドレス範囲には、より高い専用の制限が適用されるので、人気のあるショップが自社の顧客を締め出すことはありません。
- キャッシュがあります。同一の検索を繰り返した場合は短時間のキャッシュ(デフォルトは90秒)から返されるため、同じ質問が100回あってもデータベースクエリが100回実行されることはありません。商品、在庫、価格、ターム、フィルター設定のいずれかが変更されると、キャッシュはクリアされます。
- ブラウザのオリジンを制限できます。他のウェブサイト上のブラウザベースのMCPクライアントにサーバーを使わせたくない場合は、許可するオリジンを一覧に登録してください。
動作要件
HUSKY 3.4.7以降、WordPress 6.0以降、WooCommerce、PHP 7.4から8.5。WordPress 6.9以降では、ツールはWordPress Abilities APIにも登録されます。
1. 有効にする
- HUSKYの設定を開き、MCP Serverタブに移動します。
- Enable MCP serverをYesに設定します。
- Save changesをクリックします。保存するまで、アドレスは応答しません。
タブに、Copyボタン付きのYour MCP server addressが表示されます。

2. サーバーのアドレス
| アドレス | 用途 |
|---|---|
https://your-shop.com/wp-json/husky/v1/mcp |
デフォルトのアドレスで、常に使えます |
https://your-shop.com/index.php?rest_route=/husky/v1/mcp |
パーマリンクが基本設定の場合のデフォルトのアドレス |
https://your-shop.com/ai-shop |
設定した場合の、独自の短いアドレス |
独自のアドレス。Your own address (pretty URL)に、まだ使われていない任意のパスを入力します(例:ai-shop)。入力中にフィールドが確認を行い、固定ページ、投稿、カテゴリー、ファイルがすでにそのパスを使っている場合は警告を表示します。短いアドレスのほうが顧客に伝えやすくなります。デフォルトのアドレスも引き続き使えます。サーバーカード、llms.txt、headのリンク、ショートコードのボックスは、短いアドレスに切り替わります。ウェブサーバーが未知のアドレスをWordPressに渡す設定になっていれば(標準の.htaccessとnginxのtry_filesルールがそうなっています)、基本設定を含め、どのパーマリンク構造でも動作します。
MCPクライアント向け:トランスポートはStreamable HTTP、認証なし、プロトコルバージョン2026-07-28、2025-11-25、2025-06-18が同じアドレスで使えます。
3. 顧客に知らせる
誰にも知られていないサーバーは、誰の役にも立ちません。HUSKYには、人向けとAIツール向けの2つの告知方法があります。
ページに表示するボックス
ショートコード[woof_mcp_connect]を、固定ページ、投稿、サイドバーやフッターのTextウィジェットまたはShortcodeウィジェットなど、好きな場所に置いてください。ブロックエディターでは、ブロックAI assistant connection (HUSKY MCP)を使います。ボックスには、Copyボタン付きのサーバーアドレスと、Claude、ChatGPT、その他のアシスタント向けの短い3つの手順が表示されます。

タイトルとテキストは、MCP ServerタブのBox for your shop pagesで一度設定するか、使用ごとに指定します。
[woof_mcp_connect title="Shop with your AI assistant" text="Add this address to Claude or ChatGPT and just say what you are looking for."]
フィルターの他の部分と同様に、これらのテキストはHUSKYのタクソノミーラベル翻訳フィールドで翻訳できます。
ボックスの置き場所としては、ショップのサイドバー、フッター、またはメニューからリンクした「AIで買い物」のような短いページが向いています。
AIツール向けのディスカバリーファイル
AIエージェントやディレクトリは、サイトの機械可読な説明を探します。サーバーがオンの間、HUSKYがそれらを自動的に公開します。
- llms.txt。サイトのルートに置かれるプレーンテキストのファイルで、サイトの内容と参照すべき場所をAIツールに伝えます。HUSKYは、MCPサーバーに関するセクションをそこに追加します。
- llms.txtをRank MathまたはWebsite LLMs.txtプラグインが生成している場合は、そのファイルにセクションが追加されます。
- サイトにllms.txtがない場合は、サーバーがオンの間、HUSKYが
/llms.txtで提供します。 - 実体のある
llms.txtファイルは変更されません。タブには、そのファイルに貼り付けられる形でセクションが表示されます。 - Server cardは
<your address>/server-cardにあり、サーバー名、説明、アドレスが含まれます。 /.well-known/ai-catalog.jsonは、サーバーカードを指します。- すべてのページのhead内のリンク(
<link rel="ai-catalog">と<link rel="service-desc">)。
llms.txtのセクションとheadのリンクは、タブのDiscoveryでオフにできます。
4. 顧客が接続する方法
タブには、以下のすべてのスニペットが、あなたのアドレスを入れた状態で、それぞれにCopyボタン付きで表示されます。https://your-shop.com/ai-shopは、ご自身のアドレスに置き換えてください。
Claude(claude.ai、Claude Desktop)
- Customize → Connectors(
claude.ai/customize/connectors)を開きます。 - Add custom connectorをクリックし、アドレスを貼り付けます。
- OAuthのフィールドは空のままにして、Addをクリックします。
チャットでは、ツールのメニューでコネクタをオンにして、たとえば次のように尋ねます。「サイズ42で150ユーロ以下の赤いスニーカーを探して。」
ChatGPT
chatgpt.com/pluginsを開き、+を押してAdd custom MCP serverを選びます。- 名前を入力し、アドレスをServer URLに貼り付け、No authenticationを選びます。
- 確定してCreate as a pluginを選び、チャットで
@を入力して選択します。
どのプランやワークスペースのロールがカスタムコネクタを追加できるかは、Anthropic、OpenAI、ワークスペースの管理者が決めるもので、ショップ側では決められません。
Claude Code
claude mcp add --transport http my-shop https://your-shop.com/ai-shop
Cursor
プロジェクト単位では.cursor/mcp.json、すべてのプロジェクト共通では~/.cursor/mcp.jsonです。
{
"mcpServers": {
"my-shop": {
"url": "https://your-shop.com/ai-shop"
}
}
}
VS Code(GitHub Copilot)
.vscode/mcp.json、またはコマンドMCP: Add Server → HTTPを使います。
{
"servers": {
"my-shop": {
"type": "http",
"url": "https://your-shop.com/ai-shop"
}
}
}
その他のMCPクライアント
リモートサーバーとして追加します。Streamable HTTP、認証なしです。ターミナルからサーバーを確認するには、次のコマンドを使います。
npx @modelcontextprotocol/inspector --cli https://your-shop.com/ai-shop --transport http --method tools/list
5. アシスタントにできること
| ツール | 機能 |
|---|---|
husky_get_filter_schema |
フォームのフィルターを順番に一覧で返します。カテゴリー、属性、ブランド、価格、在庫、セール中、メタフィールド、テキスト検索などが対象で、それぞれの値、商品数、ロジックに加え、並べ替えの順序、言語、通貨も含まれます。 |
husky_search_products |
これらのフィルターを任意に組み合わせて検索します。商品のページを、名前、価格、セール価格、在庫、画像、評価、属性、リンクとともに返し、アシスタントが検索を絞り込めるように残りの値の件数も返します。何も見つからなかった場合は、どのフィルターを外すとよいかを示し、近い代替案を提案します。 |
husky_get_product |
ID、URL、SKUのいずれかで指定した1つの商品について、説明、ギャラリー、カテゴリー、属性、価格と在庫付きのバリエーション、リンクを返します。 |
顧客が頼める内容の例:
- 「RAM 16 GBで800以下、在庫ありのノートパソコン。」
- 「このジャケットに似ていて、防水で青いもの。」
- 「セール中でいちばん安いヘッドホンを、リンク付きで。」
- "Gibt es diese Schuhe in Größe 42? Preise bitte in Euro."
Instructions for agents.すべてのアシスタントは、ツールの使い方についての短いテキストを受け取ります。最初にスキーマを呼び出すこと、実在するフィルター値だけを使うこと、リンクを付けること、といった内容です。このテキストは、タブのInstructions for agentsで編集でき、たとえば返品ポリシーや希望する口調を追加できます。Reset to defaultを押すと、お使いのHUSKYバージョンのテキストに戻ります。デフォルトのままにしておけば、アップデートでその改善も反映されます。
エージェントに表示される名前、タイトル、説明はサイトタイトルから取得され、タブで変更できます。
6. 言語と通貨
- WPMLとPolylang。アシスタントは言語を指定できます。その場合、結果、件数、名前、リンクはその言語になり、その言語の商品だけが返されます。言語を指定しない場合は、デフォルトの言語が使われます。
- FOX Currency Switcher。アシスタントが別の通貨を要求しない限り、価格は基準通貨で表示されます。買い物客の通貨選択、geo-IP、Cookieがサーバーに影響することはありません。通貨が指定されると、価格はストアフロントと同じ方法でFOXによって換算され、通貨ごとの固定価格も反映されます。商品リンクには通貨(
?currency=EUR)が付くため、商品ページはアシスタントが伝えたものと同じ価格で開きます。

7. レート制限とキャッシュの設定
| 設定 | デフォルト |
|---|---|
| IPアドレスごと | 1分あたり60リクエスト、バースト20 |
| AIプラットフォーム(公開されている範囲ごと) | 1分あたり1200リクエスト、バースト300 |
| 同一検索のキャッシュ | 90秒 |
| 1ページあたりの商品数の上限 | 50(1から100まで設定可能) |
- デフォルトのAIプラットフォーム一覧には、ベンダーが自社のドキュメントで公開している範囲だけが含まれます。Anthropic(Claude)とOpenAI(ChatGPTコネクタ)です。デフォルトの一覧のままにしておけば、HUSKYのアップデートに追従します。編集した場合はその一覧が維持され、Reset to defaultを押すと、お使いのHUSKYバージョンの一覧が読み込まれます。
0にすると、その制限が1つオフになります。Rate limit: Offにすると、すべての制限がオフになります。- カウンターは、利用できる場合は永続オブジェクトキャッシュ(Redis、Memcached)またはAPCuに、そうでない場合はデータベースに保存されます。
8. トラブルシューティング
| 症状 | 確認すること |
|---|---|
| アドレスが404を返す | サーバーがオフになっているか、有効にした後で設定が保存されていません。 |
| 短いアドレスが404を返す | 別のページまたはファイルがそのアドレスを使っているか(タブに競合が表示されます)、ウェブサーバーが未知のアドレスをWordPressに渡していません。デフォルトのアドレスは引き続き使えます。 |
/.well-known/ai-catalog.jsonが見つからない |
WordPressがサブフォルダにインストールされており、ドメインのルートで応答できません。サーバーカードとheadのリンクは引き続き動作します。 |
/.well-known/ai-catalog.jsonが403を返す |
nginxの設定が、ドットで始まるすべてのアドレスをブロックしています。そのルールの前にlocation ^~ /.well-known/ { try_files $uri $uri/ /index.php?$args; }を追加してください。 |
| ブラウザでアドレスを開いたり、チャットに貼り付けたりすると405になる | 想定どおりの動作です。このアドレスはウェブページではなく、MCPリクエストにのみ応答します。アシスタントにコネクタとして追加してください(セクション4)。 |
| アシスタントが「too many requests」と言う | レート制限に達しています。タブで数値を引き上げるか、プラットフォームが公開している範囲を追加してください。 |
| 価格が基準通貨で表示される | 想定どおりの動作です。アシスタントに別の通貨を指定してください(「ユーロで」など)。 |
| ファイアウォールまたはセキュリティプラグインがアシスタントをブロックする | ブラウザ以外のリクエストについて、MCPのアドレスを許可してください。claude.aiとChatGPTは、それぞれ自社のサーバーから呼び出します。 |
| 結果がショップで見えるものと異なる | パスワード保護された商品は、MCPの結果には含まれません。ログアウトしていることも確認してください。商品によっては、ログイン中のユーザーにしか表示されないものがあります。 |
9. 開発者向け
| フィルター | 用途 |
|---|---|
woof_mcp_filters |
エージェントに渡すフィルター一覧を変更する |
woof_mcp_product_card |
検索結果内の商品カードを変更する |
woof_mcp_product_details |
husky_get_productの応答を変更する |
woof_mcp_product_is_public |
商品を表示してよいかどうかを判定する |
woof_mcp_server_card |
サーバーカードを変更する |
woof_mcp_llms_txt |
llms.txtのセクションを変更する |
woof_mcp_default_ai_ranges |
デフォルトのAIプラットフォームの範囲を変更する |
woof_mcp_client_ip |
プロキシの背後にいる実際の呼び出し元IPをHUSKYに伝える |
woof_mcp_respect_coming_soon |
「Coming soon」モードでもツールを許可する |
WordPress 6.9以降では、同じ3つの操作がWordPress Abilities API(husky/get-filter-schema、husky/search-products、husky/get-product)にも登録されるため、WordPress MCP Adapterからも公開できます。