CarHunt

French used-car search across LeBonCoin, LaCentrale, L'Argus and more, with price estimates.

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
77%
Naming quality
82%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'estimate_car_price' description lacks action verbin estimate_car_price
  • LOWTool 'car_market_stats' description lacks action verbin car_market_stats

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,222Tokens (tool definitions)
~2.4 KBTypical response size
Significant attention impact (2.52% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "carhunt": {
      "url": "https://api.carhunt.fr/mcp"
    }
  }
}

Remote endpoints

https://api.carhunt.fr/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_used_cars(make, model, region, departments, year_min, ...)

Search used cars for sale in France across all major marketplaces. Recherche multi-critères dans les annonces françaises agrégées par CarHunt (LeBonCoin, LaCentrale, L'Argus, Autosphere, ParuVendu…). Sans compte : 10 résultats max, sans deal-score. Avec une clé personnelle Premium/Pro/Expert (Bearer chu_live_…) : 25 résultats, deal-score visible et tri deal_score. Chaque annonce inclut source_url (lien direct vers l'annonce d'origine) — à toujours citer.

Input Schema

{
  "type": "object",
  "properties": {
    "make": {
      "type": "string",
      "description": "Marque, ex. VOLKSWAGEN, PEUGEOT, BMW"
    },
    "model": {
      "type": "string",
      "description": "Modèle commercial, ex. GOLF, 308, SERIE 1 — les familles sont expansées (« GOLF » matche GOLF, GOLF SW…)"
    },
    "region": {
      "type": "string",
      "description": "Région française : ile-de-france (ou idf), paca, bretagne, occitanie, normandie… Exclusif avec departments."
    },
    "departments": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Codes départements, ex. [\"33\", \"24\", \"40\"]"
    },
    "year_min": {
      "type": "integer",
      "description": "Année-modèle minimum"
    },
    "year_max": {
      "type": "integer"
    },
    "mileage_max": {
      "type": "integer",
      "description": "Kilométrage maximum"
    },
    "price_min": {
      "type": "integer",
      "description": "Prix minimum en euros"
    },
    "price_max": {
      "type": "integer",
      "description": "Prix maximum en euros"
    },
    "energy": {
      "type": "string",
      "description": "Énergies séparées par des virgules : Essence,Diesel,Électrique,Hybride"
    },
    "gearbox": {
      "type": "string",
      "description": "Boîtes séparées par des virgules : Manuelle,Automatique"
    },
    "seller_type": {
      "type": "string",
      "enum": [
        "pro",
        "private"
      ],
      "description": "Vendeur professionnel ou particulier (couverture partielle)"
    },
    "sort": {
      "type": "string",
      "enum": [
        "date",
        "price_asc",
        "price_desc",
        "updated_at",
        "deal_score"
      ],
      "description": "date = découverte la plus récente (défaut) ; updated_at = fraîcheur scraper ; deal_score = sous-cote (clé Premium/Pro/Expert ou Business requise)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "description": "Nombre de résultats (max 10 sans clé, 25 avec clé Premium/Pro/Expert)"
    }
  }
}
🟢estimate_car_price(make, model, year, mileage, energy, ...)

Estimate the market price of a used car in France. Estimation de prix basée sur les annonces comparables réelles du marché français : bon prix (Q1), valeur juste (médiane), prix haut (Q3), indice de confiance et annonces similaires. Le kilométrage est facultatif : sans lui, l'estimation part du kilométrage médian des annonces comparables et le signale dans `note`. Sans compte : 3 estimations/jour par IP. Avec clé personnelle Premium/Pro/Expert : quota du plan (15/jour, 30/jour ou illimité).

Input Schema

{
  "type": "object",
  "properties": {
    "make": {
      "type": "string",
      "description": "Marque, ex. RENAULT"
    },
    "model": {
      "type": "string",
      "description": "Modèle, ex. CLIO"
    },
    "year": {
      "type": "integer",
      "description": "Année-modèle"
    },
    "mileage": {
      "type": "integer",
      "description": "Kilométrage en km. Second facteur de prix après l'âge : le donner quand on le connaît. Si l'utilisateur ne l'a pas précisé, OMETTEZ ce paramètre plutôt que d'inventer une valeur — l'estimation utilisera alors le kilométrage médian des annonces comparables et le signalera dans `note` (à répercuter à l'utilisateur)."
    },
    "energy": {
      "type": "string",
      "description": "Essence, Diesel, Électrique, Hybride (optionnel)"
    },
    "gearbox": {
      "type": "string",
      "description": "Manuelle ou Automatique (optionnel)"
    }
  },
  "required": [
    "make",
    "model",
    "year"
  ]
}
🟢car_market_stats(make, model, year, mileage)

Market statistics for a used car model in France (median price, volume). Médiane de prix du segment (année ±1, tranche de km) et volume d'annonces actives pour un modèle sur le marché français.

Input Schema

{
  "type": "object",
  "properties": {
    "make": {
      "type": "string"
    },
    "model": {
      "type": "string"
    },
    "year": {
      "type": "integer",
      "description": "Année du segment (optionnel, ±1 an)"
    },
    "mileage": {
      "type": "integer",
      "description": "Kilométrage du segment (optionnel, tranche ±20k)"
    }
  },
  "required": [
    "make",
    "model"
  ]
}
🟢pro_search(make, model, region, departments, year_min, ...)

Full professional search with deal-score, 50 results/page, incremental polling. Recherche complète pour les professionnels : deal-score de sous-cote sur chaque annonce, tri deal_score, filtres finition/motorisation/fraîcheur, pagination, polling incrémental (since). Requiert une clé API CarHunt Pro (plan Business). Consomme le quota mensuel de véhicules de l'organisation.

Input Schema

{
  "type": "object",
  "properties": {
    "make": {
      "type": "string",
      "description": "Marque, ex. VOLKSWAGEN, PEUGEOT, BMW"
    },
    "model": {
      "type": "string",
      "description": "Modèle commercial, ex. GOLF, 308, SERIE 1 — les familles sont expansées (« GOLF » matche GOLF, GOLF SW…)"
    },
    "region": {
      "type": "string",
      "description": "Région française : ile-de-france (ou idf), paca, bretagne, occitanie, normandie… Exclusif avec departments."
    },
    "departments": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Codes départements, ex. [\"33\", \"24\", \"40\"]"
    },
    "year_min": {
      "type": "integer",
      "description": "Année-modèle minimum"
    },
    "year_max": {
      "type": "integer"
    },
    "mileage_max": {
      "type": "integer",
      "description": "Kilométrage maximum"
    },
    "price_min": {
      "type": "integer",
      "description": "Prix minimum en euros"
    },
    "price_max": {
      "type": "integer",
      "description": "Prix maximum en euros"
    },
    "energy": {
      "type": "string",
      "description": "Énergies séparées par des virgules : Essence,Diesel,Électrique,Hybride"
    },
    "gearbox": {
      "type": "string",
      "description": "Boîtes séparées par des virgules : Manuelle,Automatique"
    },
    "seller_type": {
      "type": "string",
      "enum": [
        "pro",
        "private"
      ],
      "description": "Vendeur professionnel ou particulier (couverture partielle)"
    },
    "mileage_min": {
      "type": "integer"
    },
    "motorization": {
      "type": "string",
      "description": "Code moteur, ex. « 2.0 TDI » — match souple"
    },
    "finition": {
      "type": "string",
      "description": "Finition normalisée, ex. R-Line, GT Line"
    },
    "since": {
      "type": "string",
      "description": "Timestamp ISO — ne renvoyer que les annonces découvertes après (polling incrémental)"
    },
    "seen_within_days": {
      "type": "integer",
      "description": "Ne renvoyer que les annonces re-vues par les scrapers dans les N derniers jours (anti-annonces retirées ; recommandé 7)"
    },
    "page": {
      "type": "integer",
      "description": "Page de résultats (défaut 1)"
    },
    "limit": {
      "type": "integer",
      "description": "Résultats par page, max 50 (défaut 25)"
    },
    "min_deal_score": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "Plancher de score de sous-cote (50 = prix médian marché)"
    },
    "sort": {
      "type": "string",
      "enum": [
        "date",
        "created_at",
        "updated_at",
        "price_asc",
        "price_desc",
        "deal_score"
      ]
    }
  }
}
🟢pro_deals(make, model, region, departments, year_min, ...)

