MCP sur mesure — Sage 100
Sage 100 MCP : connecter votre ERP à vos agents IA
Sage 100 n'expose pas d'API REST publique. Hunter BI construit le serveur MCP qui s'appuie sur les Objets Métiers pour le connecter à Claude ou ChatGPT.
En bref
Sage 100 (génération i7, ex-Ligne 100) n'a jamais eu d'API REST publique généraliste : les intégrateurs travaillent avec les Objets Métiers, une couche d'automation COM que Sage documente pour son réseau. C'est cette porte que nous utilisons pour construire un serveur MCP sur mesure — il expose la lecture et l'écriture de vos fiches, documents de vente ou stocks comme des outils qu'un agent Claude ou ChatGPT peut appeler, sans jamais contourner les contrôles métier de l'ERP.
Sage 100 équipe des dizaines de milliers de PME et d'ETI en France et au Maroc — comptabilité, gestion commerciale, immobilisations, parfois production. C'est un logiciel mûr, éprouvé, et pour cette raison même construit sur une architecture antérieure aux standards web actuels : base de données locale (SQL Server pour la génération i7), moteur applicatif Windows, et une logique métier pensée pour un poste de travail, pas pour un service exposé sur Internet.
Cette antériorité a une conséquence directe : contrairement à un ERP cloud-native, Sage 100 n'a jamais proposé d'API REST publique généraliste que ses éditeurs de connecteurs pourraient consommer librement. Les intégrations existantes — logiciels de caisse, plateformes e-commerce, outils de reporting — passent presque toutes par la même porte technique que celle que nous utilisons pour MCP : l'automation locale. Ce n'est pas un défaut caché ; c'est la réalité connue de tout intégrateur Sage 100, et le point de départ honnête de tout projet de connecteur IA.
Mis à jour le 4 septembre 2026
01
Pourquoi Sage 100 n'a pas d'API REST généraliste
Sage 100 est né dans les années 1990 sous le nom Sage Ligne 100, à une époque où l'intégration logicielle se pensait en composants COM/OLE installés localement, pas en services web. Les générations successives — jusqu'à l'actuelle génération i7 — ont modernisé l'interface, la base de données et le moteur de calcul, mais ont conservé cette philosophie d'automation locale par rétrocompatibilité : des milliers de connecteurs et de développements spécifiques existants, chez des milliers de clients, reposent dessus.
Sage propose par ailleurs des briques cloud (Sage Business Cloud) avec des API REST modernes — mais ces API concernent les offres cloud de l'éditeur, pas l'ERP Sage 100 installé sur site que possède la grande majorité de son parc français et marocain. Pour une entreprise qui exploite Sage 100 en interne, sur son propre serveur, l'API REST généraliste n'existe tout simplement pas à ce jour.
02
Ce qui existe réellement : les Objets Métiers
Ce que Sage documente et met à disposition de son réseau d'intégrateurs s'appelle les Objets Métiers (Business Objects) : une bibliothèque COM installée avec le logiciel, qui expose les entités de gestion — clients, articles, documents de vente, écritures — sous forme d'objets manipulables depuis n'importe quel langage capable de dialoguer avec le COM Windows : VBA historiquement, mais tout aussi bien Python via pywin32, C#, ou PowerShell.
C'est une automation locale, pas un service réseau : le code qui pilote les Objets Métiers doit s'exécuter sur — ou avoir un accès réseau direct vers — le poste ou le serveur où Sage 100 est installé. C'est une contrainte réelle, dont nous tenons compte dès le cadrage : un serveur MCP pour Sage 100 se déploie typiquement sur le serveur applicatif de l'ERP, ou sur une machine Windows qui y a un accès direct, jamais en SaaS générique.
03
Ce que nous construisons
Nous développons un serveur MCP qui encapsule les appels aux Objets Métiers derrière des outils nommés et documentés pour votre agent IA — « lire une fiche client », « créer un devis », « consulter un stock » — plutôt que d'exposer l'API COM brute, dangereuse à manipuler sans garde-fous. Chaque outil applique les contrôles que votre équipe définit : lecture seule par défaut sur les données sensibles, validation humaine avant toute écriture, périmètre de dossiers Sage accessibles limité explicitement.
Le périmètre de départ dépend de votre besoin réel : un premier connecteur porte souvent sur un flux unique — consultation de stock en langage naturel, préparation de devis, extraction comptable pour un tableau de bord — avant d'être élargi. Nous ne livrons jamais un accès total non testé.
04
Limites et prérequis techniques
Trois prérequis conditionnent un connecteur Sage 100 MCP : un accès Windows au serveur applicatif Sage (les Objets Métiers sont une technologie COM, donc Windows uniquement), une licence Sage 100 valide couvrant le nombre de connexions consommées par le connecteur, et une version i7 récente — les très anciennes versions Ligne 100 exposent des Objets Métiers moins complets. Nous vérifions ces trois points dès le premier échange, avant tout engagement.
La preuve technique
Un connecteur Sage 100, pas une promesse
Configuration
Déclaré dans Claude Desktop
Une fois développé, le serveur se déclare comme n'importe quel outil MCP — spécialisé pour votre instance Sage 100 et votre chemin d'installation.
{
"mcpServers": {
"sage-100": {
"command": "python",
"args": ["-m", "mcp_server_sage100"],
"env": {
"SAGE100_DOSSIER": "C:\\Sage\\Gestion\\Dossiers\\SOCIETE01",
"SAGE100_EXERCICE": "2026"
}
}
}
}Le serveur
Un vrai serveur MCP, pas un mockup
Le point de départ que nous adaptons à votre version exacte de Sage 100 et à votre configuration.
from mcp.server.fastmcp import FastMCP
import win32com.client # les Objets Métiers Sage 100 sont du COM Windows
mcp = FastMCP("sage-100")
# Le ProgID exact dépend de votre version (i7 / Sage 100cloud) —
# déterminé lors de l'audit, jamais deviné en production.
sage = win32com.client.Dispatch("Objets100c.Application")
@mcp.tool()
def get_client(code: str) -> dict:
"""Lit une fiche client via les Objets Métiers Sage 100."""
fiche = sage.ListeClients.Item(code)
return {"code": fiche.Code, "raisonSociale": fiche.RaisonSociale}
if __name__ == "__main__":
mcp.run(transport="stdio")Questions fréquentes
Sage 100 a-t-il vraiment aucune API ?
Aucune API REST publique généraliste pour l'ERP installé sur site, non. Sage propose des API REST modernes pour ses offres cloud (Sage Business Cloud), mais Sage 100 en tant que tel — la version que la majorité des PME françaises et marocaines exploitent en interne — reste piloté par les Objets Métiers, une automation COM locale. C'est cette porte que nous utilisons.
Faut-il installer quelque chose sur notre serveur Sage 100 ?
Le serveur MCP doit s'exécuter sur, ou avoir un accès direct au, poste ou serveur où Sage 100 est installé — c'est une contrainte des Objets Métiers, qui sont une technologie locale et non un service réseau. Concrètement, cela signifie un petit service Windows déployé à côté de votre installation Sage, pas un appel depuis un cloud public.
Quelles actions un agent IA peut-il faire sur Sage 100 ?
Ce que vous décidez, et rien de plus. Chaque outil MCP est nommé et scopé explicitement — lecture d'une fiche, création d'un devis, consultation d'un stock — avec, par défaut, la lecture seule sur les données sensibles et une validation humaine avant toute écriture. Aucun accès générique à l'ensemble de la base Sage n'est exposé.
Combien de temps pour un premier connecteur Sage 100 ?
Un connecteur ciblé sur un flux unique se construit généralement en deux à quatre semaines : audit de votre version et de vos Objets Métiers disponibles, développement, tests sur votre dossier réel. Un périmètre plus large s'élargit ensuite par étapes validées, jamais en un bloc non testé.
Est-ce compatible avec Sage 100 Ligne de production (Sage X3) ?
Non — Sage X3 est un ERP distinct, avec sa propre architecture technique (et une API REST bien plus moderne que Sage 100). Cette page couvre spécifiquement Sage 100 (ex-Ligne 100, génération i7 / Sage 100cloud) ; parlez-nous de votre version exacte lors du premier échange pour confirmer l'approche.
Votre Sage 100 n'a pas d'API ? On construit le pont.
Trente minutes pour vérifier ce qui est accessible sur votre configuration exacte — automation, base locale, ou export planifié.
- Réponse sous 24 h ouvrées, par un ingénieur
- Diagnostic gratuit, sans engagement
- Membre des réseaux partenaires OpenAI et Anthropic