SOLVRO MCP - Knowledge Graph RAG System
Official┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Frontend │────▶│ ToPWR API │────▶│ MCP Server │────▶│ Neo4j │
│ :80 │ │ :8000 │ │ :8005 │ │ :7687 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
React + Nginx FastAPI FastMCP Knowledge GraphPWrChat UI - React-Chatbot (Sitzungs-Seitenleiste, Umschalter für Dunkel-/Hellmodus, persistentes Design)
Intelligentes Query-Routing - Guardrails-System bestimmt die Relevanz von Abfragen
Natürliche Sprache zu Cypher - Wandelt Fragen in Graph-Abfragen um
Wissensgraph-RAG - Retrieval-Augmented Generation mit Neo4j
MCP-Protokoll - Standard-Schnittstelle für das Model Context Protocol
Observability - Optionale Integration von Langfuse-Tracing
Docker-bereit - Bereitstellung mit einem Befehl
Schnellstart
# Setup
just setup
cp .env.example .env # Edit with your API keys
# Run with Docker
just up # Start Neo4j + MCP Server + API
just logs # View logs
just down # Stop servicesArchitektur
Systemübersicht
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Frontend │────▶│ ToPWR API │────▶│ MCP Server │────▶│ Neo4j │
│ :80 │ │ :8000 │ │ :8005 │ │ :7687 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
React + Nginx FastAPI FastMCP Knowledge GraphDienst | Port | Beschreibung |
| 80 | PWrChat — React-Chatbot-UI, bereitgestellt durch Nginx |
| 8000 | FastAPI-Backend für die ToPWR-App |
| 8005 | MCP-Server mit RAG-Pipeline |
| 7474/7687 | Wissensgraph-Datenbank |
RAG-Pipeline
Das Herzstück des Systems ist eine auf LangGraph basierende RAG-Pipeline, die Benutzeranfragen intelligent verarbeitet:
Pipeline-Ablauf:
Guardrails - Schnelles LLM bestimmt, ob die Anfrage für die Wissensdatenbank relevant ist
Cypher-Generierung - Präzises LLM wandelt natürliche Sprache in eine Cypher-Abfrage um
Abruf (Retrieval) - Ausführung der Abfrage gegen den Neo4j-Wissensgraphen
Antwort - Rückgabe strukturierter Kontextdaten
Daten-Pipeline
Separate ETL-Pipeline zum Einlesen von Dokumenten in den Wissensgraphen:
Pipeline-Schritte:
Dokumentenladen - Einlesen von PDF- und Textdokumenten
Textextraktion - OCR und Inhaltsextraktion
LLM-Verarbeitung - Generierung von Cypher-Abfragen aus Inhalten
Graph-Befüllung - Ausführung von Abfragen zum Aufbau des Wissensgraphen
Konfiguration
Kopieren Sie .env.example nach .env und konfigurieren Sie:
########################################
# LLM / AI Provider Keys
########################################
# OpenAI API key (optional)
OPENAI_API_KEY=
# DeepSeek API key (optional)
DEEPSEEK_API_KEY=
# Google Generative AI / PaLM API key (optional)
GOOGLE_API_KEY=
# CLARIN LLM API key (optional, used by API & client)
CLARIN_API_KEY=
########################################
# Langfuse Observability
########################################
LANGFUSE_SECRET_KEY=
LANGFUSE_PUBLIC_KEY=
LANGFUSE_HOST=https://cloud.langfuse.com
########################################
# Neo4j Database
########################################
# URI used by data pipeline, MCP server and graph config
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=
########################################
# Data Pipeline Runtime Controls
########################################
# Max parallel pages processed per batch
DATA_PIPELINE_MAX_CONCURRENCY=4
# Minutes after which a stuck in-progress hash can be reclaimed
DATA_PIPELINE_CLAIM_STALE_MINUTES=30
########################################
# MCP Server Networking
########################################
# Bind host for the MCP server process
MCP_BIND_HOST=0.0.0.0
# Host/port used by API and MCP client to reach the MCP server
MCP_HOST=127.0.0.1
MCP_PORT=8005Befehle
# Docker Stack
just up # Start all services (including frontend at :80)
just down # Stop services
just logs # View logs
just ps # Service status
just nuke # Remove everything
# Local Development
just mcp-server # Run MCP server
just api # Run FastAPI
just kg "query" # Query knowledge graph
# Frontend
just frontend-install # Install npm dependencies
just frontend-dev # Start dev server at :3000 (requires running API)
just frontend-build # Build for production
# Quality
just lint # Format & lint
just test # Run tests
just ci # Full CI pipeline
uv run --with pytest python -m pytest tests/data_pipeline/test_pipeline_concurrency.py -q
# Run pipeline concurrency/idempotency tests only
# Data Pipeline
just prefect-up # Start Prefect
just pipeline # Run ETLProjektstruktur
src/
├── mcp_server/ # MCP server + RAG pipeline
├── mcp_client/ # CLI client
├── topwr_api/ # FastAPI backend
├── config/ # Configuration
└── data_pipeline/ # Prefect ETL flows
frontend/
├── src/
│ ├── api/ # API client
│ ├── hooks/ # useUserId, useSessions, useChat, useTheme
│ ├── components/ # Sidebar, Chat, shared UI
│ └── types/ # TypeScript mirrors of backend models
└── package.json # React + Vite + TailwindCSS
docker/
├── compose.stack.yml # Main stack (Neo4j + MCP + API + Frontend)
├── compose.prefect.yml # Data pipeline
├── Dockerfile.mcp # MCP server image
├── Dockerfile.api # FastAPI image
├── Dockerfile.frontend # React + Nginx image
└── nginx.conf # SPA fallback + API proxyAPI-Nutzung
Chat-Endpunkt
curl -X POST http://localhost:8000/api/chat \
-H "Content-Type: application/json" \
-d '{"user_id": "user1", "message": "Czym jest nagroda dziekana?"}'Antwort:
{
"session_id": "abc123",
"message": "Nagroda dziekana to wyróżnienie przyznawane...",
"metadata": {
"source": "mcp_knowledge_graph",
"trace_id": "xyz789"
}
}Sitzungsverwaltung
# Get session history
curl http://localhost:8000/api/sessions/{session_id}/history
# List user sessions
curl http://localhost:8000/api/users/{user_id}/sessionsTech-Stack
Technologie | Zweck |
React 18 + TypeScript | Frontend-Chat-UI |
Vite + TailwindCSS v3 | Build-Tools & Styling |
Nginx | Frontend-Bereitstellung + API-Proxy |
FastMCP | Model Context Protocol-Server |
LangGraph | RAG-Zustandsmaschine |
LangChain | LLM-Orchestrierung |
Neo4j | Wissensgraph-Datenbank |
FastAPI | REST-API-Backend |
Langfuse | Observability (optional) |
Prefect | Daten-Pipeline-Orchestrierung |
Docker | Containerisierung |
Lizenz
MIT © Solvro
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Solvro/ml-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server