Synaplan Multimodal Gateway

공식

오픈 소스 서버의 전체 기능을 MCP 예제로 제공합니다.

Synaplan Multimodal Gateway MCP(으)로 무엇을 할 수 있나요?

  • Search your RAG knowledge base — 업로드된 문서를 대상으로 질문하고, POST /mcp 엔드포인트를 통해 자체 콘텐츠에 기반한 답변을 얻으세요.
  • Retrieve AI memories — Synaplan이 캡처한 사용자 프로필과 저장된 컨텍스트를 MCP 서버를 통해 도구 형태로 조회하세요.
  • Connect external MCP servers — Channels 아래에 자체 MCP 호환 서비스(CRM, wiki, n8n)를 추가하여 AI 플래너가 실시간 데이터를 가져올 수 있도록 하세요.
  • Process multi-step requests — 복잡한 작업을 (추출, 요약, 생성) 단계 그래프로 분해하여 실행 중 실시간 진행 카드를 스트리밍하세요.

문서

Synaplan

AI-powered knowledge management with RAG, chat widgets, and multi-channel integration.

License

Live instance: web.synaplan.com  |  Docs: docs.synaplan.com  |  API: Swagger UI

Watch the Synaplan demo

▶ Watch the demo on YouTube


Prerequisites

  • Docker + Docker Compose v2 (Docker Desktop on macOS/Windows, or Docker Engine + the Compose plugin on Linux)
  • Git
  • 8 GB RAM minimum (16 GB recommended for the local-AI standard install)
  • ~9 GB free disk for the standard install (~5 GB for minimal)
  • Free TCP ports 5173, 8000, 8082, 8025, 3307, 6333, 11435

Apple Silicon (M1–M4) Macs: Synaplan's container images are published for linux/amd64, so they run under emulation on Apple Silicon. In Docker Desktop → Settings → General, enable "Use Rosetta for x86/amd64 emulation on Apple Silicon" (macOS 13+) for much faster, more stable containers than the default QEMU. Everything works without it — just slower, and the first build takes longer.

Quick Start

git clone https://github.com/metadist/synaplan.git
cd synaplan
docker compose up -d

Open http://localhost:5173 — the UI is ready in ~2 minutes. With the standard install, local Ollama models (gpt-oss:20b, bge-m3, ~14 GB total) continue downloading in the background — chat that uses local AI will start working once that download finishes (docker compose logs -f backend shows progress). For the fastest first experience, use the Minimal install below.


Install Options

ModeCommandSizeBest For
Standarddocker compose up -d~9 GBFull features, local AI
Minimaldocker compose -f docker-compose-minimal.yml up -d~5 GBCloud AI only (Groq/OpenAI)

For the minimal install, set your API key before starting the stack so the first boot already sees it (avoids a restart). Get a free key at console.groq.com:

echo "GROQ_API_KEY=your_key" >> backend/.env
docker compose -f docker-compose-minimal.yml up -d

Already started without a key? Add it and restart the backend:

echo "GROQ_API_KEY=your_key" >> backend/.env && docker compose restart backend

Access

ServiceURL
Apphttp://localhost:5173
APIhttp://localhost:8000
API Docshttp://localhost:8000/api/doc
phpMyAdminhttp://localhost:8082
MailHoghttp://localhost:8025

Default Login Credentials:

EmailPasswordLevel
admin@synaplan.comadmin123ADMIN
demo@synaplan.comdemo123PRO
test@example.comtest123NEW (unverified)

Features

  • AI Chat — Ollama, OpenAI, Anthropic, Groq, Gemini
  • Multi-Task Routing — An AI planner decomposes complex requests into a task graph (extract → summarize → generate → reply) and streams live task cards while the steps execute
  • RAG Search — Semantic document search with MariaDB VECTOR or Qdrant
  • Chat Widget — Embed on any website (widget guide)
  • Live Support — Realtime WebSocket layer (Centrifugo + Redis): human takeover of widget chats, typing indicators, operator notifications (realtime guide)
  • WhatsApp — Meta Business API integration
  • Email — AI-powered email responses
  • Audio — Whisper transcription (input) + optional synaplan-tts (output)
  • Documents — PDF, Word, Excel, images with OCR
  • AI Memories — User profiling with Qdrant vector search
  • Feedback System — Feedback capture and analysis powered by Qdrant
  • Plugins — Non-invasive plugin system (plugin guide)
  • MCP Server (early access) — Connect AI clients (Claude, Cursor, …) over the Model Context Protocol; your RAG and memories become tools at POST /mcp (MCP guide)
  • MCP Client (early access) — Connect your MCP servers (CRM, wiki, n8n, …) under Channels → MCP Servers; the multi-task planner pulls live data from them via mcp_fetch DAG nodes — read-only, SSRF-guarded, per-topic opt-in. Enabled by seeded BCONFIG flags (MCP.CLIENT_ENABLED, MULTITASK.MCP_FETCH_ENABLEDapp:seed sets them ON on deploy; an explicit 0 row is the operator kill switch). See docs/MULTITASK_DATA_NODES.md

Qdrant Vector Database

Qdrant runs as an internal Docker service — no configuration needed. It powers AI memories, RAG document search, and the feedback system.

Starts automatically with docker compose up -d. Synaplan works fully without it (memories and vector search will be disabled).


Realtime & Background Processing

Both compose files also start three internal services (no host ports, no setup needed):

ServiceRole
redisMandatory shared infrastructure: cache, sessions, locks, rate limits, message queues (Redis Streams), Centrifugo engine
centrifugoWebSocket gateway for realtime features (live chat takeover, typing indicators, operator notifications) — browsers connect same-origin via /connection/websocket
workerSymfony Messenger consumer that executes async jobs (AI processing, document indexing, widget crawling)

In a multi-node cluster all nodes share one Redis, so WebSocket events published on one node reach browsers connected to any other. Details: docs/REALTIME.md.


Text-to-Speech (Optional)

For voice output, run synaplan-tts alongside Synaplan:

git clone https://github.com/metadist/synaplan-tts.git && cd synaplan-tts && docker compose up -d

Common Commands

# 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

User-facing & API docs live at docs.synaplan.com. Source: metadist/synaplan-docs.

In-repo guides (for developers working on this codebase):

GuideDescription
InstallationDetailed setup instructions
ConfigurationEnvironment variables, API keys
DevelopmentCommands, testing, architecture
Realtime / WebSocketsCentrifugo + Redis realtime layer, multi-node deployment
RAG SystemDocument search and processing
Chat WidgetEmbed chat on websites
WhatsAppMeta Business API setup
EmailEmail channel integration

Related Repositories

RepoPurpose
synaplanMain app (this repo)
synaplan-docsPublic docs site (docs.synaplan.com)
synaplan-ttsOptional Piper TTS service
synaplan-sortxDocument-sorting plugin + local tool
synaplan-chartsHelm charts for Kubernetes
synaplan-platformProduction deployment configs

Project Structure

synaplan/
├── backend/        # Symfony PHP API
├── frontend/       # Vue.js SPA
├── docs/           # Documentation
├── _docker/        # Docker configs
└── plugins/        # Plugin system

Contributing

See AGENTS.md for development guidelines and code standards.


License

Apache-2.0