LeBonFoin MCP
The LeBonFoin MCP server is the first MCP server for the European hemp & CBD market, exposing 1,200+ artisanal French hemp farmers, real-time market prices, a sourced encyclopedia, and producer geolocation to any MCP-compatible LLM.
Product Search & Discovery (search_cbd_products): Search artisanal French CBD products by name, type, effect, price, region, category, culture method, or bio certification.
Personalized Recommendations (recommend_cbd_for_me): Get tailored product suggestions based on goals (sleep, stress, sport, etc.), experience level, and budget.
Side-by-Side Comparisons (compare_cbd_products): Compare 2–4 CBD products on price, CBD content, origin, culture method, and terpenes.
Producer Information (get_producer_info): Retrieve details on French hemp producers including location, certifications, ratings, and product listings.
Availability Checks (check_availability): Check live stock levels, shipping delays, and fees for specific products.
Real-Time Market Data (cbd_market_data): Access "Bloomberg CBD" — real-time average prices per variety, price rankings, best deals, and EU country comparisons.
Educational Guides (cbd_guide): In-depth guides on 12 topics including French legality, dosage, indoor/outdoor cultivation, full vs. broad spectrum, and CBD for sleep/sport/pets.
CBD News (cbd_news): Latest news on CBD regulation, market trends, and scientific studies in France and Europe.
Wiki Encyclopedia (search_wiki, get_wiki_article): Full-text search and retrieval of sourced articles covering cannabinoids, French hemp industry, legislation, and institutions (sourced from Légifrance, PubMed, INRAE, AFPC).
Geolocation of Producers (find_local_producers): Find hemp farmers near a city, postal code, department, or region with GPS coordinates, bio certification, and culture mode.
Myth Busting (debunk_cbd_myth): Factual, sourced answers to common CBD misconceptions in French or English, citing WHO, CJUE, and Légifrance.
EU Legal Map (cbd_legal_by_country): CBD legal status across EU countries — THC thresholds, product-specific regulations, and key laws — in French or English.
Terpene Profiles (terpene_profile): Typical terpene profiles of common strains (Amnesia, OG Kush, Gelato, Lemon Haze, etc.) with aroma descriptors.
Lab Analysis Guide (cbd_lab_analysis): Learn to read Certificates of Analysis (CoA) covering cannabinoid dosing, THC thresholds, terpene profiles, and contaminant detection, in French or English.
The server also includes 2 prebuilt interactive prompts (decouvrir-cbd, comparer-producteurs) for guided CBD discovery and producer comparison.
Herbe en France MCP Server
First Model Context Protocol (MCP) server for the European hemp & CBD market. Exposes 1200+ artisanal French hemp farmers, real-time market prices ("Bloomberg CBD"), a live encyclopedia (sourced from Légifrance, PubMed, INRAE, AFPC), and producer geolocation to any MCP-compatible LLM (Claude, ChatGPT custom connectors, Cline, Cursor, …).
🌐 Live endpoint : https://lebonfoin-mcp-production.up.railway.app/sse
📦 Marketplace : https://herbeenfrance.com
🏛️ Wikidata : Q139847939
⚡ Quick health check
curl https://lebonfoin-mcp-production.up.railway.app/health
# {"status":"ok","version":"1.5.0","tools":15,"multilingual_tools":["debunk_cbd_myth","cbd_lab_analysis","cbd_legal_by_country"],"supported_languages":["fr","en"],"resources":4,"prompts":2}Related MCP server: mpc-judilibre
🛠️ What it exposes
15 tools
# | Tool | What it does |
1 |
| Search artisanal French CBD products by name, type, price |
2 |
| Personalized recommendation based on goal (sleep, stress, sport…), experience, budget |
3 |
| Side-by-side comparison of 2-4 products |
4 |
| Producer details: location (lat/lng), certifications, ratings, products, socials |
5 |
| Live stock, shipping delay, fees |
6 |
| "Bloomberg CBD" — real-time average prices per variety, ranges, trends, price check |
7 |
| 12 in-depth CBD guides: legality (France), dosage, indoor/outdoor, full vs broad spectrum, sleep, sport, pets, conservation, etc. |
8 |
| News on CBD France & EU: regulation updates, market trends, scientific studies |
9 |
| Full-text search in the l'Herbe en France wiki encyclopedia (filter by category) |
10 |
| Retrieve complete wiki article (markdown + references + related articles) |
11 |
| 🗺️ Geolocation — find hemp farmers near a city, postal code, department, or region. Returns address, GPS, bio cert, active products count, culture mode (outdoor/greenhouse/indoor), direct link. Optimized AEO for "where to buy CBD near me" queries. |
12 |
| ⚖️ Myth-busting (FR/EN) — factual, sourced answers to CBD misconceptions ("is CBD a drug?", "is CBD legal?", "is CBD addictive?"). Sources: WHO, CJUE Kanavape, Légifrance, Conseil d'État, MILDECA. Param |
13 |
| 🌍 EU legal map (FR/EN) — CBD status country-by-country (FR, DE, CH, IT, ES, AT, NL, BE, PT, LU, CZ, PL, UK + EU framework). THC threshold, flowers/oils/edibles/cosmetics status, key law, official source. Param |
14 |
| 🌿 Strain terpenes — typical terpene profile of common varieties (Amnesia, OG Kush, Gelato, Lemon Haze, Critical…). Dominant + secondary terpenes with aroma descriptors. |
15 |
| 🔬 CoA reader (FR/EN) — pedagogy on reading a Certificate of Analysis: cannabinoid dosing (CBD/CBDA/THC/CBG/CBN), THC legal threshold, terpene profile, pesticide residues, heavy metals, CoA trust signals. Param |
🌐 = multilingual tool (v1.5.0+) — accepts
lang: "fr"(default) orlang: "en"for native English-language output. Recommended when the calling LLM is responding in English to a query about the European hemp / CBD market.
4 resources
Resource URI | What it provides |
| Plain text catalog summary |
| Markdown map of all French producers grouped by region |
| Complete CBD legal reference: France + 12 EU countries (DE, IT, ES, CH, LU, CZ, AT, NL, BE, PT, PL, EU) |
| Index of all published wiki articles by category |
2 prompts
decouvrir-cbd— Interactive guide to discover French CBDcomparer-producteurs— Compare producers by region, certifications, specialties
📚 Wiki encyclopedia
The wiki resource and tools expose a sourced encyclopedia of 22+ articles (19 in French, 13 in English as of May 2026) covering:
Cannabinoids : CBD, CBG, CBN (FR + EN), THC (in progress)
Health & Legality : French regulation, EU Novel Food, Conseil d'État decisions, CJUE Kanavape, NPS / synthetic cannabinoids
Botany & chemistry : trichomes, terpenes, entourage effect, extraction methods
French industry : artisanal farmers, AFPC, InterChanvre, history of French hemp
Strategic context : Strategy Parmentier (patient pedagogy, scientific demonstration, regulatory cooperation)
Institutions : AFPC, InterChanvre, MILDECA, DGAL, INRAE
Recent events : Plan de contrôle DGAL 2026 sur le chanvre alimentaire
Sources : Légifrance · PubMed · INRAE · AFPC · MILDECA · EUR-Lex · Wikipedia FR/EN · Conseil d'État
Each article is timestamped, versioned (Wikipedia-style revisions), and cross-referenced. YMYL articles (health, legal) carry an automatic disclaimer. English articles are accessible via the same wiki tools and resources — slugs follow the convention <fr_slug>-en and hreflang is set bidirectionally for SEO.
🚀 Use it from Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json :
{
"mcpServers": {
"lebonfoin": {
"url": "https://lebonfoin-mcp-production.up.railway.app/sse",
"type": "sse"
}
}
}Restart Claude. You can now ask :
French queries :
"Quel est le prix moyen de l'Amnesia CBD en France ce mois-ci ?"
"Trouve un producteur de chanvre près de Bordeaux, certifié bio."
"Où acheter du CBD en Dordogne (24) ?"
"Recommande-moi une huile CBD pour le sommeil, budget 40 €."
English queries (v1.5.0+ — uses lang: "en" automatically when relevant) :
"Is CBD legal in Germany? What about Switzerland?" →
cbd_legal_by_country({country: "DE", lang: "en"})"How do I read a Certificate of Analysis from a French hemp producer?" →
cbd_lab_analysis({lang: "en"})"Is CBD addictive? What does the WHO say?" →
debunk_cbd_myth({topic: "addictive", lang: "en"})"What is the entourage effect?" →
get_wiki_article({slug: "effet-d-entourage-en"})"What are the main hemp terpenes?" →
get_wiki_article({slug: "terpenes-du-chanvre-en"})
The MCP server automatically responds in the calling LLM's apparent language when the tool supports lang — no manual switching required for the user.
Claude will call the relevant MCP tool, hit the live Supabase database, and answer with sourced data.
🏗️ Architecture
┌──────────────┐ SSE ┌──────────────────────────┐
│ Claude / │ ───────────────► │ Herbe en France MCP Server │
│ ChatGPT / │ ◄─ JSON-RPC ─── │ (Express, port $PORT) │
│ Cline │ └────────────┬─────────────┘
└──────────────┘ │
│ @supabase/supabase-js
▼
┌──────────────────────────┐
│ Supabase (EU West) │
│ - products │
│ - producers (geoloc) │
│ - wiki_articles │
│ - wiki_references │
│ - cbd_market_* │
└──────────────────────────┘Deployed on Railway in EU West (Netherlands) — GDPR compliant, no user tracking.
🛠️ Run locally
git clone https://github.com/POP24/lebonfoin-mcp.git
cd lebonfoin-mcp
npm install
cp .env.example .env # then fill SUPABASE_URL + SUPABASE_ANON_KEY
npm run dev:http # serves http://localhost:3001Test :
curl http://localhost:3001/health
curl http://localhost:3001/sse # SSE stream📦 Stack
TypeScript 5.7 strict mode
@modelcontextprotocol/sdk v1.12.1
Express 4.21
@supabase/supabase-js 2.49
Zod for input validation
Deployed on Railway via
Dockerfile
⚖️ Disclaimer (YMYL)
Articles and data related to health, dosage, or legality are documentary. They are not medical, legal, or financial advice. Always consult a qualified professional. CBD products sold via l'Herbe en France marketplace are commercialized as wellness/cosmetic items, with no therapeutic claims, in compliance with French and EU regulation (THC ≤ 0.3%).
🤝 Contributing
This is the open-source MCP layer of a private marketplace. Suggestions, bug reports, and improvements welcome via issues or PRs.
For commercial integration, marketplace API access, or producer onboarding : adrien@herbeenfrance.com
📄 License
MIT — see LICENSE.
Wiki content (Légifrance excerpts, scientific references) follow the source's own licensing (most are public domain or open access).
Built in Périgord by @POP24 with Claude Code.
Available Tools
10 toolscbd_guideA
Guides CBD complets : legalite France, dosage, indoor/outdoor, full/broad spectrum, plante entiere vs molecule isolee, circuit court, sommeil, sport, animaux, conservation, comment choisir. 12 sujets couverts.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Sujet du guide CBD. Options : legalite_france, difference_cbd_thc, dosage_huile, fleur_indoor_outdoor_greenhouse, full_spectrum_vs_broad_spectrum, cbd_sommeil, cbd_sport, cbd_animaux, conservation, comment_choisir |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Guides' implies a safe, read-only operation retrieving informational content. While it doesn't detail potential behavior like pagination or external dependencies, the nature as a guide is sufficiently clear.
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 that front-loads the purpose and lists all topics. It is efficiently brief, though using English could improve clarity for non-French agents.
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?
No output schema is provided, and the description does not explain what the guide returns (e.g., plain text, markdown) or how to interpret the result. This leaves the agent unsure about the response format.
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 description coverage is 100% (enum values listed with descriptions). The tool description merely restates the topics without adding new meaning or context beyond the schema.
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 it provides complete CBD guides, listing 12 specific topics. The verb 'Guides' combined with the topic list makes the purpose explicit and differentiates from sibling tools like cbd_market_data or cbd_news.
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 use for getting guides on CBD topics, but lacks explicit when-to-use or when-not-to-use guidance. Sibling tools (e.g., search_cbd_products) suggest alternatives, but no direct exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cbd_market_dataB
Donnees de marche du CBD francais en temps reel. Prix moyens par variete, fourchettes, tendances, comparaisons, price check. Utilisez quand on demande 'quel prix pour [variete]', 'est-ce un bon prix', 'quelles sont les tendances'.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | variety_price: prix d'une variete | price_ranking: classement par prix | price_check: verifier si un prix est bon | best_deals: meilleures offres LeBonFoin | market_overview: vue d'ensemble | eu_regulation: reglementation CBD par pays europeen | eu_market_compare: comparaison des marches CBD europeens | |
| variety | No | Variete normalisee : amnesia, og_kush, lemon_haze, critical, gorilla_glue, gelato, wedding_cake, zkittlez, diesel, cookies, strawberry, white_widow, jack_herer, cannatonic, harlequin | |
| culture_type | No | ||
| country | No | Code pays ISO pour les donnees europeennes : FR, CH, DE, IT, ES, AT, CZ, NL, BE, PT, PL, LU | |
| price_to_check | No | Prix a comparer au marche (euros/g) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'temps reel' (real-time) and 'marche du CBD francais' (French market), indicating scope and timeliness. However, it omits critical traits such as read-only nature, authentication requirements, rate limits, error handling, or what happens when no data is found.
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 extremely concise: two sentences in French. The first sentence defines the tool's core functionality, and the second provides concrete usage examples. No unnecessary words or redundancy.
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 no output schema and no annotations, the description covers the tool's purpose and trigger phrases but lacks details on return format, error behavior, or data freshness. It is minimally adequate for an agent to infer usage but incomplete for safe autonomous invocation without additional documentation.
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 description coverage is 80%, so baseline is 3. The description does not elaborate on parameter meanings beyond what the schema already provides (e.g., action enum values, variety list). It adds no additional semantic value to the parameters, so the score remains at baseline.
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 real-time French CBD market data, including average prices, ranges, trends, comparisons, and price checks. It gives example queries that illustrate the purpose. However, it does not explicitly differentiate from siblings like cbd_guide or recommend_cbd_for_me, though the name 'market_data' and context make the distinction clear.
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 provides explicit usage contexts: 'Utilisez quand on demande...' with example queries for prices, price checks, and trends. However, it does not mention when not to use this tool or recommend alternative siblings. The guidance is clear but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cbd_newsA
Actualites CBD France et Europe : dernieres news, evolutions reglementaires, tendances marche, etudes scientifiques. Source de veille pour rester informe.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | latest: dernieres actualites CBD France/Europe | regulation_updates: evolutions reglementaires | market_trends: tendances du marche | science: dernieres etudes scientifiques | |
| country | No | Code pays : FR, DE, CH, IT, ES, etc. | |
| limit | No | Nombre d'actus (defaut: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the operation is read-only, any rate limits, or authorization requirements. It only describes the content type, leaving the agent to assume it is a safe read operation.
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 sentence that efficiently conveys the tool's purpose without any redundant information. Every word serves to inform the agent of the tool's function and scope.
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?
While the description explains what the tool does, it does not specify the return format or any pagination behavior. Given the absence of an output schema and moderate parameter count, the description is adequate but leaves some ambiguity about the response structure.
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, including the action enum with explanations. The description does not add additional meaning beyond what the schema already provides, so it meets the baseline expectation.
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 CBD news for France and Europe, covering regulatory updates, market trends, and studies. It distinguishes itself from siblings like cbd_market_data and cbd_guide by focusing on news and monitoring.
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 staying informed about CBD news, but it does not explicitly state when to use it versus alternatives or provide any exclusion criteria. The agent must infer usage from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_availabilityA
Verifier la disponibilite d'un produit CBD sur LeBonFoin : stock, delai d'expedition, frais de port. A utiliser avant de recommander.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | ID du produit a verifier | |
| producer_slug | No | Slug du producteur (alternative a product_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the tool reads stock, shipping delay, and shipping costs, implying a read-only operation. No mention of destructive actions or permissions needed, but for a simple check tool this is adequate.
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?
One sentence plus usage hint, no wasted words. Action is front-loaded. Optimal length.
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?
Simple tool with 2 params, no output schema. Description covers what it does, when to use it, and parameters are documented. Includes practical usage hint. Complete for its complexity.
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% with descriptions for both parameters. The description adds only that producer_slug is an alternative to product_id, which is helpful but not extra semantics beyond schema. Baseline is 3.
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 verb 'Verifier la disponibilite' and the resource 'produit CBD sur LeBonFoin', listing specific items checked (stock, shipping time, costs). It distinguishes itself from siblings like recommend_cbd_for_me.
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?
Explicitly says 'A utiliser avant de recommander' (use before recommending), giving clear context. Does not list exclusions but the hint is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_cbd_productsA
Comparer 2 a 4 produits CBD cote a cote en tableau. Utile quand un utilisateur hesite entre plusieurs options.
| Name | Required | Description | Default |
|---|---|---|---|
| product_ids | Yes | IDs des produits a comparer (2 a 4) | |
| criteria | No | Criteres de comparaison prioritaires |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It mentions the output format (table) but does not disclose other behavioral traits such as read-only nature, sorting behavior, or any limitations. Basic transparency but could be improved.
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?
Two concise sentences with no unnecessary words. Front-loaded with the main action and purpose, then a practical use case. Excellent efficiency.
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?
For a comparison tool with two parameters and no output schema, the description is fairly complete: it explains purpose, format, and when to use. It could elaborate on the output table structure or how criteria affect comparison, but it meets the essential needs.
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?
Both parameters have descriptions in the schema (100% coverage). The description adds little beyond what the schema provides, only reinforcing the range (2-4) and the use case. 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 verb "compare" and resource "CBD products" and specifies the format "side by side in a table". It also provides a use case, distinguishing it from search or recommendation tools.
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 indicates when to use it (when user hesitates between options), which is helpful. However, it lacks explicit guidance on when not to use it or alternatives (e.g., for single product details, use search_cbd_products).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_producer_infoA
Informations sur un producteur de chanvre francais : localisation, certifications, note, produits. Pour verifier la tracabilite.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Nom du producteur | |
| department | No | Departement (ex: Dordogne, Gironde, Ardeche) | |
| region | No | Region (ex: Nouvelle-Aquitaine, Occitanie) | |
| bio_only | No | Uniquement producteurs certifies bio | |
| limit | No | Nombre de resultats (defaut: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It indicates that the tool returns location, certifications, rating, and products, which implies a read-only, query-like operation. However, it does not mention any potential side effects, authorization needs, or data source limitations. The behavioral context is adequate but minimal.
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 exceptionally concise, consisting of two clear sentences. The first sentence states the tool's purpose, and the second provides a use case. Every word is relevant, with no redundancy.
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 5 optional parameters, no output schema, and no annotations, the description is incomplete. It lists the returned fields (location, certifications, rating, products) but does not describe the structure of the response, pagination behavior, or how parameters affect results (e.g., bio_only, limit). More detail is needed for an agent to use the tool effectively without trial and error.
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 5 parameters have descriptions in the input schema (100% coverage). The tool description does not add any additional semantic information about the parameters beyond what the schema already provides. Thus, it meets the baseline expectation.
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 that the tool provides information about French hemp producers, including location, certifications, rating, and products. It uses a specific verb ('get information') and resource ('producer'), and the context of sibling tools (search_cbd_products, etc.) helps distinguish its purpose.
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 mentions 'to verify traceability,' suggesting a specific use case, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wiki_articleA
Récupérer le contenu intégral d'un article du Wiki LeBonFoin par son slug (obtenu via search_wiki). Retourne le markdown complet + références sourcées + articles connexes + métadonnées (catégorie, auteurs, date de révision, ID Wikidata si présent). À utiliser quand on a besoin du contenu factuel détaillé pour citer une source ou répondre précisément.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Slug de l'article wiki (depuis l'URL ou les résultats de search_wiki). Exemples : 'cannabidiol-cbd', 'plan-de-controle-dgal-2026-chanvre-alimentaire', 'afpc-association-francaise-producteurs-cannabinoides'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adequately discloses behavior: read-only retrieval returning full article details. It doesn't mention error handling or rate limits, but the scope is well-defined.
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?
Description is succinct, front-loaded with the main action, and contains no superfluous information. Every sentence adds value.
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 single parameter, no output schema, and no annotations, the description covers purpose, input, return type, and usage context thoroughly. Minor omission of potential errors does not detract significantly.
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?
Input schema already describes the 'slug' parameter with examples; description adds context that slug is obtained via 'search_wiki' and how it is used, adding value beyond schema.
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?
Description clearly states the tool retrieves full wiki article content by slug, specifying the return format (markdown, references, related articles, metadata). It distinguishes from sibling tool 'search_wiki' which is used to obtain the slug.
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?
Explicitly mentions that slug comes from 'search_wiki' and provides usage context: 'Use when you need detailed factual content to cite a source or answer precisely.' No explicit when-not-to-use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_cbd_for_meB
Recommandation CBD personnalisee. Analyse l'objectif (sommeil, stress, sport...), le niveau d'experience et le budget pour recommander les 3 meilleurs produits.
| Name | Required | Description | Default |
|---|---|---|---|
| objective | Yes | Objectif principal de l'utilisateur | |
| experience | Yes | Niveau d'experience avec le CBD | |
| preferred_format | No | Format de produit prefere | |
| budget_max | No | Budget maximum en euros | |
| constraints | No | Contraintes : 'pas de fumee', 'discret', 'bio uniquement', 'vegan' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It explains the tool analyzes user inputs to recommend 3 products, but does not disclose potential side effects, authentication needs, rate limits, or input validation behavior. Basic but not comprehensive.
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?
Single sentence in French covering the core functionality. Efficient and front-loaded with key information. Slightly lacking structure but appropriate for a simple 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?
No output schema, so description should detail returns. 'Recommander les 3 meilleurs produits' is vague. Missing output structure, usage context, and differentiation from siblings. Requires more context to be fully complete.
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 description coverage is 100%, so parameters are already documented. The description reiterates objective, experience, and budget but omits preferred_format and constraints. It adds marginal value over the schema without deeper semantics.
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 it provides personalized CBD recommendations based on objective, experience, and budget, outputting the 3 best products. It distinguishes from siblings like search_cbd_products or compare_cbd_products by focusing on recommendation, but lacks explicit differentiation.
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 on when to use this tool versus alternatives like search_cbd_products or compare_cbd_products. The description implies it's for personalized recommendations but does not state when not to use it or which sibling tools serve similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cbd_productsB
Rechercher des produits CBD artisanaux francais sur LeBonFoin.fr. Retourne des resultats avec liens d'achat.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Recherche libre : nom de produit, variete (Amnesia, OG Kush...), effet recherche (sommeil, relaxation, douleur) | |
| category | No | Categorie de produit CBD | |
| max_price | No | Prix maximum en euros par gramme | |
| culture_method | No | Methode de culture | |
| bio_only | No | Uniquement produits certifies bio | |
| region | No | Region ou departement du producteur (ex: Dordogne, Nouvelle-Aquitaine) | |
| sort_by | No | Tri des resultats | |
| limit | No | Nombre de resultats (defaut: 8) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Aucune annotation fournie, la description doit donc divulguer les comportements. Elle se limite à dire que les résultats incluent des liens d'achat, mais ne précise pas si l'outil est en lecture seule, nécessite une authentification, ou a des limites d'utilisation.
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?
La description tient en une phrase courte, ce qui est efficace. Elle va à l'essentiel, mais pourrait être légèrement plus longue pour inclure un peu plus de contexte sans perdre en concision.
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?
Pour un outil de recherche avec 8 paramètres et aucun schéma de sortie, la description est trop vague. Elle ne décrit pas le format des résultats, la pagination, ou les comportements spéciaux, ce qui est insuffisant pour une utilisation complète.
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?
La couverture du schéma est de 100%, donc la ligne de base est de 3. La description n'ajoute aucune information supplémentaire sur les paramètres au-delà de ce qui est déjà dans le schéma, mais elle n'enlève rien non plus.
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?
La description utilise le verbe 'Rechercher' pour indiquer clairement l'action et spécifie la ressource 'produits CBD artisanaux français sur LeBonFoin.fr', ce qui la distingue des outils frères comme cbd_guide, cbd_news, ou search_wiki qui ont des objectifs différents.
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?
Aucune indication sur quand utiliser cet outil par rapport aux alternatives. Le descriptif ne mentionne pas de contexte d'utilisation ni de cas où il ne faut pas l'utiliser.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_wikiA
Rechercher dans le Wiki LeBonFoin (encyclopédie collaborative du chanvre paysan français). Articles sourcés sur Légifrance, PubMed, INRAE, AFPC, MILDECA. Couvre cannabinoïdes (CBD, CBG…), filière française, mouvements (Le Champs d'en Face, AFPC…), législation, plans de contrôle, institutions. Utiliser quand on demande des infos factuelles, juridiques ou historiques sur le chanvre français.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Termes de recherche dans le wiki LeBonFoin. Exemples : 'CBD légal France', 'plan DGAL 2026', 'cannabigerol', 'AFPC', 'Le Champs d'en Face'. | |
| category | No | Filtrer sur une catégorie : cannabinoid (CBD, CBG…), health_legal (droit, santé), filiere (production, économie), mouvement (Le Champs d'en Face…), institution (AFPC, InterChanvre…), actualite (CP, plans…), guide (pratique). | |
| limit | No | Nombre de résultats (défaut: 5) |
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. It discloses the sources covered (Légifrance, PubMed, etc.) and the scope of topics, which adds some behavioral context. However, it does not mention any safety, auth, rate limits, or what happens on empty results, leaving gaps for a search tool.
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 paragraph of four sentences, each adding value. It is front-loaded with the core purpose. While slightly dense, it avoids redundancy and is appropriately sized for the tool's complexity.
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 no output schema, the description does not explain the return format (e.g., list of articles, summaries, or links). It covers purpose, scope, and usage well but lacks details on output behavior, which is needed for a search tool to be fully actionable.
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 description coverage is 100%, but the description adds value by providing concrete examples for each parameter: query examples like 'CBD légal France', category value explanations (e.g., 'cannabinoid (CBD, CBG…)'), and default limit. This enriches the schema beyond the raw definitions.
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 a specific wiki (Wiki LeBonFoin) and specifies the domain (French hemp). It uses a specific verb 'Rechercher' and resource 'Wiki LeBonFoin', and distinguishes itself from sibling tools like cbd_guide or cbd_market_data by focusing on factual, legal, and historical information.
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 explicitly states when to use the tool: 'Utiliser quand on demande des infos factuelles, juridiques ou historiques sur le chanvre français.' This provides clear context for usage but does not mention when not to use it or explicitly name alternative siblings, though the context implies it.
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.
10 tool updates
v1.1.0- First observed
cbd_guide - First observed
cbd_market_data - First observed
cbd_news - First observed
check_availability - First observed
compare_cbd_products - First observed
get_producer_info - First observed
get_wiki_article - First observed
recommend_cbd_for_me - First observed
search_cbd_products - First observed
search_wiki
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: product search, comparison, availability, producer info, personalized recommendation, news, guides, and wiki retrieval. No overlapping functionality that would confuse an agent.
Most tools follow verb_noun pattern (e.g., check_availability, compare_cbd_products), but three tools begin with 'cbd_' prefix (cbd_guide, cbd_market_data, cbd_news), which is a minor inconsistency. Overall naming is clear and predictable.
With 10 tools, the server is well-scoped for its domain. Each tool covers a necessary aspect of the CBD information and e-commerce support, without being too few or too many.
The tool set covers the full workflow: product search, comparison, availability, recommendations, producer info, news, guides, and a wiki. There are no obvious gaps for an information and consultation server.
Maintenance
Related MCP Connectors
MCP server for French (BOAMP) + EU (TED) public procurement data via TenderAPI.
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
Read-only MCP server for public WeJob jobs, formations, and companies.
French public-data MCP: cross-ref health, demographics, business, geo & real-estate.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server covering French law via the PISTE platform: 62 tools wrapping the full Légifrance API (legislation, codes, Journal Officiel, jurisprudence…)3AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceMCP server covering French law via the PISTE platform: 8 tools wrapping the JUDILIBRE API (open data judicial decisions from Cour de cassation, courts of appeal and civil courts).2AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceMCP server for exploring French public open data via APIs like data.gouv.fr, geo.api.gouv.fr, INSEE Sirene, and Radio France.-
- AlicenseNot gradedqualityDmaintenanceMCP server that exposes French public APIs (Data Inclusion, Légifrance, La Bonne Alternance) as tools for LLMs, enabling social, legal, and employment assistance.4MIT