电商产品管理服务器

一个全面的模型上下文协议(MCP)服务器,用于电商产品管理,支持CRUD操作、AI生成产品描述和数据库集成。

  • by andy5566w
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 andy5566w/mcp

使用说明

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 配置问题:

  1. 检查CWD(工作目录)设置 ⚠️ 最常见的问题

    • 在 Cursor Settings → MCP 中,必须设置CWD 为项目根目录
    • CWD 应该是:/Users/caichuixue/playground2/mcp-ecommerce-crud
    • 如果没有设置CWD,Cursor 可能无法找到 package.json 和 node_modules
  2. 确认命令和参数正确

    • 命令: npm(或使用绝对路径,如 /usr/local/bin/npm)
    • 参数:
      • run
      • dev:mcp
    • 不要使用 npm run dev:mcp 作为单一参数
  3. 使用诊断脚本检查配置

    ./scripts/check-mcp-config.sh
    

    这个脚本会检查所有必要的配置和依赖

  4. 检查Cursor 的MCP 日志

    • 打开Cursor 的开发者工具(Help→Toggle Developer Tools)
    • 查看Console 中的MCP 相关错误讯息
    • 或查看Cursor 的MCP 日志输出
  5. 如果使用 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
  6. 尝试使用绝对路径

    • 如果相对路径不工作,尝试使用绝对路径:
    • 命令: /usr/local/bin/npm(或 which npm 的输出)
    • 参数: run、dev:mcp
    • 当前工作目录: /Users/caichuixue/playground2/mcp-ecommerce-crud
  7. 重启Cursor

    • 完全关闭Cursor(不是只关闭窗口)
    • 重新打开Cursor
    • 等待MCP 服务器连接(可能需要几秒钟)
  8. 检查环境变数

    • 确保 .env 文件在项目根目录
    • 如果 Cursor 的 MCP 配置有 env 选项,可以手动设置环境变数

服务器尚未创建,返回空产品錯誤

日志 Handling ListOfferings action, server stored: false / Server not yet created, returning empty offerings 来自 Cursor 的MCP 客户端,表示Cursor 在向你的MCP server 要offerings(工具列表)时,还没有成功建立/储存与该server 的联机。常见原因:

  1. 启动指令错误
    Cursor 必须用「可执行」的指令启动你的server。请在Cursor 的MCP 设定里使用下面其中一种方式,并把路径改成你项目实际位置。

    方式A:用项目内的 npm run dev:mcp(开发时建议)
    在Cursor Settings →MCP 里新增server,例如:

    • 命令: npm 或 pnpm
    • 参数:
      • run
      • dev: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名称)
  2. 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已就绪。
  3. 验证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服务是否运行
    • 如果是其他错误,请检查环境变数和依赖是否正确安装
  4. 数据库联机检查
    现在MCP服务器会在启动时检查数据库联机。如果数据库联机失败,服务器会在启动时就报错并退出,而不是等到调用工具时才发现问题。这有助于及早发现配置问题。

备注

  • 这是有意最小化和教程友好的。
  • 所有数据库参数都来自环境变量。
  • 您可以使用事务、分页、身份验证等进行扩展。

#package.json npm链接

NPM登录 npm发布--访问公共