O'So MCP Server for PrestaShop について
O'So MCP Server for PrestaShop は、MCP 対応アシスタントにショップ操作を公開する PrestaShop モジュールです。ショップの従業員や管理者向けに、共有データベースログインや無制限の API キーではなく、従業員権限と OAuth 2.1 でアクセスを制御します。
主な機能
- 01PrestaShop 内の MCP エンドポイント
- 02OAuth 2.1 認可
- 03従業員ごとのバックオフィス権限
- 04マルチストアのネイティブ対応
- 05モジュールからツールとプロンプトを公開
活用シーン
- 01注文の検索とステータス更新
- 02商品、在庫、顧客の管理
- 03売上概要とベストセラーの確認
MCP 対応
PrestaShop 内で MCP エンドポイントを稼働させ、ショップのデータと操作に関するツールを公開します。MCP クライアントは従業員として認可され、そのバックオフィス権限に基づいてアクセスします。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://{shop}/module/somcp/mcpclaude mcp add --transport http novalo-dev-prestashop https://{shop}/module/somcp/mcp{"mcpServers":{"novalo-dev-prestashop":{"type":"http","url":"https://{shop}/module/somcp/mcp"}}}Cursor で開く{"servers":{"novalo-dev-prestashop":{"type":"http","url":"https://{shop}/module/somcp/mcp"}}}VS Code で開く{"mcpServers":{"novalo-dev-prestashop":{"type":"http","url":"https://{shop}/module/somcp/mcp"}}}{"mcpServers":{"novalo-dev-prestashop":{"serverUrl":"https://{shop}/module/somcp/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
PrestaShop MCP サーバー
PrestaShop のショップを MCP サーバーに変えるモジュールです。Claude、ChatGPT、Le Chat、または MCP 対応のアシスタント (一覧)が、データベースへのログインやあらゆる操作が可能な API キーを使わず、標準プロトコルを通じて、OAuth 2.1 と従業員自身のバックオフィス権限を利用しながら、ショップの注文やカタログを操作できます。
モジュールのフォルダー名は somcp で、バックオフィスでは O'So MCP Server と表示されます。
必要条件、インストール、設定、各アシスタントの接続方法など、モジュールのドキュメントはウィキにあります。
https://github.com/user-attachments/assets/cf0b0e3f-1172-4ba9-aad1-11a6298aadf7
このリポジトリでは、PrestaShop 開発者の参加を募集しています。協力できることをご覧ください。
機能
- PrestaShop 内から MCP を提供します。 別のサービスや Node プロセスは不要です。 エンドポイントはモジュールのフロントコントローラーです。
- 独自の OAuth 2.1 認可サーバーを実行します:ディスカバリードキュメント(RFC 9728 および RFC 8414)、PKCE S256、動的クライアント登録とクライアント ID メタデータ ドキュメント、再利用検出付きのリフレッシュトークンローテーションに対応しています。トークンは ハッシュ化して保存され、発行先のショップに紐付けられます。
- PrestaShop の権限をそのまま使用します。 従業員はバックオフィスの同意画面で、自分の代理として
アシスタントを接続します。その後、アシスタントはその従業員とまったく同じ権限を持ちます。各ツールはバックオフィスの
ページと、PrestaShop がすでに管理している 4 つの権限のいずれか(
view、add、edit、delete)に紐付けられます。 - マルチストアに標準で対応しています。 各ショップは固有のアドレス、トークン、通常の継承機能を備えた 設定を持ちます。従業員がアクセスできるのは、自分が所属するショップのみです。
- 2 つのフックから配列を返すことで、どのモジュールでもツールとプロンプトを公開できます。 somcp のクラスに依存しないため、これらのモジュールは Addons のバリデーターにも引き続き合格します。 docs/EXTENDING.md をご覧ください。
- バックオフィスにアシスタントを内蔵しています。 各ページの右上にあるチャットボタンを押すと、 販売者が自分の API キーで接続した AI と会話できます:Claude、 ChatGPT、 Gemini、 Mistral、 DeepSeek、 Grok、 Cohere(各リンクから、プロバイダーがキーを発行するページを開きます)。または、 Ollama や LM Studio など、販売者自身のコンピューターで動作する AI とも接続できます。 O'So AI Relay を介して接続するため、キーは不要で、 ネットワーク上でポートを開く必要もありません。同じツールを使用し、サインイン中の従業員の権限で動作し、 変更を加える前に承認を求めます。複数のアシスタントで役割を分担して作業できます。各会話では + メニューから、深い思考(Claude、Gemini、OpenAI の推論モデル)とウェブ検索(Claude と Gemini は単独で、その他はそのいずれかを介して)を有効にしたり、メモリを無効にしたりできます。 所属するモジュールを認識し、スーパー管理者向けには設定を読み取り、承認後に変更します。 Neuron AI 上で動作します。
- 1 つのエンドポイントから、プロトコルの新旧両方の世代に対応します:呼び出し中に質問できる
ステートレスな
2026-07-28リビジョンと、2025-11-25、2025-06-18、2025-03-26の各リビジョンに対応しています。
スクリーンショット
PrestaShop 9.1 の設定ページを順に紹介します:設定、ツールとプロンプト、アクセスとセキュリティ、 接続済みアシスタント、内蔵アシスタント、セキュリティログ、ヘルプと更新、チャット。

