关于 O'So MCP Server for PrestaShop
O'So MCP Server for PrestaShop 是一个 PrestaShop 模块,可向兼容 MCP 的助手开放店铺操作。它面向店铺员工和管理员,通过员工权限与 OAuth 2.1 控制访问,而非共用数据库登录或不受限的 API 密钥。
主要功能
- 01在 PrestaShop 内提供 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 的助手 (完整列表)随后都可以通过标准协议处理商店的订单 和商品目录,并使用 OAuth 2.1 和员工自己的后台权限,而无需数据库登录信息, 也无需使用权限不受限制的 API 密钥。
模块文件夹名为 somcp;在后台中,它称为 O'So MCP Server。
模块文档——包括要求、安装、配置以及连接各个助手的方法——请参阅 wiki。
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 已管理的四种权限之一:
view、add、edit或delete。 - 原生支持多店铺。 每个店铺都有自己的地址、令牌和遵循常规继承规则的 设置。员工只能访问自己关联的店铺。
- 允许任何模块通过两个钩子发布工具和提示词,只需返回数组即可。 不依赖 somcp 的类,因此这些模块仍可通过 Addons 验证器。请参阅 docs/EXTENDING.md。
- 后台内置助手。 每个页面右上角的聊天按钮都会打开一段对话,与商家使用 自己的 API 密钥连接的 AI 交流:Claude、 ChatGPT、 Gemini、 Mistral、 DeepSeek、 Grok 或 Cohere——每个链接都会打开相应服务商提供 密钥的页面——也可以连接运行在商家自己电脑上的 AI,例如 Ollama 或 LM Studio, 通过 O'So AI Relay 接入,无需密钥, 也不会在商家的网络上开放任何端口。它使用相同的工具,并拥有当前登录员工的权限, 且在进行任何更改前都会请求批准。多个助手可按角色协同工作。每段对话都可以从 + 菜单开启深度思考(Claude、Gemini、OpenAI 的推理模型)和网络搜索(Claude 和 Gemini 原生支持,其他模型则通过其中一个服务商实现),也可以关闭记忆。它 了解自己所属的模块,并且对于超级管理员,会读取其设置,并在获得批准后更改设置。 基于 Neuron AI 运行。
- 通过一个端点同时支持协议的两个时代:无状态的
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 会在此处设置其发现文档之一。设置中的诊断按钮会从外部检查证书、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 客户端会据此在运行前征求商家确认;每次调用只会更改一个对象,且在响应丢失时绝不会重试。
somcp_ping 有意不纳入权限系统:它不读取任何店铺数据,只会说明助手连接到的店铺、账户、语言和货币,因此助手始终能知道自己正在使用哪个账户,即使该账户完全没有权限也一样。
此模块附带 9 个提示词:检查连接、查找订单、更改订单状态、管理产品、检查库存、查找客户、审核 SEO、报告销售情况,以及读取内容页面。内置助手也会提供这些提示词,每个提示词都有自己的图标:当前后台页面对应的提示词会优先显示,其他提示词可通过其字段中的 + 按钮打开。每个工具的详细信息请参阅docs/TOOLS.md。
开发环境安装
-
将仓库克隆到店铺的
modules文件夹中,目录名必须为somcp:cd /path/to/prestashop/modules git clone https://github.com/novalo-dev/Prestashop-MCP-Server.git somcp -
安装模块依赖,然后从 模块 > 模块管理器 安装模块并打开其设置:
cd somcp && composer install --no-dev -
复制提供给助手的地址。其格式如下:
https://your-shop.example/module/somcp/mcp。 -
点击运行诊断。连接助手前,不应有任何红色提示;例如店铺处于维护模式等警告不会阻止连接。
本地店铺需要使用公开的 HTTPS 地址,MCP 客户端才能访问:使用 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
安全模型
- OAuth 2.1 与 PKCE(仅 S256)。 授权码有效期为 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 说明了参与方式。
许可证
Academic Free License 3.0,与 Novalo 的其他模块相同。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。