Skip to main content
Glama
seasayDev

makiti-mcp

by seasayDev

🛒 Makiti — MCP Shopping Assistant

Makiti est un serveur MCP (Model Context Protocol) qui agit comme assistant shopping intelligent. Il s’appuie sur Hound pour chercher le web et scraper les retailers, et fournit des outils MCP pour :

  • 🔍 rechercher des produits,

  • đŸ·ïž trouver le meilleur prix sur les retailers canadiens,

  • ⚖ comparer des items,

  • 💰 trouver les meilleurs deals,

  • 📈 estimer l’historique de prix.


🚀 Installation

git clone https://github.com/seasayDev/makiti-mcp.git
cd makiti-mcp
npm install

Related MCP server: Agora MCP

⚙ Configuration requise

Dépendance

Description

Node.js >= 18

Runtime requis

Hound MCP

Serveur MCP de recherche web (wrapper Hermes)

Hermes Agent

Pour consommer les outils Makiti via MCP

Architecture

Makiti ne parle pas à Hound par HTTP : il spawn Hound en sous-processus et communique en JSON-RPC stdio (protocole MCP), exactement comme le fait Hermes. Le chemin du wrapper Hound est configurable via la variable d'environnement HOUND_WRAPPER (défaut : /data/data/com.termux/files/home/.hermes/scripts/hound-wrapper.sh).

[ Agent / Hermes ] ──stdio──> [ Makiti MCP ] ──spawn──> [ Hound MCP ] ──> web

đŸ› ïž Outils disponibles

Rechercher des produits sur le web avec filtres de prix, marque, retailer, condition. Les résultats sont triés du moins cher au plus cher quand un prix est détecté.

{
  "query": "iPhone 15",
  "max_price": 1200,
  "brand": "Apple",
  "retailer": "amazon.ca",
  "condition": "new",
  "limit": 10
}

find_best_price ⭐ (nouveau)

Scraper directement les pages de recherche des retailers canadiens (Amazon.ca, Walmart.ca
) pour trouver le prix le plus bas rĂ©el, lu en direct sur les sites. Plus fiable que product_search car il lit les pages produits elles-mĂȘmes.

{
  "query": "usb flash drive 128gb",
  "retailers": ["amazon.ca", "walmart.ca"],
  "limit": 5
}

Retailers supportés : amazon.ca, walmart.ca, bestbuy.ca, canadiantire.ca, staples.ca, newegg.ca.

⚠ Best Buy Canada bloque le scraping automatisĂ© (HTTP 403) — les erreurs sont listĂ©es dans la rĂ©ponse.

product_compare

Comparer deux produits cĂŽte Ă  cĂŽte : specs, prix, verdict.

{
  "product_a": "iPhone 15",
  "product_b": "Samsung Galaxy S24",
  "category": "smartphone",
  "budget": 1100
}

find_deals

Trouver les deals/promo actifs pour un produit ou une catégorie (filtré sur la région Canada).

{
  "query": "Nike running shoes",
  "region": "Canada",
  "retailer": "amazon.ca",
  "limit": 10
}

price_history

Suivre/estimer l’historique de prix d’un produit sur plusieurs retailers.

{
  "product": "PlayStation 5",
  "retailers": ["amazon.ca", "bestbuy.ca", "walmart.ca"],
  "days_back": 90
}

makiti_guide

Obtenir des conseils d’utilisation selon ton scĂ©nario shopping.

{
  "scenario": "acheter un laptop sous 800 CAD"
}