互換性
| PrestaShop | 8.0.0 ~ 9.x(ps_versions_compliancy 8.0.0 - 9.99.99) |
| PHP | 8.1 以降 |
| マルチストア | 対応 |
| 言語 | 英語、フランス語、スペイン語、ドイツ語 |
ショップは HTTPS でアクセス可能で、フレンドリー URL が有効になっており、 ドメインのルートにインストールされている必要があります。OAuth はディスカバリードキュメントの 1 つを ここに配置するためです。設定画面の診断ボタンでは、証明書、SSL 設定、フレンドリー URL、 配置場所、アシスタントが呼び出すアドレスを外部から確認します。要件の全一覧は wiki にあります。
ツール
バックオフィスのページごとにグループ化し、各オブジェクトでは読み取りツールを変更ツールより先に記載しています。 新しいツールは、そのページの表に追加します。
接続
| ツール | スコープ | バックオフィスの権限 | 種別 |
|---|---|---|---|
somcp_ping | mcp.access | なし | 読み取り |
Orders
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_search_orders | mcp.orders.read | view on AdminOrders | read |
somcp_get_order | mcp.orders.read | view on AdminOrders | read |
somcp_list_order_statuses | mcp.orders.read | view on AdminStatuses | read |
somcp_list_return_statuses | mcp.orders.read | view on AdminStatuses | read |
somcp_list_carriers | mcp.orders.read | view on AdminCarriers | read |
somcp_set_order_status | mcp.orders.write | edit on AdminOrders | write |
somcp_set_order_tracking | mcp.orders.write | edit on AdminOrders | write |
somcp_add_order_message | mcp.orders.write | edit on AdminOrders | write |
somcp_set_order_note | mcp.orders.write | edit on AdminOrders | write |
somcp_add_order_payment | mcp.orders.write | edit on AdminOrders | write |
somcp_create_return_status | mcp.orders.write | add on AdminStatuses | write |
somcp_update_return_status | mcp.orders.write | edit on AdminStatuses | write |
somcp_delete_return_status | mcp.orders.write | delete on AdminStatuses | write |
somcp_create_order_status | mcp.orders.write | add on AdminStatuses | write |
Catalog - Products
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_search_products | mcp.catalog.read | view on AdminProducts | read |
somcp_get_product | mcp.catalog.read | view on AdminProducts | read |
somcp_create_product | mcp.catalog.write | add on AdminProducts | write |
somcp_update_product | mcp.catalog.write | edit on AdminProducts | write |
somcp_set_product_active | mcp.catalog.write | edit on AdminProducts | write |
somcp_delete_product | mcp.catalog.write | delete on AdminProducts | write |
Catalog - Categories
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_list_categories | mcp.catalog.read | view on AdminCategories | read |
somcp_get_category | mcp.catalog.read | view on AdminCategories | read |
somcp_create_category | mcp.catalog.write | add on AdminCategories | write |
somcp_update_category | mcp.catalog.write | edit on AdminCategories | write |
somcp_set_category_active | mcp.catalog.write | edit on AdminCategories | write |
Catalog - Brands
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_list_manufacturers | mcp.catalog.read | view on AdminManufacturers | read |
somcp_get_manufacturer | mcp.catalog.read | view on AdminManufacturers | read |
somcp_create_manufacturer | mcp.catalog.write | add on AdminManufacturers | write |
somcp_update_manufacturer | mcp.catalog.write | edit on AdminManufacturers | write |
somcp_set_manufacturer_active | mcp.catalog.write | edit on AdminManufacturers | write |
somcp_list_manufacturer_addresses | mcp.catalog.read | view on AdminManufacturers | read |
somcp_get_manufacturer_address | mcp.catalog.read | view on AdminManufacturers | read |
somcp_create_manufacturer_address | mcp.catalog.write | edit on AdminManufacturers | write |
somcp_update_manufacturer_address | mcp.catalog.write | edit on AdminManufacturers | write |
somcp_delete_manufacturer_address | mcp.catalog.write | delete on AdminManufacturers | write |
Catalog - Suppliers
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_list_suppliers | mcp.catalog.read | view on AdminSuppliers | read |
somcp_get_supplier | mcp.catalog.read | view on AdminSuppliers | read |
somcp_create_supplier | mcp.catalog.write | add on AdminSuppliers | write |
somcp_update_supplier | mcp.catalog.write | edit on AdminSuppliers | write |
somcp_set_supplier_active | mcp.catalog.write | edit on AdminSuppliers | write |
Catalog - Attributes
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_list_attributes | mcp.catalog.read | view on AdminAttributesGroups | read |
somcp_get_attribute_group | mcp.catalog.read | view on AdminAttributesGroups | read |
somcp_create_attribute_group | mcp.catalog.write | add on AdminAttributesGroups | write |
somcp_update_attribute_group | mcp.catalog.write | edit on AdminAttributesGroups | write |
somcp_get_attribute_value | mcp.catalog.read | view on AdminAttributesGroups | read |
somcp_create_attribute_value | mcp.catalog.write | add on AdminAttributesGroups | write |
somcp_update_attribute_value | mcp.catalog.write | edit on AdminAttributesGroups | write |
Catalog - Features
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_list_features | mcp.catalog.read | view on AdminFeatures | read |
somcp_get_feature | mcp.catalog.read | view on AdminFeatures | read |
somcp_create_feature | mcp.catalog.write | add on AdminFeatures | write |
somcp_update_feature | mcp.catalog.write | edit on AdminFeatures | write |
somcp_get_feature_value | mcp.catalog.read | view on AdminFeatures | read |
somcp_create_feature_value | mcp.catalog.write | add on AdminFeatures | write |
somcp_update_feature_value | mcp.catalog.write | edit on AdminFeatures | write |
Catalog - Files and taxes
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_list_attachments | mcp.catalog.read | view on AdminAttachments | read |
somcp_list_tax_rules | mcp.catalog.read | view on AdminTaxRulesGroup | read |
Stock
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_get_stock | mcp.stock.read | view on AdminStockManagement | read |
somcp_list_low_stock | mcp.stock.read | view on AdminStockManagement | read |
somcp_set_stock_quantity | mcp.stock.write | edit on AdminStockManagement | write |
Customers
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_search_customers | mcp.customers.read | view on AdminCustomers | read |
somcp_get_customer | mcp.customers.read | view on AdminCustomers | read |
somcp_create_customer | mcp.customers.write | add on AdminCustomers | write |
somcp_update_customer | mcp.customers.write | edit on AdminCustomers | write |
somcp_list_customer_groups | mcp.customers.read | view on AdminGroups | read |
Statistics
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_get_sales_summary | mcp.stats.read | view on AdminStats | read |
somcp_list_best_sellers | mcp.stats.read | view on AdminStats | read |
Content
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_list_cms_pages | mcp.content.read | view on AdminCmsContent | read |
somcp_get_cms_page | mcp.content.read | view on AdminCmsContent | read |
Modules
| Tool | Scope | Back office right | Nature |
|---|---|---|---|
somcp_list_modules | mcp.modules.read | view on AdminModulesSf | read |
somcp_get_module | mcp.modules.read | view on AdminModulesSf | read |
somcp_install_module | mcp.modules.write | add on AdminModulesSf | write |
somcp_set_module_active | mcp.modules.write | edit on AdminModulesSf | write |
外観
| ツール | スコープ | バックオフィス権限 | 種別 |
|---|---|---|---|
somcp_list_menu_links | mcp.appearance.read | AdminModulesSf の view | 読み取り |
somcp_add_menu_link | mcp.appearance.write | AdminModulesSf の edit | 書き込み |
somcp_update_menu_link | mcp.appearance.write | AdminModulesSf の edit | 書き込み |
somcp_get_theme | mcp.appearance.read | AdminThemes の view | 読み取り |
somcp_update_theme_setting | mcp.appearance.write | AdminThemes の edit | 書き込み |
システム
| ツール | スコープ | バックオフィス権限 | 種別 |
|---|---|---|---|
somcp_get_cache_status | mcp.system.read | AdminPerformance の view | 読み取り |
somcp_clear_cache | mcp.system.write | AdminPerformance の delete | 書き込み |
SEO
| ツール | スコープ | バックオフィス権限 | 種別 |
|---|---|---|---|
somcp_get_seo_settings | mcp.seo.read | AdminMeta の view | 読み取り |
somcp_list_meta_pages | mcp.seo.read | AdminMeta の view | 読み取り |
somcp_audit_page | mcp.seo.read | AdminMeta の view | 読み取り |
somcp_check_links | mcp.seo.read | AdminMeta の view | 読み取り |
somcp_audit_sitemap | mcp.seo.read | AdminMeta の view | 読み取り |
somcp_audit_product_seo | mcp.seo.read | AdminProducts の view | 読み取り |
somcp_audit_category_seo | mcp.seo.read | AdminCategories の view | 読み取り |
somcp_audit_cms_seo | mcp.seo.read | AdminCmsContent の view | 読み取り |
somcp_audit_brand_seo | mcp.seo.read | AdminManufacturers の view | 読み取り |
somcp_update_cms_seo | mcp.seo.write | AdminCmsContent の edit | 書き込み |
somcp_update_meta_page | mcp.seo.write | AdminMeta の edit | 書き込み |
somcp_get_robots_txt | mcp.seo.read | AdminMeta の view | 読み取り |
somcp_generate_robots_txt | mcp.seo.write | AdminMeta の add、edit、delete | 書き込み |
AEO
| ツール | スコープ | バックオフィス権限 | 種別 |
|---|---|---|---|
somcp_audit_product_schema | mcp.seo.read | AdminProducts の view | 読み取り |
読み取りは読み取り専用として設定されており、繰り返し実行しても安全です。書き込みは破壊的な操作として設定されており、MCP クライアントは実行前に販売者へ確認します。書き込み操作は呼び出しごとに1つのオブジェクトを変更し、応答が失われても再試行されません。
somcp_ping は意図的に権限システムの対象外です。ショップデータは読み取らず、アシスタントが何(ショップ、アカウント、言語、通貨)に接続しているかだけを伝えるため、権限が一切ないアカウントであっても、アシスタントは常に使用中のアカウントを確認できます。
このモジュールには、接続の確認、注文の検索、注文ステータスの変更、商品管理、在庫の確認、顧客の検索、SEO の監査、売上のレポート、コンテンツページの閲覧という9つのプロンプトが付属しています。組み込みのアシスタントでも、それぞれのアイコン付きで利用できます。バックオフィスのページにあるプロンプトはそのページを開いたときに表示され、各入力欄の + からも利用できます。すべてのツールの詳細はdocs/TOOLS.mdに記載されています。
開発用インストール
-
リポジトリをショップの
modulesフォルダーにsomcpという名前でクローンします。cd /path/to/prestashop/modules git clone https://github.com/novalo-dev/Prestashop-MCP-Server.git somcp -
モジュールの依存関係をインストールし、Modules > Module Manager からインストールして、設定を開きます。
cd somcp && composer install --no-dev -
アシスタントに渡すアドレスをコピーします。次のような形式です。
https://your-shop.example/module/somcp/mcp -
Run the diagnostic を押します。アシスタントに接続する前に、赤色の行がないことを確認してください。ショップがメンテナンス中などの警告があっても、接続は妨げられません。
ローカルショップに MCP クライアントからアクセスするには、公開 HTTPS アドレスが必要です。cloudflared や ngrok などのトンネルを使用し、ショップのドメインをそのアドレスに設定してください。
バージョンは GitHub で公開されているリリースに対応します。リリース間は main によってデータベーススキーマが変更されることがあります。既存のショップ向けのアップグレード処理は次のリリース公開時に作成されるため、開発用ショップでは、プルリクエストにスキーマ変更の記載がある場合、モジュールを再インストールしてください。
互換性のあるアシスタント
HTTP 経由で OAuth を使用してリモート MCP サーバーに接続するアシスタントは、ショップの MCP アドレスを使用します。このアドレスはモジュールの設定ページに表示されています。以下のアシスタントが対応しています。それぞれでアドレスを入力する場所については、 アシスタントを接続するをご覧ください。
- チャット: Claude(ウェブ、デスクトップ、モバイル)、 ChatGPT、Le Chat(Mistral)、 Dust
- コマンドライン: Claude Code、 Codex(OpenAI)、 Gemini CLI(Google)、 GitHub Copilot CLI
- コードエディター: Cursor、 VS Code(GitHub Copilot)、 Windsurf(Devin Desktop)、Zed
- 自動化: n8n(クラウドおよびセルフホスト可能)、 Make
セキュリティモデル
- PKCE(S256 のみ)を使用する OAuth 2.1。 認可コードの有効期限は 60 秒、アクセストークンはデフォルトで 1 時間、リフレッシュトークンはデフォルトで 30 日です。いずれも設定で変更できます。リフレッシュトークンはローテーションされ、古いトークンを提示すると認可が取り消されます。
- スコープは、アシスタントが実行できる操作を示します。接続には
mcp.accessを使用します。そのほか、mcp.orders.read、mcp.orders.write、mcp.catalog.read、mcp.catalog.write、mcp.stock.read、mcp.stock.write、mcp.customers.read、mcp.customers.write、mcp.seo.read、mcp.seo.write、mcp.stats.read、mcp.content.read、mcp.modules.read、mcp.modules.write、mcp.appearance.read、mcp.appearance.write、mcp.system.read、mcp.system.writeがあります。ほかのモジュールはこれらを借用せず、それぞれ独自のスコープを宣言します。 - バックオフィスの権限は、従業員の現在のプロファイルに照らして、呼び出しごとに確認されます。また、ショップはリクエストではなく、常にトークンから取得されます。
- リダイレクト URI は
https、またはループバックの場合はhttpである必要があります。マーチャントは許可するホストのリストを指定し、アクセスを許可できるプロファイルを制限できます。 - すべての接続は設定から取り消すことができ、すべての拒否はトークンやシークレットを決して含まないセキュリティログに記録されます。
脆弱性を見つけた場合は、issue を作成しないでください。SECURITY.mdをご覧ください。
ドキュメント
- Wiki:マーチャント向けのモジュールドキュメントです。要件、インストール、設定、アシスタントの接続、組み込みアシスタントについて説明しています。
- docs/ARCHITECTURE.md:リクエストがモジュール、OAuth、MCP、マルチストア、データをどのように経由するかを説明しています。
- docs/EXTENDING.md:独自のモジュールからツールやプロンプトを公開する方法を、完全なサンプルモジュールとともに説明しています。
- docs/TOOLS.md:すべてのツールが従う規約と、各ツールの詳細を説明しています。
- CHANGELOG.md:各リリースでの変更内容と、次のリリースに向けて Unreleased に残されている内容を確認できます。
支援できること
プロトコル層、OAuth、権限は整っています。今このモジュールに必要なのは、対応範囲を広げることです。PrestaShop のより多くの機能をツールとして公開し、より多くのクライアントをテストし、対応言語を増やす必要があります。ROADMAP.mdには具体的な作業項目を記載しています。CONTRIBUTING.mdでは、環境のセットアップ方法、プルリクエストに必要なもの、歓迎する貢献の種類を説明しています。
コントリビューター
モジュールの構築に協力した皆さんです。中央には最も貢献した方を表示しています。 名前と貢献数は、このページが表示されるたびに GitHub から読み込まれるため、 常に最新の状態です。モジュールの設定ページにも、GitHub から読み込まれた同じ一覧が ヘルプと更新 > コントリビューターの紹介 に表示されます。
|
2位 |
1位 最も貢献した方 |
3位 |
次のコントリビューターになりませんか?方法についてはCONTRIBUTING.mdをご覧ください。
ライセンス
他の Novalo モジュールと同様に、Academic Free License 3.0 を適用しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。