Synaplan Multimodal Gateway
oficialOferece a funcionalidade completa do servidor Open Source como um exemplo de MCP
O que você pode fazer com Synaplan Multimodal Gateway?
- Consultar base de conhecimento RAG — Faça perguntas sobre seus documentos enviados e obtenha respostas da IA com base no seu próprio conteúdo via
POST /mcp. - Recuperar memórias da IA — Consulte perfis de usuários e histórico de interações armazenados na busca vetorial Qdrant através do endpoint MCP.
- Decompor solicitações complexas — Envie tarefas de várias etapas que o planejador de IA divide em um grafo de tarefas (extrair, resumir, gerar) e transmite o progresso em tempo real.
- Gerenciar canais de chat — Conecte e configure WhatsApp, e-mail ou widgets de chat incorporados para conversas multicanal com IA.
- Conectar servidores MCP externos — Registre seus próprios servidores MCP em Canais para que o planejador de múltiplas tarefas possa obter dados ao vivo deles via nós
mcp_fetch.
Documentação
Synaplan
Gestão de conhecimento com IA, RAG, widgets de chat e integração multicanal.
Instância ativa: web.synaplan.com | Documentação: docs.synaplan.com | API: Swagger UI

Pré-requisitos
- Docker + Docker Compose v2 (Docker Desktop no macOS/Windows, ou Docker Engine + o plugin Compose no Linux)
- Git
- 8 GB de RAM no mínimo (16 GB recomendados para a instalação padrão com IA local)
- ~9 GB de espaço livre em disco para a instalação padrão (~5 GB para a mínima)
- Portas TCP livres
5173,8000,8082,8025,3307,6333,11435
Macs com Apple Silicon (M1–M4): As imagens de contêiner do Synaplan são publicadas para
linux/amd64, portanto, são executadas sob emulação no Apple Silicon. Em Docker Desktop → Configurações → Geral, ative "Usar Rosetta para emulação x86/amd64 no Apple Silicon" (macOS 13+) para contêineres muito mais rápidos e estáveis do que o QEMU padrão. Tudo funciona sem isso — apenas mais lento, e a primeira compilação demora mais.
Início Rápido
git clone https://github.com/metadist/synaplan.git
cd synaplan
docker compose up -d
Abra http://localhost:5173 — a interface fica pronta em ~2 minutos. Com a instalação padrão, os modelos locais do Ollama (gpt-oss:20b, bge-m3, ~14 GB no total) continuam baixando em segundo plano — o chat que usa IA local começará a funcionar assim que o download terminar (docker compose logs -f backend mostra o progresso). Para a primeira experiência mais rápida, use a instalação Mínima abaixo.
Opções de Instalação
| Modo | Comando | Tamanho | Ideal Para |
|---|---|---|---|
| Padrão | docker compose up -d | ~9 GB | Recursos completos, IA local |
| Mínima | docker compose -f docker-compose-minimal.yml up -d | ~5 GB | Apenas IA em nuvem (Groq/OpenAI) |
Para a instalação mínima, defina sua chave de API antes de iniciar a stack para que a primeira inicialização já a reconheça (evita uma reinicialização). Obtenha uma chave gratuita em console.groq.com:
echo "GROQ_API_KEY=your_key" >> backend/.env
docker compose -f docker-compose-minimal.yml up -d
Já iniciou sem uma chave? Adicione-a e reinicie o backend:
echo "GROQ_API_KEY=your_key" >> backend/.env && docker compose restart backend
Acesso
| Serviço | URL |
|---|---|
| Aplicativo | http://localhost:5173 |
| API | http://localhost:8000 |
| Documentação da API | http://localhost:8000/api/doc |
| phpMyAdmin | http://localhost:8082 |
| MailHog | http://localhost:8025 |
Credenciais de Login Padrão:
| Senha | Nível | |
|---|---|---|
| [email protected] | admin123 | ADMIN |
| [email protected] | demo123 | PRO |
| [email protected] | test123 | NOVO (não verificado) |
Funcionalidades
- Chat com IA — Ollama, OpenAI, Anthropic, Groq, Gemini
- Roteamento Multitarefa — Um planejador de IA decompõe solicitações complexas em um grafo de tarefas (extrair → resumir → gerar → responder) e transmite cartões de tarefa ao vivo enquanto as etapas são executadas
- Busca RAG — Busca semântica em documentos com MariaDB VECTOR ou Qdrant
- Widget de Chat — Incorpore em qualquer site (guia do widget)
- Suporte ao Vivo — Camada WebSocket em tempo real (Centrifugo + Redis): tomada de controle humana de chats do widget, indicadores de digitação, notificações para operadores (guia de tempo real)
- WhatsApp — Integração com a API do Meta Business
- Email — Respostas de email com IA
- Áudio — Transcrição com Whisper (entrada) + opcional synaplan-tts (saída)
- Documentos — PDF, Word, Excel, imagens com OCR
- Memórias de IA — Perfil de usuário com busca vetorial Qdrant
- Sistema de Feedback — Captura e análise de feedback com Qdrant
- Plugins — Sistema de plugins não invasivo (guia de plugins)
- Servidor MCP (acesso antecipado) — Conecte clientes de IA (Claude, Cursor, …) através do Model Context Protocol; seu RAG e memórias se tornam ferramentas em
POST /mcp(guia MCP) - Cliente MCP (acesso antecipado) — Conecte seus servidores MCP (CRM, wiki, n8n, …) em Canais → Servidores MCP; o planejador multitarefa extrai dados ao vivo deles via nós DAG
mcp_fetch— somente leitura, protegido contra SSRF, adesão por tópico. Habilitado por flags semeadasBCONFIG(MCP.CLIENT_ENABLED,MULTITASK.MCP_FETCH_ENABLED—app:seedas ativa na implantação; uma linha explícita0é o interruptor de desligamento do operador). Veja docs/MULTITASK_DATA_NODES.md
Banco de Dados Vetorial Qdrant
O Qdrant é executado como um serviço Docker interno — nenhuma configuração é necessária. Ele alimenta as memórias de IA, a busca RAG em documentos e o sistema de feedback.
Inicia automaticamente com docker compose up -d. O Synaplan funciona plenamente sem ele (memórias e busca vetorial serão desabilitadas).
Processamento em Tempo Real e em Segundo Plano
Ambos os arquivos compose também iniciam três serviços internos (sem portas de host, sem necessidade de configuração):
| Serviço | Função |
|---|---|
redis | Infraestrutura compartilhada obrigatória: cache, sessões, bloqueios, limites de taxa, filas de mensagens (Redis Streams), mecanismo Centrifugo |
centrifugo | Gateway WebSocket para funcionalidades em tempo real (tomada de controle de chat ao vivo, indicadores de digitação, notificações para operadores) — navegadores se conectam na mesma origem via /connection/websocket |
worker | Consumidor Symfony Messenger que executa tarefas assíncronas (processamento de IA, indexação de documentos, rastreamento de widgets) |
Em um cluster multinó, todos os nós compartilham um Redis, então eventos WebSocket publicados em um nó alcançam navegadores conectados a qualquer outro. Detalhes: docs/REALTIME.md.
Texto-para-Fala (Opcional)
Para saída de voz, execute o synaplan-tts junto com o Synaplan:
git clone https://github.com/metadist/synaplan-tts.git && cd synaplan-tts && docker compose up -d
Comandos Comuns
# 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
Documentação
A documentação voltada ao usuário e da API está em docs.synaplan.com. Fonte: metadist/synaplan-docs.
Guias no repositório (para desenvolvedores que trabalham nesta base de código):
| Guia | Descrição |
|---|---|
| Instalação | Instruções detalhadas de configuração |
| Configuração | Variáveis de ambiente, chaves de API |
| Desenvolvimento | Comandos, testes, arquitetura |
| Tempo Real / WebSockets | Camada de tempo real Centrifugo + Redis, implantação multinó |
| Sistema RAG | Busca e processamento de documentos |
| Widget de Chat | Incorpore chat em sites |
| Configuração da API do Meta Business | |
| Integração do canal de email |
Repositórios Relacionados
| Repositório | Finalidade |
|---|---|
| synaplan | Aplicativo principal (este repositório) |
| synaplan-docs | Site público de documentação (docs.synaplan.com) |
| synaplan-tts | Serviço TTS Piper opcional |
| synaplan-sortx | Plugin de ordenação de documentos + ferramenta local |
| synaplan-charts | Helm charts para Kubernetes |
| synaplan-platform | Configurações de implantação em produção |
Estrutura do Projeto
synaplan/
├── backend/ # Symfony PHP API
├── frontend/ # Vue.js SPA
├── docs/ # Documentation
├── _docker/ # Docker configs
└── plugins/ # Plugin system
Contribuindo
Veja AGENTS.md para diretrizes de desenvolvimento e padrões de código.