Underpriced car deals feed, sorted by deal-score. Les meilleures affaires du marché : annonces dont le prix est nettement sous la médiane de leur segment, triées des plus sous-cotées aux moins sous-cotées (min_deal_score 60 par défaut). L'outil de pige des négociants. Clé API Business requise.

Input Schema

{
  "type": "object",
  "properties": {
    "make": {
      "type": "string",
      "description": "Marque, ex. VOLKSWAGEN, PEUGEOT, BMW"
    },
    "model": {
      "type": "string",
      "description": "Modèle commercial, ex. GOLF, 308, SERIE 1 — les familles sont expansées (« GOLF » matche GOLF, GOLF SW…)"
    },
    "region": {
      "type": "string",
      "description": "Région française : ile-de-france (ou idf), paca, bretagne, occitanie, normandie… Exclusif avec departments."
    },
    "departments": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Codes départements, ex. [\"33\", \"24\", \"40\"]"
    },
    "year_min": {
      "type": "integer",
      "description": "Année-modèle minimum"
    },
    "year_max": {
      "type": "integer"
    },
    "mileage_max": {
      "type": "integer",
      "description": "Kilométrage maximum"
    },
    "price_min": {
      "type": "integer",
      "description": "Prix minimum en euros"
    },
    "price_max": {
      "type": "integer",
      "description": "Prix maximum en euros"
    },
    "energy": {
      "type": "string",
      "description": "Énergies séparées par des virgules : Essence,Diesel,Électrique,Hybride"
    },
    "gearbox": {
      "type": "string",
      "description": "Boîtes séparées par des virgules : Manuelle,Automatique"
    },
    "seller_type": {
      "type": "string",
      "enum": [
        "pro",
        "private"
      ],
      "description": "Vendeur professionnel ou particulier (couverture partielle)"
    },
    "mileage_min": {
      "type": "integer"
    },
    "motorization": {
      "type": "string",
      "description": "Code moteur, ex. « 2.0 TDI » — match souple"
    },
    "finition": {
      "type": "string",
      "description": "Finition normalisée, ex. R-Line, GT Line"
    },
    "since": {
      "type": "string",
      "description": "Timestamp ISO — ne renvoyer que les annonces découvertes après (polling incrémental)"
    },
    "seen_within_days": {
      "type": "integer",
      "description": "Ne renvoyer que les annonces re-vues par les scrapers dans les N derniers jours (anti-annonces retirées ; recommandé 7)"
    },
    "page": {
      "type": "integer",
      "description": "Page de résultats (défaut 1)"
    },
    "limit": {
      "type": "integer",
      "description": "Résultats par page, max 50 (défaut 25)"
    },
    "min_deal_score": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "Plancher de score (défaut 60 = nettement sous la cote)"
    }
  }
}
🟢pro_market_position(listing_id)

