Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"shopping-mcp-server": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Reactive shopping backend exposed as Model Context Protocol (MCP) tools over Spring WebFlux + SSE.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in ecommerce
Production-grade MCP server and CLI tool for Shopify Admin GraphQL API — 49+ tools, YAML-extensible, dual auth, dual transport, Docker-ready
A command line tool for setting up commercetools MCP server
35+ AI tools for TCG card grading, Monte Carlo pricing, 370K+ product search. BYOK.
This is the reference implementation for the mcp server
MCP Security Weekly
Get CVE alerts and security updates for Shopping_mcp_server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Reactive shopping backend exposed as Model Context Protocol (MCP) tools over Spring WebFlux + SSE.
This project is designed for AI agents (and any MCP-compatible client) to perform end-to-end shopping actions such as product discovery, cart management, wishlist operations, and order lifecycle handling.
The code follows a clear layered design:
src/main/java/com/example/shopping/tools)
: MCP-exposed methods (@Tool) and tool-level error mapping.src/main/java/com/example/shopping/service)
: Business rules, validations, and transactional workflows.src/main/java/com/example/shopping/repository)
: Reactive DB access using ReactiveCrudRepository + custom SQL queries.src/main/java/com/example/shopping/domain)
: R2DBC-mapped entities.src/main/java/com/example/shopping/dto)
: Tool response contracts.Mono/Flux.@Transactional) for critical operations (e.g., order placement/cancellation).src/main/java/com/example/shopping
├── ShoppingMcpApplication.java
├── config/
│ ├── McpServerConfig.java
│ └── R2dbcConfig.java
├── domain/
├── dto/
├── init/
│ └── DatabaseInitializer.java
├── repository/
├── service/
├── tools/
└── util/
src/main/resources
├── application.yml
└── schema.sql
Main runtime config is in src/main/resources/application.yml.
Current defaults:
8085r2dbc:h2:file:///./data/shopping-db;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSEssecom.example.shopping: DEBUGcom.example.shopping.tools: INFOH2 is persisted to the project-local data/ directory.
Expected DB file:
data/shopping-db.mv.dbDefined in src/main/resources/schema.sql.
Tables:
productssessionscart_itemswishlist_itemsordersorder_itemsNotable schema decisions:
cart_items and wishlist_items enforce one row per (session_id, product_id).order_items stores denormalized product_name and unit_price snapshots.PLACED, CANCELLED, etc.).On startup, DatabaseInitializer performs:
data/ directory exists.schema.sql statements.products table count.Seed catalog:
If products already exist, seeding is skipped.
The following 18 tools are exposed via classes in tools/:
createSessionproductSearchByNamegetProductDetailsByIdcheckProductStockgetProductsByCategorylistCategoriesaddProductToCartupdateCartItemQuantityremoveProductFromCartshowCartDetailsaddProductToWishlistshowWishlistDetailsremoveFromWishlist