🧠 Leçons apprises (retour d'expĂ©rience rĂ©el)

Makiti a été mis à l'épreuve sur une vraie recherche (« meilleur prix clé USB 128GB Canada »). Voici ce que cette expérience a révélé, et comment le code a été corrigé.

Leçon 1 — Les filtres site: tuent les recherches Hound

ProblĂšme : product_search gĂ©nĂ©rait des requĂȘtes comme USB flash drive 128GB site:amazon.ca price → 0 rĂ©sultat sur tous les moteurs de Hound. Cause : les opĂ©rateurs site: combinĂ©s Ă  des requĂȘtes longues font Ă©chouer les moteurs.

Correction :

  • plus aucun site: dans les requĂȘtes ;

  • les noms de retailers sont convertis en mots-clĂ©s (amazon.ca → amazon canada) ;

  • les requĂȘtes sont gardĂ©es courtes (< 8 mots).

Leçon 2 — Fallback automatique des moteurs de recherche

ProblÚme : pendant la session, les moteurs google et brave étaient bloqués (engine_blocked), donnant 0 résultat pendant plusieurs minutes.

Correction : hound-client.js implémente un fallback en 3 paliers :

  1. google, brave, duckduckgo, yahoo

  2. duckduckgo, yahoo, qwant, mojeek

  3. startpage, bing

Si un palier renvoie 0 résultat et des moteurs bloqués, on passe au palier suivant.

Leçon 3 — La recherche web seule ne suffit pas : il faut scraper les retailers

ProblÚme : les résultats web donnent des liens de blogs/deals, pas de prix fiables. La méthode gagnante : le fetch direct des pages de recherche des retailers (amazon.ca/s?k=..., walmart.ca/en/search?q=...) a donné les vrais prix en CAD, y compris les promotions en cours (Kingston 64GB à 13,97$ Walmart, PNY 128GB à 26,08$ Amazon).

Correction : nouvel outil find_best_price qui scrappe Amazon.ca et Walmart.ca en parallĂšle et extrait (produit, prix) avec une heuristique ligne par ligne.

Leçon 4 — Les rĂ©sultats « deals » partent en vrille gĂ©ographique

ProblÚme : find_deals sur « USB flash drive » renvoyait des deals hotukdeals (UK) et des sites pakistanais.

Correction : filtrage gĂ©ographique — on garde les hits contenant des indices canadiens (.ca, Canada, CAD, quĂ©bec, redflagdeals, slickdeals
) et on Ă©limine les indices Ă©trangers (hotukdeals, .co.uk, pakistan, karachi, indiamart
).

Leçon 5 — Le parsing de prix est un champ de mines

ProblÚme : les pages retailers mélangent prix réels (Now $13.97) et bruit (You save $6.02, $890 sans décimales, Up to $15, headers markdown ##).

Correction (heuristique actuelle) :

  • les lignes You save $X ne fournissent jamais un prix ;

  • on privilĂ©gie les prix avec dĂ©cimales ($13.97) ;

  • on ignore la navigation, les headers markdown, More buying choices, List:, You pay ;

  • les titres sont nettoyĂ©s (...284.6786 out of 5 stars. 28 reviews → nom seul).

Leçon 6 — La fraücheur compte

Les prix bougent vite. Toutes les rĂ©ponses rappellent que les prix sont relevĂ©s Ă  l'instant du fetch et doivent ĂȘtre vĂ©rifiĂ©s sur la page produit avant achat (taxes/livraison non incluses).


đŸ—ș Roadmap (amĂ©liorations futures)

  • Parsing JSON-LD/structured data des pages retailers (au lieu de l'heuristique lignes) pour des prix exacts + URLs produits.

  • Contournement Best Buy via le browser stealthy de Hound (actions click/form) — actuellement bloquĂ© 403.

  • price_alert — outil cron qui surveille un produit et notifie quand le prix passe sous un seuil.

  • Cache prix par produit (TTL court) pour Ă©viter de refrapper les retailers Ă  chaque appel.

  • Support USD→CAD pour les retailers amĂ©ricains (conversion + droits de douane indicatifs).

  • DĂ©tection de taxes/livraison par province depuis les pages produit.

  • compare_retailers — outil dĂ©diĂ© qui croise les prix d'un mĂȘme modĂšle sur 4+ retailers.


📩 Enregistrement dans Hermes

Dans ~/.hermes/config.yaml, ajoute :

mcp_servers:
  makiti:
    command: node
    args: ["/chemin/absolu/vers/makiti-mcp/server.js"]

Puis redémarre Hermes :

hermes gateway restart   # depuis un shell Termux, pas depuis le chat

Vérification :

hermes mcp list          # makiti doit apparaütre ✓ enabled
hermes mcp test makiti   # ✓ Connected + tools discovered

đŸ§Ș DĂ©veloppement / test

# Vérifier le handshake MCP + un outil réel
printf '%s\n%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"product_search","arguments":{"query":"iPhone 15","limit":3}}}' \
  | timeout 100 node server.js

⚠ Hound dĂ©marre en ~15 s au premier appel (proot Ubuntu). Patience sur le premier tools/call.


🔧 Scripts npm

npm start   # lancer le serveur MCP (alias node server.js)

📄 License

MIT © seasayDev

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that connects AI assistants to SearchAgora, enabling users to search for, discover, and purchase products across the web through natural language conversations.
    Last updated
    6
    2
  • A
    license
    -
    quality
    D
    maintenance
    MCP server for scraping product prices, offers, reviews, and details from Amazon, Google Shopping, Bol.com, and Coolblue via natural language commands, with spend-cap protections.
    Last updated
    228
    1
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    MCP server for finding, comparing, and ranking the cheapest real offers across eBay, Amazon, Craigslist, OfferUp, and Google Shopping, with tax estimation and exact-model filtering.
    Last updated
    6
    MIT

View all related MCP servers

Related MCP Connectors

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

  • Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.

  • Pocket Agent (aipocketagent.com) MCP server — read tools for personas, apps, and product info.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/seasayDev/makiti-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server