Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Ai Online Store

FreeNot checked

πŸ€– AI-powered e-commerce platform with intelligent chat assistants, semantic product search via RAG, and real-time streaming charts. A proof-of-concept showcasi

GitHubEmbed

About

πŸ€– AI-powered e-commerce platform with intelligent chat assistants, semantic product search via RAG, and real-time streaming charts. A proof-of-concept showcasing MCP servers and advanced AI integration patterns.

README

Realtime Sales Dashboard Interactive Chart Streaming
AI Analytics Semantic Search

πŸš€ Real-time Data Streaming & Interactive AI Charts

Experience the next generation of e-commerce admin interfaces. Ask questions in plain English and watch as complex data transforms into live, interactive charts right before your eyes.

Note: This project is a Proof of Concept (POC) demonstrating advanced AI integration patterns. It serves as a reference implementation for MCP servers, RAG, and streaming UI components. While fully functional, it uses simplified infrastructure (e.g., SQLite) and is not intended for production deployment as-is.

A modern e-commerce platform demonstrating cutting-edge AI technologies:

  • πŸ“Š Interactive Charts Streaming - Watch datasets render into visualization in real-time
  • ⚑ Real-time Data - Live inventory and sales tracking via SSE (Server-Sent Events)
  • πŸ€– LLM Integration (Gemini/OpenAI) with streaming responses
  • πŸ”§ Tool Calling for real-time data access
  • πŸ” RAG (Retrieval Augmented Generation) for semantic product search
  • πŸ”Œ MCP Servers (Model Context Protocol) for modular AI tools

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         SmartShop AI                            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚  β”‚   Frontend   │───▢│   API        │───▢│   Database   β”‚       β”‚
β”‚  β”‚   (React)    β”‚    β”‚   (Express)  β”‚    β”‚   (SQLite)   β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚                             β”‚                                   β”‚
β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”                          β”‚
β”‚                    β”‚                 β”‚                          β”‚
β”‚              β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”                   β”‚
β”‚              β”‚   LLM     β”‚    β”‚   RAG       β”‚                   β”‚
β”‚              β”‚ (Gemini)  β”‚    β”‚ (Embeddings)β”‚                   β”‚
β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β”‚
β”‚                                                                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                    MCP Servers                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚   β”‚
β”‚  β”‚  β”‚ Products  β”‚  β”‚  Orders   β”‚  β”‚    Analytics      β”‚     β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  React Frontend │◄───►│   Vite Proxy     β”‚
β”‚   (port 5173)   β”‚     β”‚   /api β†’ :3001   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚    Express API   β”‚
                        β”‚   (port 3001)    β”‚
                        β”‚   - Auth/Shop    β”‚
                        β”‚   - Cart/Orders  β”‚
                        β”‚   - Chat (AI)    β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚                  β”‚                  β”‚
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚ MCP Products   β”‚ β”‚  MCP Orders    β”‚ β”‚  MCP Analytics β”‚
    β”‚  (port 3010)   β”‚ β”‚  (port 3011)   β”‚ β”‚   (port 3012)  β”‚
    β”‚  HTTP + SSE    β”‚ β”‚  HTTP + SSE    β”‚ β”‚   HTTP + SSE   β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β”‚                  β”‚                  β”‚
              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚   SQLite DBs     β”‚
                        β”‚  smartshop.db    β”‚
                        β”‚  vectors.db      β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tech Stack

Layer Technology
Runtime Bun 1.3+
Monorepo Turborepo
Frontend React 18 + Vite 6 + Tailwind CSS
Backend Express.js
Database SQLite (bun:sqlite)
LLM Gemini 2.5 Flash / OpenAI GPT-4
Embeddings Gemini Embedding-001 (768 dimensions)
MCP @modelcontextprotocol/sdk
Charts Recharts

Quick Start

Prerequisites

Installation

# Install dependencies
bun install

# Set up environment
cp apps/api/.env.example apps/api/.env
# Add your GEMINI_API_KEY to .env

Environment Variables

Create apps/api/.env by copying the example:

cp apps/api/.env.example apps/api/.env

Then edit .env with your API keys:

GEMINI_API_KEY=your-gemini-api-key
# OR
OPENAI_API_KEY=your-openai-api-key

JWT_SECRET=your-jwt-secret
PORT=3001

Running

bun run dev

# Frontend: http://localhost:5173
# API: http://localhost:3001

Test Accounts

Role Email Password
Admin [email protected] admin123
Customer [email protected] customer123

Features

AI Chat Assistant

  • Streaming responses via SSE
  • Role-based tools (customer vs admin)
  • Conversation history

RAG Semantic Search

# Initialize (admin only)
curl -X POST http://localhost:3001/admin/rag/init -H "Authorization: Bearer <token>"

# Search
curl "http://localhost:3001/shop/semantic-search?q=something+for+gaming"

Streaming Charts (Admin)

  • "Show me revenue by category" β†’ Pie chart
  • "Sales trend for the last 30 days" β†’ Line chart
  • "Top 5 selling products" β†’ Bar chart

MCP Servers

Server Tools
Products search_products, get_product_details, get_reviews
Orders get_orders, get_order_details, get_spending
Analytics get_dashboard, get_top_products, get_revenue

Project Structure

ai-online-store/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ api/                 # Express API
β”‚   β”‚   └── src/
β”‚   β”‚       β”œβ”€β”€ services/
β”‚   β”‚       β”‚   β”œβ”€β”€ chat/    # Chat + tools
β”‚   β”‚       β”‚   β”œβ”€β”€ llm/     # Gemini/OpenAI
β”‚   β”‚       β”‚   └── rag/     # Embeddings + Vector store
β”‚   β”‚       └── routes/      # API endpoints
β”‚   β”œβ”€β”€ mcp-analytics/       # Analytics MCP Server
β”‚   β”œβ”€β”€ mcp-orders/          # Orders MCP Server
β”‚   β”œβ”€β”€ mcp-products/        # Products MCP Server
β”‚   └── web/                 # React frontend
└── packages/shared/         # Shared types

Implementation Status

  • Foundation (monorepo, database, API)
  • Core Shop Features (products, cart, orders)
  • AI Chat Infrastructure (LLM, tools, streaming)
  • MCP Servers Integration
  • RAG System (embeddings, semantic search)
  • Streaming Charts & Visualizations

Scripts

bun run dev      # Start all services
bun run build    # Build for production
bun run clean    # Clean build artifacts

License

MIT

from github.com/nalindard/ai-online-store

Installing Ai Online Store

This server has no published package β€” it is built from source. Open the repository and follow its README.

β–Έ github.com/nalindard/ai-online-store

FAQ

Is Ai Online Store MCP free?

Yes, Ai Online Store MCP is free β€” one-click install via Unyly at no cost.

Does Ai Online Store need an API key?

No, Ai Online Store runs without API keys or environment variables.

Is Ai Online Store hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Ai Online Store in Claude Desktop, Claude Code or Cursor?

Open Ai Online Store on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install β€” the config is generated automatically, no JSON editing.

Related MCPs

Compare Ai Online Store with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All communication MCPs