Synaplan Multimodal Gateway
officielOffers the complete functionality of the Open Source server as a MCP example
Que pouvez-vous faire avec Synaplan Multimodal Gateway ?
- Query RAG knowledge base — Ask questions against your uploaded documents and get AI answers grounded in your own content via
POST /mcp. - Retrieve AI memories — Look up user profiles and interaction history stored in Qdrant vector search through the MCP endpoint.
- Decompose complex requests — Submit multi-step tasks that the AI planner breaks into a task graph (extract, summarize, generate) and streams back live progress.
- Manage chat channels — Connect and configure WhatsApp, email, or embedded chat widgets for multi-channel AI-powered conversations.
- Connect external MCP servers — Register your own MCP servers under Channels so the multi-task planner can pull live data from them via
mcp_fetchnodes.
Documentation
Synaplan
Gestion des connaissances alimentée par l'IA avec RAG, widgets de chat et intégration multi-canal.
Instance en direct : web.synaplan.com | Documentation : docs.synaplan.com | API : Swagger UI

Prérequis
- Docker + Docker Compose v2 (Docker Desktop sur macOS/Windows, ou Docker Engine + le plugin Compose sur Linux)
- Git
- 8 Go de RAM minimum (16 Go recommandés pour l'installation standard avec IA locale)
- ~9 Go d'espace disque libre pour l'installation standard (~5 Go pour la version minimale)
- Ports TCP libres
5173,8000,8082,8025,3307,6333,11435
Macs Apple Silicon (M1–M4) : Les images de conteneurs de Synaplan sont publiées pour
linux/amd64, elles s'exécutent donc sous émulation sur Apple Silicon. Dans Docker Desktop → Paramètres → Général, activez "Utiliser Rosetta pour l'émulation x86/amd64 sur Apple Silicon" (macOS 13+) pour des conteneurs beaucoup plus rapides et stables qu'avec QEMU par défaut. Tout fonctionne sans cela — c'est juste plus lent, et la première construction prend plus de temps.
Démarrage rapide
git clone https://github.com/metadist/synaplan.git
cd synaplan
docker compose up -d
Ouvrez http://localhost:5173 — l'interface utilisateur est prête en ~2 minutes. Avec l'installation standard, les modèles Ollama locaux (gpt-oss:20b, bge-m3, ~14 Go au total) continuent de se télécharger en arrière-plan — le chat utilisant l'IA locale commencera à fonctionner une fois ce téléchargement terminé (docker compose logs -f backend affiche la progression). Pour une première expérience plus rapide, utilisez l'installation Minimale ci-dessous.
Options d'installation
| Mode | Commande | Taille | Idéal pour |
|---|---|---|---|
| Standard | docker compose up -d | ~9 Go | Fonctionnalités complètes, IA locale |
| Minimale | docker compose -f docker-compose-minimal.yml up -d | ~5 Go | IA cloud uniquement (Groq/OpenAI) |
Pour l'installation minimale, définissez votre clé API avant de démarrer la pile afin que le premier démarrage la voie déjà (évite un redémarrage). Obtenez une clé gratuite sur console.groq.com :
echo "GROQ_API_KEY=your_key" >> backend/.env
docker compose -f docker-compose-minimal.yml up -d
Déjà démarré sans clé ? Ajoutez-la et redémarrez le backend :
echo "GROQ_API_KEY=your_key" >> backend/.env && docker compose restart backend
Accès
| Service | URL |
|---|---|
| Application | http://localhost:5173 |
| API | http://localhost:8000 |
| Documentation API | http://localhost:8000/api/doc |
| phpMyAdmin | http://localhost:8082 |
| MailHog | http://localhost:8025 |
Identifiants de connexion par défaut :
| Mot de passe | Niveau | |
|---|---|---|
| [email protected] | admin123 | ADMIN |
| [email protected] | demo123 | PRO |
| [email protected] | test123 | NOUVEAU (non vérifié) |
Fonctionnalités
- Chat IA — Ollama, OpenAI, Anthropic, Groq, Gemini
- Routage multi-tâches — Un planificateur IA décompose les requêtes complexes en un graphe de tâches (extraire → résumer → générer → répondre) et diffuse des cartes de tâches en direct pendant l'exécution des étapes
- Recherche RAG — Recherche sémantique de documents avec MariaDB VECTOR ou Qdrant
- Widget de chat — Intégrez sur n'importe quel site web (guide du widget)
- Support en direct — Couche WebSocket en temps réel (Centrifugo + Redis) : prise de contrôle humaine des chats du widget, indicateurs de frappe, notifications aux opérateurs (guide temps réel)
- WhatsApp — Intégration de l'API Meta Business
- Email — Réponses par email alimentées par l'IA
- Audio — Transcription Whisper (entrée) + optionnel synaplan-tts (sortie)
- Documents — PDF, Word, Excel, images avec OCR
- Mémoires IA — Profilage utilisateur avec recherche vectorielle Qdrant
- Système de feedback — Capture et analyse des retours alimentées par Qdrant
- Plugins — Système de plugins non invasif (guide des plugins)
- Serveur MCP (accès anticipé) — Connectez des clients IA (Claude, Cursor, …) via le Model Context Protocol ; votre RAG et vos mémoires deviennent des outils sur
POST /mcp(guide MCP) - Client MCP (accès anticipé) — Connectez vos serveurs MCP (CRM, wiki, n8n, …) sous Canaux → Serveurs MCP ; le planificateur multi-tâches en extrait des données en direct via des nœuds DAG
mcp_fetch— lecture seule, protégé contre les SSRF, activation par sujet. Activé par des indicateursBCONFIGpréconfigurés (MCP.CLIENT_ENABLED,MULTITASK.MCP_FETCH_ENABLED—app:seedles active au déploiement ; une ligne0explicite sert d'interrupteur d'arrêt pour l'opérateur). Voir docs/MULTITASK_DATA_NODES.md
Base de données vectorielle Qdrant
Qdrant s'exécute comme un service Docker interne — aucune configuration nécessaire. Il alimente les mémoires IA, la recherche de documents RAG et le système de feedback.
Démarre automatiquement avec docker compose up -d. Synaplan fonctionne parfaitement sans lui (les mémoires et la recherche vectorielle seront désactivées).
Temps réel et traitement en arrière-plan
Les deux fichiers compose démarrent également trois services internes (pas de ports hôtes, aucune configuration nécessaire) :
| Service | Rôle |
|---|---|
redis | Infrastructure partagée obligatoire : cache, sessions, verrous, limites de débit, files de messages (Redis Streams), moteur Centrifugo |
centrifugo | Passerelle WebSocket pour les fonctionnalités en temps réel (prise de contrôle de chat en direct, indicateurs de frappe, notifications aux opérateurs) — les navigateurs se connectent en même origine via /connection/websocket |
worker | Consommateur Symfony Messenger qui exécute les tâches asynchrones (traitement IA, indexation de documents, exploration de widgets) |
Dans un cluster multi-nœuds, tous les nœuds partagent un seul Redis, de sorte que les événements WebSocket publiés sur un nœud atteignent les navigateurs connectés à n'importe quel autre. Détails : docs/REALTIME.md.
Synthèse vocale (Optionnel)
Pour la sortie vocale, exécutez synaplan-tts aux côtés de Synaplan :
git clone https://github.com/metadist/synaplan-tts.git && cd synaplan-tts && docker compose up -d
Commandes courantes
# Logs
docker compose logs -f backend
# Restart
docker compose restart backend
# Reset database
docker compose down -v && docker compose up -d
# Run tests
make test
# Code quality
make lint
Documentation
La documentation utilisateur et API est disponible sur docs.synaplan.com. Source : metadist/synaplan-docs.
Guides internes au dépôt (pour les développeurs travaillant sur cette base de code) :
| Guide | Description |
|---|---|
| Installation | Instructions d'installation détaillées |
| Configuration | Variables d'environnement, clés API |
| Développement | Commandes, tests, architecture |
| Temps réel / WebSockets | Couche temps réel Centrifugo + Redis, déploiement multi-nœuds |
| Système RAG | Recherche et traitement de documents |
| Widget de chat | Intégrer le chat sur des sites web |
| Configuration de l'API Meta Business | |
| Intégration du canal email |
Dépôts associés
| Dépôt | Objectif |
|---|---|
| synaplan | Application principale (ce dépôt) |
| synaplan-docs | Site de documentation publique (docs.synaplan.com) |
| synaplan-tts | Service TTS Piper optionnel |
| synaplan-sortx | Plugin de tri de documents + outil local |
| synaplan-charts | Chartes Helm pour Kubernetes |
| synaplan-platform | Configurations de déploiement en production |
Structure du projet
synaplan/
├── backend/ # Symfony PHP API
├── frontend/ # Vue.js SPA
├── docs/ # Documentation
├── _docker/ # Docker configs
└── plugins/ # Plugin system
Contribuer
Voir AGENTS.md pour les directives de développement et les normes de code.