EC-CUBE MCP服务器
用于EC-CUBE4的MCP(Model Context Protocol)服务器。 通过EC-CUBE的GraphQL API,可以通过Claude等AI助手进行商品的检索、库存确认、库存更新。
必要要件
- EC-CUBE 4.3以上
- 已安装Web API插件(Api42)
- Node.js 18以上
- Claude Desktop或Claude Code(其中一方)
快速启动
无需命令即可安装(面向初学者)
- 最新版本 从下载启动器
- 苹果电脑: launcher-mac.zip 展开 eccube-mcp-setup.command 列表框中,此格式对应于条目“无” - 视窗: launcher-windows.zip 展开 eccube-mcp-setup.bat 列表框中,此格式对应于条目“无”
- 浏览器将自动打开。只需输入EC-CUBE的URL和访问令牌,按下“注册Claude”按钮
- 重新启动Claude后就可以使用了
Mac的注意事项:如果首次启动时出现安全警告,请右键单击→选择“打开”。
需要Node.js:启动启动器 进行动态观察时的轴心点。如果未安装,则显示警报。
______________________________________________________________________
从命令行设置
1.下载
要从发放中获取分发包:
- 最新版本 从
eccube-mcp-server-vX.X.X.zip下载并展开 - 在部署的目录中:
npm install --omit=dev # 実行に必要な依存パッケージのみインストール
npm run setup要克隆存储库:
git clone https://github.com/kurozumi/eccube-mcp-server.git
cd eccube-mcp-server
npm install
npm run setup2.EC-CUBE的访问令牌获取方法
在EC-CUBE管理画面中 设定→API管理→OAuth管理 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
3.重新启动Claude
注册后,重新启动Claude Desktop或Claude Code即可使用EC-CUBE。
可用工具
工具|说明| |--------|------| | search_products 用关键字(商品名、商品代码)检索商品。获取价格和库存信息 | check_stock |指定商品名或商品代码确认库存数量| | update_stock 指定商品规格代码更新库存数。也可以设置库存无限 | analyze_sales |指定期间の卖上を日次・月次で集计。注文件数・卖上合计・平均注文金额を取得| | get_sales_ranking 以销售数量、销售额对指定期间的畅销商品进行排名显示
自定义工具
~/.eccube-mcp/custom-tools.json 中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长。如果文件不存在,则正常启动。
定义文件: ~/.eccube-mcp/custom-tools.json
{
"tools": [
{
"name": "get_monthly_revenue",
"description": "月別売上を集計",
"query": "{ orders { id totalPrice } }",
"inputSchema": {
"type": "object",
"properties": {
"from": { "type": "string", "description": "開始日(YYYY-MM-DD)" },
"to": { "type": "string", "description": "終了日(YYYY-MM-DD)" }
},
"required": ["from", "to"]
}
}
]
}字段列表:
|字段|必需|说明| |-----------|------|------| | name |是|工具名称| | description 是工具说明。在选择工具时参照Claude | query |是|要执行的GraphQL查询| | inputSchema 否|输入参数的方案定义|
inputSchema.properties 每个字段都可以包含以下键:
|键|说明| |-----|------| | type | 型(string、number 按钮关闭对话框 | description Claude理解参数的含义并传递适当的值。写得越具体精度越高
使用例
指定MCP服务器名搭话
Claude可能同时拥有多个MCP服务器和工具。如果未指定服务器名称,Claude可能会不确定对哪个系统的操作,并要求进行确认。设置时注册的服务器名称(默认为 eccube)包含在对话的开头,可以毫不犹豫地操作EC-CUBE。
# 曖昧な例(どのシステムへの操作か不明なため確認が入ることがある)
「商品一覧を表示して」
「在庫を確認して」
# 明確な例(サーバー名 eccube を先頭に付ける)
「eccube の商品一覧を表示して」
「eccube で在庫が10個以下の商品を教えて」
「eccube の商品コードABC-001の在庫を50個に更新して」“在EC-CUBE中~”的明示方法也同样有效。
Claude可提供:
- “请告诉我eccube上库存在10个以下的商品”
- “在eccube上确认〇〇商品的库存”
- “将eccube的商品代码ABC—001的库存更新为50个”
- “在eccube上搜索△△,一览价格和库存”
- “eccube上个月的销售额按月统计”
- “请按销售顺序告诉我eccube本月的畅销商品前10名”
区分使用多个EC-CUBE
您可以注册和使用多个EC-CUBE,包括生产和转移环境。
登録方法
在设置画面的“服务器名称”中输入可以区分的名称,分别注册。已注册的服务器会在设置画面上部列出,即使忘记名字也可以确认。
|服务器名称|用途| |-----------|------| | eccube-production |本番环境| | eccube-staging |登台环境|
如何指导Claude
只需直接用对话传达服务器名,Claude就会区分使用对应的EC-CUBE。
「eccube-staging の在庫を確認して」
→ ステージング環境のEC-CUBEに接続して在庫を確認
「eccube-production の商品コードABC-001の在庫を50個に更新して」
→ 本番環境のEC-CUBEに接続して在庫を更新如果省略了服务器名称,请自动选择注册了Claude的EC-CUBE。
环境变数
| 变数名 | 必须 | 说明 |
|---|---|---|
ECCUBE_API_URL |是|EC-CUBE站点的URL(例如: https://your-eccube-site.com) | ||
ECCUBE_ACCESS_TOKEN |是|通过Web API插件提交的访问令牌| | ||
ECCUBE_REFRESH_TOKEN |否|用于自动更新访问令牌的刷新令牌| | ||
ECCUBE_CLIENT_ID |否|OAuth客户端ID| | ||
ECCUBE_CLIENT_SECRET |否|OAuth客户端机密| |
ECCUBE_REFRESH_TOKEN・ECCUBE_CLIENT_ID・ECCUBE_CLIENT_SECRET 中所述的工具,调整墙的布局和几何形状。
手动设置(高级)
也可以不使用GUI设置而手动设置。
克劳德代码
~/.claude.json 编辑:
{
"mcpServers": {
"eccube": {
"type": "stdio",
"command": "node",
"args": ["/path/to/eccube-mcp-server/build/index.js"],
"env": {
"ECCUBE_API_URL": "https://your-eccube-site.com",
"ECCUBE_ACCESS_TOKEN": "your-access-token",
"ECCUBE_REFRESH_TOKEN": "your-refresh-token",
"ECCUBE_CLIENT_ID": "your-client-id",
"ECCUBE_CLIENT_SECRET": "your-client-secret"
}
}
}
}克劳德桌面
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"eccube": {
"command": "node",
"args": ["/path/to/eccube-mcp-server/build/index.js"],
"env": {
"ECCUBE_API_URL": "https://your-eccube-site.com",
"ECCUBE_ACCESS_TOKEN": "your-access-token",
"ECCUBE_REFRESH_TOKEN": "your-refresh-token",
"ECCUBE_CLIENT_ID": "your-client-id",
"ECCUBE_CLIENT_SECRET": "your-client-secret"
}
}
}
}如果不使用刷新标记 ECCUBE_REFRESH_TOKEN・ECCUBE_CLIENT_ID・ECCUBE_CLIENT_SECRET 中所述修改相应参数的值。
注意事项
- 库存更新会立即反映到数据库中,无法取消。 执行前请务必确认内容。
- 访问令牌的有效期为1小时。设置刷新标记时会自动更新。
- 从个人信息保护的角度出发,未实施对客户/订单信息的访问。
关于HTTPS・自签名证书
如果EC-CUBE在本地环境中使用HTTPS(自签名证书),则Node.js的 fetch 默认情况下为TLS错误。
建议:信任自签名证书
# 環境変数に証明書パスを設定する
NODE_EXTRA_CA_CERTS=/path/to/your/cert.pem node build/index.js要附加到Claude Code设置:
"env": {
"ECCUBE_API_URL": "https://your-store.example.com",
"ECCUBE_ACCESS_TOKEN": "your-access-token",
"NODE_EXTRA_CA_CERTS": "/path/to/your/cert.pem"
}注意: NODE_TLS_REJECT_UNAUTHORIZED=0 由于完全禁用TLS验证,因此存在中间人攻击(MITM)的风险。请勿在生产环境中使用。参考记事
相关链接
许可证
GPL-2.0
作者
黑泉明
https://a-zumi.net
