Skip to main content
Glama
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).

Maintenance

ActivityMaintained
ResponsivenessNo issues