MCP E-commerce Server
# MCP E-commerce Server
A comprehensive Model Context Protocol (MCP) server for e-commerce product management with CRUD operations, AI-powered descriptions, and database integration.
## Features
- ๐๏ธ **Complete CRUD Operations** - Create, read, update, delete products
- ๐ค **AI-Powered Descriptions** - Automatic product description generation using MCP sampling
- ๐ **Database Integration** - MySQL database with proper schema
- ๐ **Smart Search** - Search products by name with pagination
- ๐ฆ **Low Stock Monitoring** - Resource for tracking inventory levels
- ๐ **Dual Transport Support** - Both stdio and HTTP/SSE transports
- ๐ง **TypeScript** - Fully typed with Zod validation
- ๐ **MCP Resources** - Product catalog and low-stock resources
- ๐ฏ **MCP Prompts** - Pre-built prompt templates
## Quick start
```bash
# 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
```
The MCP server prints nothing special; it waits on stdio for a client like Claude Desktop / MCP Inspector / Apps SDK to connect.
## Notes
- This is intentionally minimal and tutorialโfriendly.
- All database params come from environment variables.
- You can extend with transactions, pagination, auth, etc.
#package.json
npm link
npm login
npm publish --access public
TDQS
Scored across 4 tools
add_product and add_product_smart have nearly identical purposes, with the latter being a superset variant (AI-generated description if missing), so an agent cannot reliably decide which to call. delete_product and get_product_by_id are clearly distinct, but the create pair creates real misselection risk.
Names are snake_case verb_noun (add_product, delete_product, get_product_by_id), which is mostly consistent. The '_smart' suffix and '_by_id' qualifier are minor deviations but remain readable and follow the overall pattern.
Four tools is on the thin side for an e-commerce product server. It's borderline rather than extreme, but the surface feels under-scoped given the domain.
There is no update operation (price/quantity/description changes) and no list/browse products capability, leaving only create (twice), delete, and get-by-id. These gaps will cause agent failures for common catalog management workflows.