velora-mcp-copilote

velora-mcp-copilote

Enables AI agents to assist sales advisors of the fictional e-commerce Velora by providing tools to search products, check stock, get order status, and handle returns.

Category
Visit Server

README

Velora — Copilote Conseiller (POC MCP)

POC du Learning Lab M2DFS sur le Model Context Protocol (MCP).

Il comprend :

  • un serveur MCP (TypeScript) qui expose le catalogue, le stock, les commandes et les politiques de l'e-commerce fictif Velora ;
  • un agent IA compatible OpenAI qui s'en sert pour assister les conseillers, utilisable avec OpenAI, un modèle local (Ollama / LM Studio) ou tout fournisseur compatible — configurable uniquement via .env.

📄 Rapport complet : docs/rapport/ (5 blocs) — version assemblée : docs/rapport/RAPPORT.md. 🎓 Atelier + kata : docs/atelier/. 🧪 Preuves d'exécution : docs/demo/.


⭐ Note importante — tester SANS clé payante

L'agent utilise l'API compatible OpenAI. Vous pouvez donc le faire tourner :

  • avec un modèle local GRATUIT (Ollama ou LM Studio) → aucune clé ;
  • avec OpenAI (clé payante) ;
  • avec tout autre fournisseur compatible (Groq, Together, OpenRouter…).

Il suffit de modifier les variables LLM_* dans .env.

De plus, le serveur MCP ne dépend d'aucun LLM : il se teste seul, sans aucune clé, via npm test ou le MCP Inspector. Cette même indépendance permet aussi de le brancher sur Claude Desktop (cf. claude_desktop_config.example.json).


Prérequis

  • Node.js 20+ et npm.
  • (Optionnel, pour la démo agent gratuite) Ollama.

Installation (sans friction)

npm install
cp .env.example .env        # profil "Ollama local" actif par défaut
npm run db:setup            # crée la base SQLite + données fictives Velora
npm run build               # compile le serveur (dist/)

Vérifier que tout marche — sans aucune clé

npm test                    # 12 tests (outils MCP + boucle agent simulée)
npm run showcase            # appels réels des outils -> docs/demo/outils-demo.md
npm run inspect             # MCP Inspector sur http://localhost:6274

Lancer l'agent (copilote)

Option A — modèle local gratuit (recommandé pour tester)

# 1) installer Ollama puis récupérer un modèle qui gère le tool-calling :
ollama pull llama3.1
# (ollama tourne en service ; sinon `ollama serve`)

# 2) .env est déjà réglé sur le profil Ollama. Lancer :
npm run agent -- "Où en est la commande VEL-1003 ?"
npm run demo                # rejoue plusieurs questions -> docs/demo/transcripts/

Option B — OpenAI (clé payante)

Dans .env, commentez le profil Ollama et décommentez le profil OpenAI (LLM_MODEL=gpt-4o-mini recommandé), renseignez LLM_API_KEY, puis :

npm run agent -- "Avez-vous la robe Lila en taille S ?"

⚠️ Le modèle choisi doit supporter le function/tool calling. Reco locale fiable : llama3.1 (8B) ; alternatives : qwen2.5, mistral.

Configuration .env

Variable Rôle
DATABASE_URL Base SQLite (laisser file:./dev.db)
LLM_BASE_URL Endpoint compatible OpenAI (Ollama/OpenAI/LM Studio…)
LLM_API_KEY Clé API (valeur factice acceptée par Ollama)
LLM_MODEL Nom du modèle
LLM_TEMPERATURE Température (défaut 0.2)
AGENT_MAX_STEPS Nb max d'allers-retours tool-use (défaut 6)

Outils & ressources exposés

Outils : search_products, get_product, check_stock, get_order_status, get_return_policy, create_return_request. Ressources : policy://returns, policy://shipping. Prompt : conseiller_reply.

Structure du projet

src/
  server.ts            # serveur MCP (stdio)
  db.ts                # client Prisma (adapter SQLite)
  tools/               # 1 fichier par outil (Zod + handler)
  resources/           # ressources + politiques (.md)
  prompts/             # prompt conseiller
  agent/               # config, mcpClient, bridge (MCP↔OpenAI), agent, cli
prisma/                # schema + migrations + seed
tests/                 # vitest (outils, bridge, boucle agent)
scripts/               # showcase, demo, smoke, build du rapport
docs/                  # rapport, atelier (kata), preuves, diagrammes

Scripts npm

Script Effet
npm run db:setup génère le client + migre + seed
npm run build compile TypeScript → dist/
npm test tests (sans clé)
npm run showcase appels réels des outils → docs/demo/outils-demo.md
npm run inspect MCP Inspector
npm run agent -- "…" pose une question au copilote (LLM requis)
npm run demo transcripts multi-questions (LLM requis)
npm run report:html assemble le rapport → docs/rapport/RAPPORT.html

Exporter le rapport en PDF

npm run report:html

Ouvrez docs/rapport/RAPPORT.html puis Imprimer → Enregistrer en PDF. (Le Markdown des docs/rapport/*.md se lit aussi directement sur GitHub.)

Sécurité (POC)

Outils en lecture seule par défaut ; seule écriture create_return_request restreinte aux commandes livrées (mention human-in-the-loop) ; system prompt anti-invention ; schémas d'entrée validés (Zod) ; logs serveur sur stderr.

Stack

TypeScript · @modelcontextprotocol/sdk · Prisma 7 + SQLite · SDK openai · Zod · Vitest.

Licence

MIT.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured