makiti-mcp
Search and find the best prices on Amazon.ca, including scraping product search pages to retrieve live prices in CAD.
Search and find the best prices on Newegg.ca, scraping product search results for live prices and deals.
Search and find the best prices on Walmart.ca, scraping product search pages for real-time pricing and current promotions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@makiti-mcpcompare iPhone 15 vs Samsung Galaxy S24 under $1000"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
đ 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 installRelated 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
product_search
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 :
google, brave, duckduckgo, yahooduckduckgo, yahoo, qwant, mojeekstartpage, 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 $Xne 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 chatVé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
Available Tools
6 toolsfind_best_priceA
Scrape Canadian retailer search pages directly (amazon.ca, walmart.ca, etc.) to find the actual lowest price for a product. More accurate than product_search because it reads live retailer pages. Best Buy Canada blocks automated access.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per retailer to return (default 5) | |
| query | Yes | Product to price (e.g. "usb flash drive 128gb", "iphone 15") | |
| retailers | No | Retailer domains to check (default: ["amazon.ca", "walmart.ca"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It reveals that the tool scrapes live pages and that Best Buy blocks access, but it does not disclose other potential behavioral issues like rate limiting, IP blocks from other retailers, or terms-of-service risks. The description is partially transparent but lacks a fuller safety and reliability disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: three sentences, each adding meaningful information. It leads with the core action, then differentiates from siblings, and ends with an important caveat. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (3 parameters, no output schema), the description provides good context: it explains the geographic scope, the direct scraping behavior, and a known blocker. However, it does not describe the return value structure or failure handling, which for a scraping tool could be relevant. Still, the core context is sufficiently covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add detailed meaning beyond the schema parameters; it only reinforces that the retailers are Canadian. The schema already explains query, limit, and retailers, so the description adds little incremental value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: scraping Canadian retailer search pages to find the actual lowest price. It uses specific verbs ('scrape', 'find') and distinguishes itself from sibling product_search by noting it reads live retailer pages, making it more accurate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly contrasts with product_search ('More accurate than product_search because it reads live retailer pages'), providing clear guidance on when to prefer this tool. It also warns that Best Buy Canada blocks automated access, implying not to expect results from that retailer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_dealsB
Hunt for active deals, promo codes, and discounts for a product or category.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max deals to return (default 10) | |
| query | Yes | Product, brand, or category to find deals for (e.g. "Nike shoes", "mechanical keyboard") | |
| region | No | Geographic region for deals (default: Canada) | |
| retailer | No | Focus on specific retailer (e.g. amazon.ca) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description merely restates the tool's purpose ('Hunt for active deals') and adds synonyms like 'promo codes' and 'discounts,' but it does not disclose whether results are filtered by activeness automatically, whether coupon validity is verified, or what the return structure looks like. This is a significant transparency gap beyond what the name and schema already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant or filler content. It is front-loaded with the core action and resource. Every phrase contributes meaning, and it is appropriately sized for a simple search tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters, no output schema, and no annotations. The description covers the core query intent but omits return-value details (e.g., does it return a list of deals with prices and coupon codes?), pagination/limit behavior, and regional defaults. Schema descriptions fill gaps on parameters, but the absence of output specification and usage context leaves the overall description only minimally complete for an agent to understand results and boundaries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all 4 parameters, covering 100% of them. The description itself adds no additional parameter-level detail beyond what the schema already contains. According to the rubric, when schema coverage is high (>80%), the baseline is 3, and there is no evidence of additional semantic value in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear action verb ('Hunt') and specifies the resource: active deals, promo codes, and discounts for a product or category. This distinguishes find_deals from sibling tools like product_search (searching products) and find_best_price (comparing prices). However, 'Hunt' is slightly informal, and the description does not explicitly contrast it with these siblings, so it falls short of a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for finding deals and discounts, and the query parameter is described as 'Product, brand, or category to find deals for.' There is no explicit guidance on when to choose this tool over alternatives like find_best_price or price_history, nor any exclusionary statements. This meets the 'implied usage' level but lacks explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
makiti_guideB
Get guidance on how to use Makiti tools effectively for shopping decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario | No | Shopping scenario (e.g. "buying a laptop", "gift under 50") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. It states the tool 'gets guidance' but does not describe the output format, whether it calls other tools, or any side effects. This lack of information leaves the agent uncertain about the tool's actual behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the primary purpose with no redundant words. It efficiently communicates the tool's function without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives the essential purpose but lacks details about what the guidance output looks like or how it interacts with sibling tools. Given the absence of an output schema and annotations, the description is minimally sufficient but leaves ambiguity about the tool's actual deliverable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the single 'scenario' parameter, including a description and example. The tool description itself adds no parameter-specific information, but since the schema is self-explanatory, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides guidance on using Makiti tools for shopping decisions, with a specific verb ('Get guidance') and resource ('how to use Makiti tools'). This distinguishes it from sibling tools which directly perform shopping actions like search, compare, or find prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the sibling tools. There is no mention of alternatives, exclusions, or specific scenarios that would trigger its use. The description only implies a purpose without contextual usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_historyB
Track or estimate price history for a product to determine if current price is a good deal.
| Name | Required | Description | Default |
|---|---|---|---|
| product | Yes | Product name/model (e.g. "PlayStation 5") | |
| days_back | No | How many days of history to estimate (default 90) | |
| retailers | No | List of retailer domains to track (default: major CA retailers) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral transparency. It mentions 'track or estimate' but doesn't explain what estimation entails, what data sources are used, or what the return format looks like, leaving significant gaps for an agent that needs to interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that starts with the core action and includes a purpose clause. It is concise, front-loaded, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should explain what the tool returns and how to interpret it. It only states the high-level purpose, leaving the agent uncertain about the result structure (e.g., time series, verdict, or estimate). This is incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters (product, days_back, retailers). The tool description adds no extra meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool tracks or estimates price history to determine if a current price is a good deal, giving a specific verb and resource. However, it doesn't explicitly differentiate it from sibling tools like find_best_price or product_compare, which could also be used for deal evaluation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to determine if current price is a good deal' implies a clear context for when to use the tool. Yet there is no mention of when not to use it, and no alternatives are named among the sibling tools, leaving the guidance at an implied level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_compareA
Compare two products side-by-side: specs, prices, pros/cons, and verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| budget | No | Budget in CAD to prioritize value | |
| category | No | Product category for context (e.g. smartphone, laptop) | |
| product_a | Yes | First product name/model (e.g. "iPhone 15") | |
| product_b | Yes | Second product name/model (e.g. "Samsung S24") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the sole source of behavioral information. It discloses the content of the comparison (specs, prices, pros/cons, verdict) which gives some insight into return format, but it does not mention side effects, data freshness, or any limitations such as whether it performs live lookups.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single, front-loaded sentence with no redundant words. Every element (compare, two products, output types) contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 100% schema coverage and no output schema, but the description compensates by listing the returned comparison elements (specs, prices, pros/cons, verdict). It could be more complete by noting how optional parameters like budget affect the analysis, but it is adequate for a basic comparison tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters have descriptions in the schema, which covers 100% of parameter semantics. The description does not add extra meaning beyond the schema, as it only mentions 'two products' without detailing how budget or category influence the comparison.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb 'Compare' and resource 'two products', and enumerates the output dimensions (specs, prices, pros/cons, verdict). This clearly differentiates it from sibling tools like product_search and find_best_price.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case of comparing exactly two products side-by-side, which is clear from the first phrase. However, it does not explicitly state when to prefer this over siblings like find_best_price or price_history, nor does it mention exclusions, so it lacks explicit usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_searchB
Search for products across the web using shopping-focused queries. Returns product names, prices, retailers, and relevant links.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Preferred brand (e.g. Apple, Samsung) | |
| limit | No | Max number of results to return (default 10) | |
| query | Yes | Product name or category to search for (e.g. "iPhone 15", "air fryer under 100") | |
| retailer | No | Specific retailer domain (e.g. amazon.ca, bestbuy.ca) | |
| condition | No | Product condition: "new", "used", "refurbished" | |
| max_price | No | Maximum price in CAD | |
| min_price | No | Minimum price in CAD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says it returns product data. It does not mention whether this is a read-only operation, any rate limits, pagination, or other behaviors. Minimal context beyond the core action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the action and returning valuable result details without any redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters but all are schema-documented, and there is no output schema, the description provides a basic understanding but lacks usage context and behavioral details. It is adequate but has clear gaps for an agent to fully understand when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides full descriptions for all 7 parameters, so the baseline is 3. The description adds no additional parameter-specific meaning beyond the schema, though it implies filters like price and retailer are part of the search context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for products across the web and lists the types of returned data (names, prices, retailers, links). It is specific with a verb and resource, but it does not explicitly differentiate from sibling tools like find_best_price or find_deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as product_compare or price_history. There are no exclusions, prerequisites, or contextual hints about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.0.0- First observed
find_best_price - First observed
find_deals - First observed
makiti_guide - First observed
price_history - First observed
product_compare - First observed
product_search
TDQS
Scored across 6 tools
The tools cover distinct shopping functions: broad search, price comparison, deal hunting, price history, and product comparison. product_search and find_best_price both provide pricing but are differentiated by scope and accuracy; descriptions make this clear. Overall, minimal confusion.
Names use a mix of noun-verb (product_compare, product_search), verb-noun (find_best_price, find_deals), and noun-noun (price_history, makiti_guide) patterns. While all use snake_case, the inconsistent verb placement makes the naming less predictable.
Six tools is an appropriate size for a shopping assistant, covering core workflows without being overwhelming. Each tool has a defined role.
The tool set covers search, price comparison, price history, and deals, which are the main shopping decision processes. A guide tool adds helpful meta-navigation. No significant gaps are apparent.
Maintenance
Related MCP Connectors
Shopping MCP for AI agents: search, compare, Amazon buy links. Auto-register.
Google Shopping products, prices, sellers, and deals as structured data via a hosted MCP server.
MCP server for real-time product search by barcode (EAN, UPC, GTIN) or keyword on ean-search.org
MCP server for ua_e_commerce_price_tracker_mcp
Related MCP Servers
- AlicenseCqualityCmaintenanceA Model Context Protocol server enabling product searches across e-commerce platforms, price history tracking, and product specification-based searches using natural language prompts.219MIT
- FlicenseAqualityDmaintenanceAn MCP server that connects AI assistants to SearchAgora, enabling users to search for, discover, and purchase products across the web through natural language conversations.62-

sscofficial
AlicenseNot gradedqualityDmaintenanceMCP 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.9 npm1MIT- AlicenseBqualityBmaintenanceMCP 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.6MIT