OVS MCP
by ncleton
README.md
# OVS MCP
Serveur [Model Context Protocol](https://modelcontextprotocol.io/) non officiel pour [Official Vegan Shop](https://www.officialveganshop.com/). Ajoutez ce dépôt à Codex, Claude Code ou tout client MCP compatible, connectez votre compte OVS, puis recherchez des produits et préparez votre panier en langage naturel.
Projet indépendant, sans affiliation avec Official Vegan Shop.
## Installation dans un client MCP
Prérequis : Node.js 22.12 ou plus récent.
Utilisez directement le dépôt GitHub, sans clone local :
```json
{
"mcpServers": {
"ovs": {
"command": "npx",
"args": [
"-y",
"--package=github:ncleton/ovs-mcp",
"ovs-mcp"
]
}
}
}
```
Cette configuration utilise le transport MCP `stdio`, commun aux clients de bureau. Redémarrez le client après l’ajout.
## Connexion
Demandez simplement :
> Connecte mon compte Official Vegan Shop.
Le client appelle `connect_ovs` et affiche un lien de connexion local sécurisé. Saisissez vos identifiants sur cette page, puis revenez dans le client.
Vous n’avez pas encore de compte ? Cette même page propose le lien officiel de création de compte OVS.
- Le mot de passe ne passe jamais dans la conversation ni dans le protocole MCP.
- Le mot de passe n’est jamais enregistré.
- Seuls les cookies nécessaires à la session sont conservés localement dans un fichier privé (`0600`).
- Les outils ne renvoient ni profil client, ni email, ni adresse.
Exemples de demandes :
> Cherche du seitan disponible et montre-moi les cinq meilleurs résultats.
> Ajoute deux unités du premier produit au panier.
> Montre-moi le panier OVS.
Toute modification du panier est prévisualisée et exige une confirmation liée à l’état exact du panier.
La recherche retourne `id`, `productAttributeId` et
`productCustomizationId`. Ces trois identifiants désignent ensemble la ligne
exacte ; le serveur refuse une mutation qui omet la variante ou la
personnalisation au lieu de supposer silencieusement la valeur `0`.
## Outils MCP
| Outil | Fonction |
|---|---|
| `connect_ovs` | Vérifie la connexion ou fournit le lien de connexion sécurisé |
| `search_products` | Recherche le catalogue OVS en direct |
| `get_cart` | Lit le panier sans exposer les données du compte |
| `add_to_cart` | Prévisualise, confirme et ajoute un produit |
| `remove_from_cart` | Prévisualise, confirme et retire un produit |
## CLI
```bash
npx -y --package=github:ncleton/ovs-mcp ovs connect
npx -y --package=github:ncleton/ovs-mcp ovs search "seitan"
npx -y --package=github:ncleton/ovs-mcp ovs cart
npx -y --package=github:ncleton/ovs-mcp ovs add 17170 --attribute 0 --customization 0
```
La commande `add` ou `remove` sans `--confirm` ne modifie rien : elle retourne
l’état attendu et une empreinte du panier. Pour appliquer ensuite exactement
cette prévisualisation, répétez la commande avec `--confirm` et
`--cart-fingerprint <empreinte-retournée>`. Si le panier a changé entre les
deux appels, la commande échoue et exige une nouvelle prévisualisation.
Une écriture dont la relecture devient impossible ou incohérente échoue avec
un objet structuré contenant `cart_may_be_partially_modified=true`, les
identifiants exacts de la cible, `requested_units` et `applied_units`.
`applied_units` vaut `null` tant qu’une relecture indépendante ne permet pas de
prouver le nombre réellement appliqué. Le connecteur ne répète jamais
automatiquement une écriture ambiguë.
## Développement
```bash
npm ci
npm run verify
```
Le serveur HTTP optionnel n’écoute que sur la boucle locale :
```bash
npm run compile
node dist/index.js --transport http
```
## Sécurité et confidentialité
Le dépôt ne contient aucun compte, identifiant, cookie, panier ou fixture personnelle. Le contrôle de confidentialité analyse aussi le paquet distribuable avant publication. Consultez [SECURITY.md](SECURITY.md) pour signaler un problème sans publier de secret.
Les fixtures de test sont exclusivement synthétiques, à l’exception de
l’enveloppe vide publique et expurgée du mini-panier. Le contrat observé et les
limites de chaque preuve sont documentés dans
`skills/ovs-mcp/references/observed-contract.md`.
Licence MIT.
TDQS
A4.2/5.0
Scored across 5 tools
Disambiguation5/5
Each tool targets a distinct concern: connection, product search, cart read, add, and remove. There is no overlap or ambiguity between tools.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern with underscores: connect_ovs, search_products, get_cart, add_to_cart, remove_from_cart. Naming is uniform and predictable.
Tool Count5/5
The set of 5 tools is well-scoped for a shopping cart and catalog server. Each tool serves a clear function without unnecessary bloat or missing essentials.
Completeness4/5
The surface covers connection, catalog search, and cart CRUD operations (read, add, remove). Minor gaps include lack of an explicit update quantity tool, but add/remove can adjust quantities, so overall coverage is solid.
Maintenance
ActivityMaintained
ResponsivenessNo issues