Skip to main content
Glama
Solvro

SOLVRO MCP - Knowledge Graph RAG System

Official
by Solvro

┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  Frontend   │────▶│  ToPWR API  │────▶│  MCP Server │────▶│    Neo4j    │
│    :80      │     │    :8000    │     │    :8005    │     │    :7687    │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘
React + Nginx         FastAPI              FastMCP          Knowledge Graph
  • PWrChat 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 services

Related MCP server: Unreal Engine Knowledge Graph MCP Server

Architektur

Systemübersicht

┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  Frontend   │────▶│  ToPWR API  │────▶│  MCP Server │────▶│    Neo4j    │
│    :80      │     │    :8000    │     │    :8005    │     │    :7687    │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘
React + Nginx         FastAPI              FastMCP          Knowledge Graph

Dienst

Port

Beschreibung

frontend

80

PWrChat — React-Chatbot-UI, bereitgestellt durch Nginx

topwr-api

8000

FastAPI-Backend für die ToPWR-App

mcp-server

8005

MCP-Server mit RAG-Pipeline

neo4j

7474/7687

Wissensgraph-Datenbank

RAG-Pipeline

Das Herzstück des Systems ist eine auf LangGraph basierende RAG-Pipeline, die Benutzeranfragen intelligent verarbeitet:

Pipeline-Ablauf:

  1. Guardrails - Schnelles LLM bestimmt, ob die Anfrage für die Wissensdatenbank relevant ist

  2. Cypher-Generierung - Präzises LLM wandelt natürliche Sprache in eine Cypher-Abfrage um

  3. Abruf (Retrieval) - Ausführung der Abfrage gegen den Neo4j-Wissensgraphen

  4. Antwort - Rückgabe strukturierter Kontextdaten

Daten-Pipeline

Separate ETL-Pipeline zum Einlesen von Dokumenten in den Wissensgraphen:

Pipeline-Schritte:

  1. Dokumentenladen - Einlesen von PDF- und Textdokumenten

  2. Textextraktion - OCR und Inhaltsextraktion

  3. LLM-Verarbeitung - Generierung von Cypher-Abfragen aus Inhalten

  4. 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=8005

Befehle

# 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 ETL

Projektstruktur

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 proxy

API-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}/sessions

Tech-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

Maintenance

ActivityActive
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables storage and retrieval of knowledge in a graph database format, allowing users to create, update, search, and delete entities and relationships in a Neo4j-powered knowledge graph through natural language.
    5
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Neo4j graph databases through natural language, supporting Cypher queries, schema management, data manipulation, and graph algorithms.
    MIT