MCP Server Plugin
A Sylius plugin that exposes a Model Context Protocol (MCP) server for enabling interaction with your store via Large Language Models (LLMs) like ChatGPT.
安装
需求
我们致力于开发稳定、受支持和最新版本的软件包。我们建议您也这样做。
| 包 | 版本 |
|---|---|
| PHP | ^8.2 |
| 西柳斯/西柳斯 | ^2.1 |
| MySQL | ^8.4 |
| NodeJS | ^20.x |
______________________________________________________________________
小心!
本安装说明假定您使用的是Symfony Flex。
- 需要带有composer的插件:
composer require sylius/mcp-server-plugin使用以下命令清除应用程序缓存:
bin/console cache:clear______________________________________________________________________
没有Symfony Flex
- 需要插件:
composer require sylius/mcp-server-plugin- 在中导入插件配置
config/packages/sylius_mcp_server.yaml:
imports:
- { resource: "@SyliusMcpServerPlugin/config/config.yaml" }- 导入路线
config/routes.yaml:
sylius_mcp_server:
resource: '@SyliusMcpServerPlugin/config/routes.yaml'- 清除应用程序缓存:
bin/console cache:clear______________________________________________________________________
文档
什么是MCP服务器?
模型上下文协议(MCP)是一种将语言模型(如ChatGPT)与外部工具连接的标准化方式, API和系统。它允许AI模型在对话过程中进行结构化的工具调用,类似于调用函数。
MCP服务器充当语言模型和应用程序逻辑之间的桥梁。它公开了一系列工具 (如“搜索产品”或“创建订单”)并根据人工智能的请求执行它们。
此插件将Sylius与MCP服务器集成在一起,使AI代理能够与您的商店进行交互 (例如,搜索产品、查看价格、开始结账)。
我们使用官方 symfony/mcp捆绑包 以提供MCP服务器运行时。
┌────────────────┐ ┌───────────────┐ ┌────────┐
│ MCP Client │◄────────────────►│ MCP Server │◄─────►│ Sylius │
│ (OpenAi, etc.) │ (Stdio/HTTP) │ (Tools, etc.) │ (API) │ │
└────────────────┘ └───────────────┘ └────────┘要了解更多信息,请参阅MCP官方介绍 模型上下文协议.io.
运行MCP服务器
标准运输
bin/console mcp:serverHTTP传输
HTTP端点位于 /_mcp.
MCP服务器配置
有关更多选项,请参阅 symfony/mcp捆绑包文档.
API
工具通过预先配置的HTTP客户端与Sylius API进行通信:
sylius_mcp_server.http_client.api_shop:
base_uri: '%sylius_mcp_server.api.shop_base_uri%'
headers:
- 'Accept: application/ld+json'
- 'Content-Type: application/ld+json'
sylius_mcp_server.http_client.api_shop_merge_patch:
base_uri: '%sylius_mcp_server.api.shop_base_uri%'
headers:
- 'Accept: application/ld+json'
- 'Content-Type: application/merge-patch+json'默认的API基URI是http://localhost:8000/api/v2/shop/,并且可以使用环境变量覆盖 SYLIUS_MCP_SERVER_API_SHOP_BASE_URI.
工具
以下工具是现成的:
| 名称 | 描述 |
|---|---|
| add_item_to_order | 将项目添加到订单中。 |
| complete_checkout | 完成结账过程。(最后一步) |
| create_order | 创建新订单。 |
| fetch_channel | 按代码获取通道。 |
| fetch_currency | 按代码获取货币。 |
| fetch_order | 按令牌获取订单。 |
| fetch_product | 按代码获取产品。 |
| fetch_product_variant | 通过代码获取产品变体。 |
| list_payment_methods | 列出所有可用的付款方式。 |
| list_shiping_methods | 列出所有可用的运输方式。 |
| search_products | 按名称搜索产品。 |
| search_product_variants | 按名称搜索产品变体。 |
| select_payment_method | 为订单选择付款方式。(结账步骤3) |
| select_shiping_method | 为订单选择配送方式。(结账步骤2) |
| update_order_address | 更新订单地址。(结账的第一步) |
这些工具目前仅在访客模式下运行-- fetch_order 仅当订单没有关联的客户帐户时才返回数据。
添加自定义工具
您可以通过创建带注释的PHP类,使用自己的工具扩展服务器 #[McpTool] 属性。
要了解如何定义和构造工具,请参阅 symfony/mcp捆绑包文档.
将您的工具注册为具有自动配置功能的服务 config/services.yaml:
services:
App\Mcp\Tool\:
resource: '../src/Mcp/Tool/*'
autoconfigure: true用法示例
您可以直接在中使用服务器 OpenAI游乐场,通过暴露它 吸烟 或类似的隧道工具。
OpenAI Playground示例
- 在OpenAI Playground中添加一个新工具。
- 使用以下设置配置工具:
- 统一资源定位符: http://localhost:8080/_mcp (或您的ngrok网址) - 标签:西里乌斯 - 认证:无 configure_tool
API调用示例
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4.1",
"tools": [
{
"type": "mcp",
"server_label": "Sylius",
"server_url": "$YOUR_MCP_SERVER_URL",
"require_approval": "never"
}
],
"input": [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Find me red shoes"
}
]
}
],
"max_output_tokens": 1024
}'安全问题
如果您认为您发现了安全问题,请不要使用问题跟踪器,也不要公开发布。 相反,所有安全问题都必须发送至 security@sylius.com
社区
为了进行在线交流,我们邀请您通过以下方式与我们和其他用户聊天 Sylius Slack.
许可证
此插件的源代码完全免费,并根据MIT许可证条款发布。