Market position of a specific listing: segment median, savings vs market. Médiane de prix du segment comparable d'une annonce + écart € / % vs marché (argument de négociation). listing_id = champ `id` d'un résultat pro_search/pro_deals.

Input Schema

{
  "type": "object",
  "properties": {
    "listing_id": {
      "type": "string"
    }
  },
  "required": [
    "listing_id"
  ]
}
🟢pro_watchlist_list

List the organization's watchlists (automatic alerts). Critères évalués toutes les 10 minutes sur le catalogue déjà collecté, puis notification par email, Discord ou webhook JSON.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡pro_watchlist_create(name, make, model, region, departments, ...)

Create a watchlist: criteria are evaluated every 10 minutes against the already collected catalog, then matching listings are pushed to a webhook. Crée une alerte : chaque nouvelle annonce détectée qui matche les critères est poussée en POST JSON sur webhook_url (véhicules livrés décomptés du quota mensuel). Clé API avec scope write requise.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "make": {
      "type": "string",
      "description": "Marque, ex. VOLKSWAGEN, PEUGEOT, BMW"
    },
    "model": {
      "type": "string",
      "description": "Modèle commercial, ex. GOLF, 308, SERIE 1 — les familles sont expansées (« GOLF » matche GOLF, GOLF SW…)"
    },
    "region": {
      "type": "string",
      "description": "Région française : ile-de-france (ou idf), paca, bretagne, occitanie, normandie… Exclusif avec departments."
    },
    "departments": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Codes départements, ex. [\"33\", \"24\", \"40\"]"
    },
    "year_min": {
      "type": "integer",
      "description": "Année-modèle minimum"
    },
    "year_max": {
      "type": "integer"
    },
    "mileage_max": {
      "type": "integer",
      "description": "Kilométrage maximum"
    },
    "price_min": {
      "type": "integer",
      "description": "Prix minimum en euros"
    },
    "price_max": {
      "type": "integer",
      "description": "Prix maximum en euros"
    },
    "energy": {
      "type": "string",
      "description": "Énergies séparées par des virgules : Essence,Diesel,Électrique,Hybride"
    },
    "gearbox": {
      "type": "string",
      "description": "Boîtes séparées par des virgules : Manuelle,Automatique"
    },
    "seller_type": {
      "type": "string",
      "enum": [
        "pro",
        "private"
      ]
    },
    "motorization": {
      "type": "string"
    },
    "finition": {
      "type": "string"
    },
    "min_deal_score": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "webhook_url": {
      "type": "string",
      "description": "URL http(s) POST JSON appelée à chaque nouvelle annonce matchante"
    }
  },
  "required": [
    "name"
  ]
}
🔴pro_watchlist_delete(watchlist_id)

Delete a watchlist by id. Supprime une watchlist (cf. pro_watchlist_list).

Input Schema

{
  "type": "object",
  "properties": {
    "watchlist_id": {
      "type": "string"
    }
  },
  "required": [
    "watchlist_id"
  ]
}
🟢pro_usage

Current month API usage: quota, vehicles consumed, remaining, extra credits. Quota mensuel de véhicules du plan, consommé, restant et crédits achetés.

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded10 tools