erpgent-mcp
by Rommzzzz
README.md
# erpgent-mcp
Serveur MCP (Model Context Protocol) qui connecte un agent IA à l'ERP
[Dolibarr](https://www.dolibarr.org/) via son API REST. Construit pour
[ErpGent](https://app.erpgent.fr), un SaaS multi-tenant qui permet de piloter
Dolibarr en langage naturel.
## Architecture
Le serveur est **stateless et multi-tenant** : les credentials Dolibarr
(`dolibarr_url`, `api_key`) de chaque client sont transmis à chaque appel
d'outil, jamais stockés côté serveur MCP. Un seul déploiement peut donc
servir un nombre illimité de tenants.
```
Client MCP (agent IA)
→ POST /tool { tool_name, params, dolibarr_url, api_key }
→ dolibarr_mcp résout l'outil dans TOOL_REGISTRY
→ Appel API REST Dolibarr du tenant (DOLAPIKEY: {api_key})
← Résultat JSON
← { result, error }
```
## Outils disponibles
Couverture CRUD sur les entités principales de Dolibarr : factures, devis,
commandes, tiers (clients/fournisseurs/prospects), produits/stocks, commandes
fournisseurs, comptes bancaires et rapprochement, documents GED. Voir
[`dolibarr_mcp/tools.py`](dolibarr_mcp/tools.py) pour le détail des outils et
leurs paramètres.
## Installation
```bash
pip install -r requirements.txt
```
## Configuration
| Variable | Description |
| --- | --- |
| `MCP_SERVER_SECRET` | Secret partagé requis dans le header `x-mcp-secret` pour authentifier les appels `/tool`. |
| `PORT` | Port d'écoute HTTP (défaut `8001`). |
Les credentials Dolibarr (`dolibarr_url`, `api_key`) ne sont **pas** des
variables d'environnement : ils sont fournis dans le corps de chaque requête
`/tool`, ce qui permet de servir plusieurs tenants Dolibarr avec un seul
serveur.
## Lancer le serveur
```bash
python -m dolibarr_mcp
```
Ou avec Docker :
```bash
docker build -t erpgent-mcp .
docker run -d -p 8001:8001 -e MCP_SERVER_SECRET=your-secret erpgent-mcp
```
## Utilisation
```bash
curl -X POST http://localhost:8001/tool \
-H "Content-Type: application/json" \
-H "x-mcp-secret: your-secret" \
-d '{
"tool_name": "get_invoices",
"params": {"status": "1", "limit": 10},
"dolibarr_url": "https://your-dolibarr.example.com/api/index.php",
"api_key": "YOUR_DOLIBARR_API_KEY"
}'
```
## Tests
```bash
pytest
```
## Déploiement
Le projet inclut une configuration [Railway](https://railway.app)
(`railway.toml`) et un `Dockerfile` prêts à l'emploi.
## Licence
Ce code est publié à des fins de consultation uniquement. Usage commercial,
modification et redistribution sont interdits sans autorisation écrite —
voir [LICENSE](LICENSE) pour le détail.
Pour toute demande de licence commerciale ou de partenariat, contactez
[waro.ia.tech@gmail.com](mailto:waro.ia.tech@gmail.com).
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues