Skip to main content
Glama
GoulvenF

ebp-mcp

by GoulvenF

ebp-mcp

Projet de serveur MCP communautaire pour consulter les données EBP Cloud/SaaS via des outils métier. Non affilié à EBP Informatique.

État : implémentation v0.1 lancée dans Paperclip ; aucun serveur exécutable ni paquet npm publié dans ce dépôt à cette date. L'analyse, les contrats et le plan ont été validés le 2026-10-06. Le corpus est publié sur GitHub ; T01 est en cours et T02–T14 attendent leurs dépendances.

Dépôt : GoulvenF/ebp-mcp, licence MIT, paquet @goulvenf/ebp-mcp. La publication GitHub du corpus précède le développement ; la publication npm fait l'objet du jalon T24.

Périmètre cible : Hubbix Comptabilité, Hubbix Gestion Commerciale, SaaS Gestion Commerciale et SaaS Bâtiment. Première livraison prévue : socle TypeScript/Node 24, transport stdio, 17 outils Hubbix testés sur mocks. Identifiants EBP fournis par l'utilisateur ; lecture seule. Les données exposées au client MCP peuvent être transmises au fournisseur de modèle qu'il utilise.

Configuration

config.json vit sous $XDG_CONFIG_HOME/ebp-mcp (sinon ~/.config/ebp-mcp). Voir examples/config.demo.json pour un profil avec des dossiers synthétiques en prod et en preprod. Secrets (clientSecret, subscriptionKey) recommandés en variables d'environnement plutôt qu'en fichier — voir .env.example. La précédence normative (CLI > env > profil > défaut) est décrite dans 07 §2 et vérifiée par la table de tests tests/config/precedence.test.ts.

Related MCP server: week7-mcp-server

Développement

Paquet non publié ("private": true). Depuis un clone, après npm ci :

npm ci              # installation reproductible depuis package-lock.json
npm run typecheck   # tsc --noEmit sur src/ et tests/
npm test            # vitest run (déclenche le build si nécessaire)
npm run build       # tsc -p tsconfig.build.json → dist/
npm run verify:pack # contrôle du tarball npm (après build)

Tests sans réseau. npm test charge une garde réseau (tests/cli/garde-reseau.mjs) dans chaque worker vitest (setupFiles) et, via NODE_OPTIONS=--import, dans chaque processus Node enfant (tests/garde/global-setup.ts). Seul le loopback est permis ; toute autre émission (fetch, net, tls, dns) est bloquée et journalisée, et la suite échoue en fin d'exécution avec les cibles en cause, même si le test a avalé l'erreur. Preuve : tests/garde/garde-globale.test.ts.

Contrôle du tarball. npm run verify:pack (scripts/verifier-paquet.mjs) lance npm pack --dry-run --json et refuse le paquet si un fichier sort de dist/**, package.json, README.md, LICENSE, porte un nom sensible (.env*, config.json, tokens.json, generations.json, *.pem, *.key, *.har, fixtures de corpus, tests) ou contient un motif de secret (Authorization: Bearer avec valeur, JWT, clé privée PEM, refresh_token/access_token littéral, e-mail hors domaines d'exemple). Les refus citent fichier, ligne et règle, jamais la valeur. Les vrais positifs légitimes sont listés et justifiés dans EXCEPTIONS. La CI l'exécute après le build.

Binaire ebp-mcp

Non publié ni installé globalement : après npm run build, le binaire est dist/cli.js (exécutable, shebang Node). Toujours l'invoquer explicitement avec node dans ce dépôt :

node dist/cli.js <commande> [options]

Commandes : serve (défaut), login [--no-browser], logout, status [--json], dossiers list [--json], dossiers add --famille <hubbix-compta|hubbix-gescom> --id <guid> --alias <alias> [--nom <nom>], dossiers remove --alias <alias>.

Options communes : --profile <p>, --env <prod|preprod>, --mock (données synthétiques, aucun réseau réel). --help/-h et --version existent au niveau global et par commande.

Codes de sortie : 0 succès ; 2 entrée/config invalide ou usage (commande/option inconnue) ; 3 authentification requise ; 1 toute autre erreur.

Démonstration hors ligne (--mock)

node dist/cli.js login --mock    # écrit des tokens simulés sous <racine>/mock/
node dist/cli.js serve --mock    # serveur MCP sur stdio, données synthétiques

Aucune émission réseau réelle en mode mock (transport simulé, identité OAuth simulée). Les réponses portent meta.mode: "mock" ; les données exposées sont synthétiques (jeu de démo src/mock/donnees/), jamais des données EBP réelles.

MCP Inspector local

npx @modelcontextprotocol/inspector node dist/cli.js serve --mock

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Read-only MCP server for Dynamics 365 Business Central, enabling AI clients to query live ERP data like customers, items, orders, and invoices via GET-only APIs with dual authentication and stdio/HTTP transports.
    10
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP-compatible clients to retrieve invoice and purchase order data live over stdio through tools for listing invoices, getting invoice details, and fetching purchase orders.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables querying enterprise records and retention policies from any MCP client over stdio, with read-only tools for searching records, fetching retention verdicts, identifying archival candidates, summarizing departments, forecasting retentions, and viewing audit history.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP-based integration with the Priority ERP OData REST API, with strict environment validation and a read-only default. As of the current README, no tools are registered yet; the server only boots and waits on stdio.
    MIT