{
"mcpServers": {
"shopping-mcp-server": {
"command": "<see-readme>",
"args": []
}
}
}No install config available. Check the server's README for setup instructions.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
Apache-2.0. View license →
Is it maintained?
Last commit 35 days ago.
Will it work with my client?
Transport: sse. Compatibility not confirmed.
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Persistent memory using a knowledge graph
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Pre-build reality check. Scans GitHub, HN, npm, PyPI, Product Hunt — returns 0-100 signal.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
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