Synaplan Multimodal Gateway
About
Offers the complete functionality of the Open Source server as a MCP example
Details
- Author
- metadist
- Categories
- Productivity
Jump to
Setup
Install Synaplan Multimodal Gateway in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/metadist/synaplan
Follow the installation instructions in the repository README, then restart your MCP client.
What can you do with Synaplan Multimodal Gateway MCP?
- Query your RAG knowledge base— Ask your assistant to search uploaded documents semantically via the MCP server, returning grounded answers from your files.
- Access AI memories— Retrieve user profiling data stored in Qdrant through MCP tools, enabling personalized responses based on past interactions.
- Trigger multi-task DAG routing— Have the assistant decompose complex requests into task graphs (extract → summarize → generate) and route each step to the optimal model.
- Connect external MCP servers— Configure your own MCP servers (CRM, wiki, n8n) under Channels → MCP Servers, letting the planner pull live data viamcp_fetchDAG nodes.
The open-source AI platform — chat, knowledge, media and agents on infrastructure you control.
Website·Docs·Live instance·iPhone App·Outlook Add-in·Discord
- We open-source artificial intelligence.The complete platform — backend, frontend, widgets, plugins — is Apache-2.0, Dockerized, and starts with one command. No core/enterprise split, no functional downgrade: self-hosted is the same software as our cloud.
- Hundreds of models, one platform.OpenAI, Anthropic, Google Gemini, Groq, Mistral, xAI, HuggingFace, sovereign EU providers, and any local model via Ollama — swap providers per task in the UI, without touching a config file. No vendor lock-in, ever.
- DAG task routing that saves tokens.An AI planner decomposes complex requests into a directed task graph (extract → summarize → generate → reply) and routes every step to the model that fits it — a cheap fast model for extraction, a strong one only where reasoning is needed. Live task cards stream while the graph executes, and every answer shows what it cost.
- Sovereign by design.Run on-prem, in the EU cloud, or fully air-gapped: chat, RAG knowledge search, document processing, transcription and speech run with zero internet connection. No training on your data, no forced telemetry — proven in production up to 5,000-workplace offline deployments.
- Everywhere you work.Web app,iPhone app,Outlook add-in, embeddable chat widget, WhatsApp, email — plus your files where they live, withNextcloudandOpenCloudintegrations.
- Extensible without forking.A non-invasive plugin system, an OpenAPI-documented REST API, an MCP serverandclient, and an Anthropic-compatible endpoint for Claude Code and friends.
git clone https://github.com/metadist/synaplan.git cd synaplan docker compose up -d
- Openhttp://localhost:5173.The UI is ready in about two minutes.
- Log inasadmin@synaplan.com/admin123.
- Open Admin → AI Providers and paste one API key.Free tier:Groq.
That third step is the whole setup.You never touch a config file to connect an AI provider.
- Paste it in the UI.Admin → AI Providers(/admin/setup) lists every provider with aConnectedbadge and a free-tier hint.
- Tested before it's saved.The key is validated against the live provider API, so a typo fails immediately instead of at your first chat.
- Encrypted at rest.It lives encrypted in your own database, not in a plaintext file on disk.
- Active instantly.No restart and no rebuild — the next message already uses it.
- Defaults repair themselves.If the default chat model points at a provider you have no key for, Synaplan repoints it to one that works, so chat is never dead on a fresh install.
- .envstill works.Keys already inbackend/.envare imported into the encrypted store on first use, and a key you later save in the UI wins permanently.
No cloud key at all?Start withENABLE_LOCAL_GPT_OSS=true docker compose up -dto pull a local chat model (gpt-oss:20b, ~14 GB, GPU or a strong CPU recommended). Chat begins working when the download finishes;docker compose logs -f backendshows progress.
Click any screenshot to see it full size.
Regenerate these assets after a UI change withscripts/build-readme-tour.sh.
The same assistant, the same knowledge base, the same model policy — on every channel your team already uses.
- Docker+Docker Compose v2(Docker Desktop on macOS/Windows, or Docker Engine + the Compose plugin on Linux)
- Git
- 8 GB RAMminimum (16 GB recommended for the local-AI standard install)
- ~9 GB free diskfor the standard install (~5 GB for minimal, +~14 GB if you enable the local chat model)
- Free TCP ports5173,8000,8082,8025,3307,6333,11435
Apple Silicon (M1–M4) Macs — build the backend image, don't pull it.The three-step start above already does this:docker compose up -dbuilds the backend and worker locally from a multi-arch base image, so PHP/FrankenPHP runsnatively onarm64with no emulation tax. That is by far the fastest setup, and it is the default — you don't have to do anything special. The pre-builtghcr.io/metadist/synaplanimage published for production deployments islinux/amd64only, so pulling it instead means running the whole backend under emulation. The first local build takes a few minutes; every later start is a cache hit. Two optional dev tools (phpMyAdmin, MailHog) are still amd64-only upstream images — if you keep them, enableDocker Desktop → Settings → General → "Use Rosetta for x86/amd64 emulation on Apple Silicon"(macOS 13+) so those two emulate quickly.
The standard install downloads the local embedding model (bge-m3, ~1 GB) in the background for RAG and semantic search; progress is shown in the app.
Prefer the shell to the UI for provider keys? Keys inbackend/.envstill work — the backend reads that file when the container starts and imports the key into the encrypted store on first use. Write the key before starting, or restart the containers afterwards:
echo "GROQ_API_KEY=your_key" >> backend/.env docker compose -f docker-compose-minimal.yml up -d # already running? pick up the new key with: # docker compose restart backend worker
- AI Chat— Ollama, OpenAI, Anthropic, Gemini, Groq, Mistral, xAI, TrustedTokens (DE), HuggingFace (provider list)
- Multi-Task DAG Routing— An AI planner decomposes complex requests into a directed task graph (extract → summarize → generate → reply), routes each step to the model that fits it, and streams live task cards while the steps execute — cheaper models for simple steps means fewer wasted tokens
- RAG Search— Semantic document search with MariaDB VECTOR or Qdrant
- Chat Widget— Embed on any website (widget guide)
- iPhone App— Chat, documents and voice input on iOS, pointed at web.synaplan.com or at your own server (App Store)
- 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) + optionalsynaplan-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 atPOST /mcp(MCP guide)
- MCP Client(early access)— ConnectyourMCP servers (CRM, wiki, n8n, …) underChannels → MCP Servers; the multi-task planner pulls live data from them viamcp_fetchDAG nodes — read-only, SSRF-guarded, per-topic opt-in. Enabled by seededBCONFIGflags (MCP.CLIENT_ENABLED,MULTITASK.MCP_FETCH_ENABLED—app:seedsets them ON on deploy; an explicit0row is the operator kill switch). Seedocs/MULTITASK_DATA_NODES.md
- Claude Code & Anthropic-compatible API— Point Claude Code or any Anthropic-protocol client at your instance (POST /v1/messages); configure underChannels → AI Agents(guide)
Synaplan is provider-neutral: connect the providers you want inAdmin → AI Providers(keys are validated live and stored encrypted in the database, active without a restart), or set the env variables below inbackend/.env— those are read at container start and imported into the encrypted store on first use. Each user picks a different modelper task(chat, vision, image, video, audio, embeddings) — nothing is hardcoded.
Transparent pricing.Every model carries its provider's own rate (USD per 1M tokens in/out, or per image / second / character for media) — no proprietary credit unit in between. The selector shows a Free / Low / Mid / High cost badge next to each model and on every answer,GET /api/v1/config/modelsreturnspriceIn/priceOut, and the Statistics page logs the real cost of each call. On the hosted instance atweb.synaplan.comthat same catalog is what your plan meters against; self-hosted with Ollama, the per-token cost is simply zero. Details:Model pricing & cost transparency.
Model catalog changes (new models, retired generations, price updates) ship as seeders plus a migration, so an existing install is repointed to a supported successor instead of silently keeping a dead model. Seedocs/PRICING_MAINTENANCE.md.
Qdrant runs as an internal Docker service — no configuration needed. It powers AI memories, RAG document search, and the feedback system.
Starts automatically withdocker compose up -d. Synaplan works fully without it (memories and vector search will be disabled).
Both compose files also start three internal services (no host ports, no setup needed):
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.
For voice output, runsynaplan-ttsalongside Synaplan:
git clone https://github.com/metadist/synaplan-tts.git && cd synaplan-tts && docker compose up -d
# 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
User-facing & API docs live atdocs.synaplan.com. Source:metadist/synaplan-docs.
In-repo guides (for developers working on this codebase):
synaplan/ ├── backend/ # Symfony PHP API ├── frontend/ # Vue.js SPA ├── docs/ # Documentation ├── _docker/ # Docker configs └── plugins/ # Plugin system
- Discord— chat with the team and community; the fastest place for self-hosting and configuration questions
- GitHub Issues— bugs and feature requests
- www.synaplan.com— product, hosting and enterprise contact
SeeAGENTS.mdfor development guidelines and code standards.
The 1Password MCP server creates a bridge that allows MCP clients such as Codex and Kiro to manage your 1Password Environments with secure authorization prompts.
This is the 1st, easiest, and cheapest PPT, slides, presentation AI generation MCP Server in the world.
Persistent memory for any AI assistant. Zero token cost until recall. Stores memories in local SQLite, ranks by 6-factor scoring, returns results 79% smaller than JSON. Works with Claude, ChatGPT, Grok, Cursor, Windsurf, and any MCP client.
A MCP server that enables AI assistants to interact with Anki, the spaced repetition flashcard application.
Enables LLM clients to interact with macOS applications through AppleScript. Built using the @beyondbetter/bb-mcp-server library, this server provides safe, controlled execution of predefined scripts with optional support for arbitrary script execution.
An MCP server for WordPress plugin audits
Turn your AI assistant into a digital marketing hub that creates, organizes, and analyzes links and QR Codes on demand.
Connect AI clients to Cal.com scheduling through the Model Context Protocol using the hosted server at mcp.cal.com or a local instance.
Sync Calendars, Scheduling Links, AI Executive Scheduling Assistant, Unified Calendar
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



