{
  "_note": "Descripteur du serveur MCP de Margeo. Il n'existe pas encore de norme ratifiée pour la découverte MCP : ce fichier suit la convention émergente `/.well-known/mcp.json` et décrit ce qui est VÉRIFIABLE en appelant l'endpoint. Il est GÉNÉRÉ depuis `MCP_TOOLS` dans `_worker.js` par `scripts/generer_mcp_json.py` — ne pas l'éditer à la main.",
  "name": "margeo",
  "title": "Margeo — gestion de stock, ventes, marges et fiscalité des revendeurs",
  "description": "Serveur MCP de Margeo, logiciel français de gestion pour revendeurs d'occasion (Vinted, Leboncoin, eBay, Rakuten, Facebook Marketplace). Donne à un agent le stock de l'utilisateur, ses ventes, ses achats, ses dépenses, ses marges nettes et sa situation fiscale micro-entreprise (régime, ACRE, TVA, articles déclarés ou non).",
  "version": "1.0.0",
  "endpoint": "https://margeoapp.com/mcp",
  "transport": {
    "type": "http",
    "protocol": "json-rpc-2.0",
    "method": "POST",
    "content_type": "application/json"
  },
  "authentication": {
    "type": "bearer",
    "header": "Authorization",
    "scheme": "Bearer",
    "note": "Le jeton est celui du compte Margeo de l'utilisateur. Il se demande dans l'application, jamais en paramètre d'URL : un jeton en query string fuit dans les journaux, les proxys et l'historique."
  },
  "availability": {
    "plans": [
      "pro",
      "business"
    ],
    "note": "Le connecteur est inclus dans les plans Pro et Business. En Starter, l'endpoint répond 403 avec un message qui indique à l'utilisateur comment activer un plan payant."
  },
  "rate_limit": {
    "calls_per_hour": 200,
    "scope": "par jeton"
  },
  "capabilities": {
    "tools": true,
    "resources": false,
    "prompts": false
  },
  "tools": [
    {
      "name": "get_profile",
      "description": "Get user profile: plan (starter/pro/business), name, email, fiscal regime (micro/reel), ACRE status, TVA, fiscal year selected."
    },
    {
      "name": "get_stats",
      "description": "Get full financial stats for the user: total revenue (soldPrice of sold items), total pack purchases, total expenses (frais), net profit, margin %, item counts by status (sold/pending/shipping/in-stock)."
    },
    {
      "name": "list_items",
      "description": "List stock items. Each item has: id, name, purchasePrice (item purchase cost in €), estimatedPrice (expected sell price), soldPrice (actual sell price when sold), sold (bool), pending (bool = not yet received), shipping (bool = sold, in transit), soldDate, soldPlatform, saleNote (buyer/comment/reference), packId (parent pack), receivedDate, shippingDate, declared (bool = declared for tax)."
    },
    {
      "name": "create_item",
      "description": "Create one or several identical stock items linked to a pack."
    },
    {
      "name": "update_item",
      "description": "Update a stock item. Use to mark as sold (sold=true, soldPrice, soldDate, soldPlatform), mark as shipping (shipping=true, shippingDate), mark as declared (declared=true), etc."
    },
    {
      "name": "delete_item",
      "description": "Delete a stock item by id."
    },
    {
      "name": "list_packs",
      "description": "List purchase packs (lots d'achat). Each pack has: id, name, price (total purchase cost in €), date, singleItem (bool). Items linked to a pack share the same packId."
    },
    {
      "name": "create_pack",
      "description": "Create a new purchase pack (lot d'achat)."
    },
    {
      "name": "delete_pack",
      "description": "Delete a purchase pack by id."
    },
    {
      "name": "list_frais",
      "description": "List all business expenses (frais): packaging, shipping supplies, tools, etc. Each frais has: id, description, amount (€), date."
    },
    {
      "name": "create_frais",
      "description": "Create a new business expense."
    },
    {
      "name": "delete_frais",
      "description": "Delete an expense by id."
    },
    {
      "name": "list_platforms",
      "description": "List selling platforms configured by the user (e.g. Vinted, Leboncoin, Rakuten, eBay)."
    },
    {
      "name": "list_catalogue",
      "description": "List catalogue products (product templates with target buy/sell prices for simulation)."
    },
    {
      "name": "get_item",
      "description": "Get full detail of a single stock item by id."
    },
    {
      "name": "list_sales",
      "description": "List sold items (ventes). Each sale has: id, name, purchasePrice, soldPrice, soldDate, soldPlatform, saleNote, declared, packId, estimatedPrice. Filterable by year, platform, and declared status."
    },
    {
      "name": "mark_item_sold",
      "description": "Mark an existing stock item as sold. Sets sold=true, records price, date, platform. Refuses if already sold unless force:true."
    },
    {
      "name": "mark_declared",
      "description": "Mark sold items as fiscally declared. Pass a list of ids, or a year/month to declare all undeclared sales in that period."
    },
    {
      "name": "list_undeclared",
      "description": "List undeclared sold items (ventes non déclarées fiscalement). Returns count, total revenue, and item list."
    },
    {
      "name": "get_stats_by_platform",
      "description": "Get sales stats grouped by selling platform: count, revenue, average price per platform."
    },
    {
      "name": "get_stats_by_period",
      "description": "Get financial stats over time grouped by month, quarter or year: revenue, purchases, expenses, profit per period."
    },
    {
      "name": "create_sale",
      "description": "Create a new item and immediately record it as sold in one step. Use when you want to log a past sale without going through the stock workflow (create_item + mark_item_sold). Returns the created item."
    },
    {
      "name": "update_pack",
      "description": "Update a purchase pack (lot d'achat) fields: name, price, date, singleItem, notes."
    },
    {
      "name": "update_frais",
      "description": "Update an existing business expense (frais): description (or alias name), amount, date."
    }
  ],
  "documentation": "https://margeoapp.com/fonctionnalites/",
  "publisher": {
    "name": "Margeo",
    "country": "FR",
    "url": "https://margeoapp.com",
    "contact_email": "ceo@margeoapp.com"
  }
}
