使用说明
MCP电子商务服务器
一个全面的模型上下文协议(MCP)服务器,用于电子商务产品管理,具有CRUD操作、AI驱动的描述和数据库集成。
特性
- 🛍️ 完成CRUD操作 -创建、读取、更新、删除产品
- 🤖 AI驱动的描述 -使用MCP采样自动生成产品描述
- 📊 数据库集成 -具有正确模式的MySQL数据库
- 🔍 智能搜索 -按名称和页码搜索产品
- 📦 低库存监控 -用于跟踪库存水平的资源
- 🌐 双重运输支持 -stdio和HTTP/SSE传输
- 🔧 TypeScript -完全键入Zod验证
- 📋 MCP资源 -产品目录和低库存资源
- 🎯 MCP提示 -预构建提示模板
快速开始
# 1) Install deps
npm i
# 2) Prepare env
cp .env.example .env
# 3) Create schema (optional, run in your MySQL)
# See sql/schema.sql
# 4) Run demo (non-MCP) usage
npm run dev:demo
# 5) Run MCP server (stdio transport)
npm run dev:mcp
# 6) 如果 Cursor 無法連接 MCP,運行診斷腳本
./scripts/check-mcp-config.sh
MCP服务器不打印任何特殊内容;它在stdio上等待像Claude Desktop/MCP Inspector/Apps SDK这样的客户端连接。
Cursor MCP 设定与常见错误
“未找到服务器信息”錯誤
这个错误来自 Cursor 的MCP 客户端,表示Cursor 无法找到或连接到你的MCP 服务器。这通常不是数据库联机问题,而是Cursor 的MCP 配置问题。
重要说明:
- MCP 服务器在启动时不会检查数据库联机(数据库联机是懒加载的)
- 只有在实际调用工具时才会尝试连接数据库
- 如果数据库联机失败,会在调用工具时才报错,而不是启动时
解决方法:
如果手动执行 npm run dev:mcp 能正常启动(看到“MCP server is running”),但Cursor 还是显示“No server info found”,通常是Cursor 的MCP 配置问题:
-
检查CWD(工作目录)设置 ⚠️ 最常见的问题
- 在 Cursor Settings → MCP 中,必须设置CWD 为项目根目录
- CWD 应该是:
/Users/caichuixue/playground2/mcp-ecommerce-crud - 如果没有设置CWD,Cursor 可能无法找到
package.json和node_modules
-
确认命令和参数正确
- 命令:
npm(或使用绝对路径,如/usr/local/bin/npm) - 参数:
rundev:mcp
- 不要使用
npm run dev:mcp作为单一参数
- 命令:
-
使用诊断脚本检查配置
./scripts/check-mcp-config.sh这个脚本会检查所有必要的配置和依赖
-
检查Cursor 的MCP 日志
- 打开Cursor 的开发者工具(Help→Toggle Developer Tools)
- 查看Console 中的MCP 相关错误讯息
- 或查看Cursor 的MCP 日志输出
-
如果使用 nvm 管理 Node.js ⚠️ 常见问题
- nvm 管理的Node.js 可能不在系统PATH 中,Cursor 可能找不到
npm - 解决方法:使用绝对路径
- 运行
which npm获取npm 的绝对路径 - 在Cursor MCP 配置中使用该绝对路径作为Command
- 例如:
/Users/caichuixue/.nvm/versions/node/v24.13.0/bin/npm - 或运行诊断脚本获取推荐配置:
./scripts/check-mcp-config.sh
- nvm 管理的Node.js 可能不在系统PATH 中,Cursor 可能找不到
-
尝试使用绝对路径
- 如果相对路径不工作,尝试使用绝对路径:
- 命令:
/usr/local/bin/npm(或which npm的输出) - 参数:
run、dev:mcp - 当前工作目录:
/Users/caichuixue/playground2/mcp-ecommerce-crud
-
重启Cursor
- 完全关闭Cursor(不是只关闭窗口)
- 重新打开Cursor
- 等待MCP 服务器连接(可能需要几秒钟)
-
检查环境变数
- 确保
.env文件在项目根目录 - 如果 Cursor 的 MCP 配置有
env选项,可以手动设置环境变数
- 确保
服务器尚未创建,返回空产品錯誤
日志 Handling ListOfferings action, server stored: false / Server not yet created, returning empty offerings 来自 Cursor 的MCP 客户端,表示Cursor 在向你的MCP server 要offerings(工具列表)时,还没有成功建立/储存与该server 的联机。常见原因:
-
启动指令错误
Cursor 必须用「可执行」的指令启动你的server。请在Cursor 的MCP 设定里使用下面其中一种方式,并把路径改成你项目实际位置。方式A:用项目内的
npm run dev:mcp(开发时建议)
在Cursor Settings →MCP 里新增server,例如:- 命令:
npm或pnpm - 参数:
rundev:mcp
- 当前工作目录(必须设置):设成此项目根目录
- 例如:
/Users/caichuixue/playground2/mcp-ecommerce-crud - 或相对路径(如果Cursor 支持):
${workspaceFolder}
- 例如:
方式 B:先 build 再用 node 跑
npm run build然后在MCP设定:
- 命令:
node - 参数:
dist/mcp/server.js(或你项目中的绝对路径)
方式C:用npx 跑已发布的package
若你已npm publish且Cursor是从项目外启动:- 命令:
npx - 参数:
-y、mcp-ecommerce-crud(或你的package名称)
- 命令:
-
MCP 1.0启动竞态
Cursor有时会在MCP server还没完成注册前就发送ListOfferings,导致「server尚未建立」、offerings为空。若设定正确但偶尔仍出现:- 重开Cursor或重载MCP,再试一次。
- 确认手动执行
npm run dev:mcp时,stderr会出现[ecommerce-mcp] MCP server is running on stdio (ready for ListOfferings),代表server已就绪。
-
验证server有启动
在终端执行:npm run dev:mcp若看到以下日志且没有崩溃,表示server本身正常:
[ecommerce-mcp] Checking database connection... [ecommerce-mcp] Database connection OK [ecommerce-mcp] MCP server is running on stdio (ready for ListOfferings)若崩溃会印出
[ecommerce-mcp] uncaughtException/Failed to start,可依错误讯息排查:- 如果是
ECONNREFUSED,表示数据库联机失败,请检查.env档案和MySQL服务是否运行 - 如果是其他错误,请检查环境变数和依赖是否正确安装
- 如果是
-
数据库联机检查
现在MCP服务器会在启动时检查数据库联机。如果数据库联机失败,服务器会在启动时就报错并退出,而不是等到调用工具时才发现问题。这有助于及早发现配置问题。
备注
- 这是有意最小化和教程友好的。
- 所有数据库参数都来自环境变量。
- 您可以使用事务、分页、身份验证等进行扩展。
#package.json npm链接
NPM登录 npm发布--访问公共