Reference for all environment variables, configuration options, and architecture.
| Variable | Default | Beschreibung |
|---|---|---|
QDRANT_URL |
"" |
Qdrant HTTP URL (z.B. http://qdrant:6333). Wenn leer → lokaler SQLite-Store |
NEO4J_URI |
"" |
Neo4j Bolt URI (z.B. bolt://neo4j:7687). Wenn leer → lokaler SQLite-Store |
NEO4J_USER |
neo4j |
Neo4j-Benutzer |
NEO4J_PASSWORD |
"" |
Neo4j-Passwort |
SIMONE_MEMORY_DIR |
~/.simone |
Lokaler SQLite-Speicherort (Memory-DBs in Unterordnern) |
LOCAL_EMBEDDING_MODEL |
all-MiniLM-L6-v2 |
Sentence-Transformer Modell für lokale Embeddings |
QDRANT_EMBEDDING_MODEL |
"" |
Sentence-Transformer Modell für Qdrant-Embeddings |
| Variable | Default | Beschreibung |
|---|---|---|
SIMONE_AUTH_REQUIRED |
false |
OAuth 2.1 erforderlich (true/false) |
SIMONE_OAUTH_ISSUER |
"" |
OAuth-Issuer (z.B. https://accounts.google.com) |
SIMONE_OAUTH_AUDIENCE |
simone-mcp |
OAuth-Audience |
SIMONE_OAUTH_JWKS_URL |
"" |
JWKS-URL für Token-Validierung |
SIMONE_OAUTH_ALGORITHMS |
RS256,ES256 |
Erlaubte Signatur-Algorithmen |
| Variable | Default | Beschreibung |
|---|---|---|
SIMONE_RATE_LIMIT_WINDOW |
60 |
Rate-Limit Fenster in Sekunden |
SIMONE_RATE_LIMIT_MAX |
100 |
Maximale Requests pro Fenster |
| Variable | Default | Beschreibung |
|---|---|---|
SIMONE_ALLOWED_ORIGINS |
http://localhost,http://127.0.0.1,https://opensin.ai |
Erlaubte CORS-Origins |
| Variable | Default | Beschreibung |
|---|---|---|
SUPABASE_URL |
"" |
Supabase Project URL |
SUPABASE_ANON_KEY |
"" |
Supabase Anon Key |
SUPABASE_SERVICE_ROLE_KEY |
"" |
Supabase Service Role Key |
| Variable | Default | Beschreibung |
|---|---|---|
OTEL_EXPORTER_OTLP_ENDPOINT |
"" |
OTLP-Endpunkt |
OTEL_SERVICE_NAME |
simone-mcp |
Service-Name für Traces |
| Variable | Default | Beschreibung |
|---|---|---|
LOG_LEVEL |
INFO |
Log-Level |
SIMONE_MAX_REQUEST_BODY |
1048576 |
Maximale Request-Body-Größe (Bytes) |
┌─────────────────────────────────────────────────┐
│ Client │
│ (OpenCode / CLI / HTTP) │
└────────────┬────────────────────────┬───────────┘
│ MCP (stdio/HTTP) │ A2A
▼ ▼
┌───────────────────────┐ ┌──────────────────┐
│ mcp_stdio.py │ │ a2a_handler.py │
│ protocol.py │ │ │
└──────────┬────────────┘ └──────────────────┘
│
▼
┌───────────────────────┐
│ core.py │
│ execute_simone_action│
└──────────┬────────────┘
│
┌─────┴──────┐
▼ ▼
┌─────────┐ ┌────────────┐
│ Symbol │ │ Hybrid │
│ Search │ │ Memory │
│(ast/jedi│ │ │
│libcst/ │ │ ┌────────┐ │
│treesit) │ │ │Local │ │
│ │ │ │SQLite │ │
│ Find │ │ │(always)│ │
│ Refs │ │ ├────────┤ │
│ Edit │ │ │Qdrant │ │
│ │ │ │(opt) │ │
│ Overview│ │ ├────────┤ │
│ │ │ │Neo4j │ │
│ │ │ │(opt) │ │
└─────────┘ └────────────┘
query_hybrid_memory(payload)
├─ QDRANT_URL gesetzt? → _query_qdrant()
│ └─ Fehler? → _query_local_semantic() [SQLite Fallback]
├─ KEIN Qdrant → _query_local_semantic() [SQLite direkt]
├─ NEO4J gesetzt + target_symbol? → _query_neo4j()
│ └─ Fehler? → _query_local_graph() [SQLite Fallback]
└─ KEIN Neo4j → _query_local_graph() [SQLite direkt]
Immer enabled: enabled: True wird in allen Modi zurückgegeben.
| Tool Name | Beschreibung | ReadOnly |
|---|---|---|
sin_simone_mcp_health |
Status + Version + Memory-Enabled | ✅ |
sin_simone_mcp_symbol_search |
LSP-Symbolsuche (AST/Jedi/LibCST/TreeSitter) | ✅ |
sin_simone_mcp_structural_edit |
Strukturelle Code-Editierung (LibCST/AST) | ❌ |
sin_simone_mcp_memory_query |
Semantische + strukturelle Memory-Suche | ✅ |
sin_simone_mcp_find_references |
Referenzsuche (Jedi/Regex) | ✅ |
sin_simone_mcp_project_overview |
Workspace-Footprint + Dateitypen | ✅ |
Der lokale Memory-Store speichert:
CREATE TABLE vectors (
id INTEGER PRIMARY KEY AUTOINCREMENT,
collection TEXT NOT NULL DEFAULT 'default',
file TEXT NOT NULL DEFAULT '',
symbol TEXT NOT NULL DEFAULT '',
text TEXT NOT NULL DEFAULT '',
embedding BLOB,
created_at REAL NOT NULL DEFAULT (unixepoch())
);CREATE TABLE symbols (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
kind TEXT NOT NULL DEFAULT 'unknown',
file TEXT NOT NULL DEFAULT '',
line INTEGER DEFAULT 0,
created_at REAL NOT NULL DEFAULT (unixepoch())
);CREATE TABLE symbol_relations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
source_id INTEGER NOT NULL,
target_id INTEGER NOT NULL,
rel_type TEXT NOT NULL DEFAULT 'references',
created_at REAL NOT NULL DEFAULT (unixepoch())
);Speicherort: ~/.simone/<db_name>/memory.db (konfigurierbar via SIMONE_MEMORY_DIR)
Embeddings: Sentence-Transformer (all-MiniLM-L6-v2) oder SHA-256 Fallback.
Similarity: Cosine Similarity, Threshold ≥ 0.3.
# .env.example → .env kopieren + anpassen
cp .env.example .env
# Alle Services starten
docker compose up -d
# Status prüfen
docker compose ps
# NAME STATUS
# simone-mcp Up
# qdrant Up
# neo4j Up| Service | Port | Protokoll |
|---|---|---|
| Simone MCP HTTP | 8234 | HTTP (MCP + A2A) |
| Qdrant | 6333 | HTTP |
| Neo4j | 7474 | HTTP (Browser) |
| Neo4j | 7687 | Bolt (Client) |
SIMONE_AUTH_REQUIRED=true
SIMONE_OAUTH_ISSUER=https://accounts.google.com
SIMONE_OAUTH_AUDIENCE=simone-mcp
SIMONE_OAUTH_JWKS_URL=https://www.googleapis.com/oauth2/v3/certs
Wenn SIMONE_AUTH_REQUIRED=false (default): kein Auth erforderlich.
Alle öffentlichen Pfade (/health, /dashboard, /.well-known/*) sind immer frei.
Seit V0.1.0 (lokaler SQLite-Store) ist memory IMMER enabled.
Falls trotzdem false:
- Alte Code-Version? →
git pull - Python-Pfad korrekt? →
PYTHONPATH=srcsetzen - Schreibrechte auf
~/.simone? →ls -la ~/.simone
- Simone MCP in OpenCode aktiviert? →
"enabled": truein opencode.json - Python3 vorhanden? →
which python3 - Neustart von OpenCode nötig
Docker nicht gestartet? → docker compose up -d qdrant neo4j
Oder: lokalen Modus nutzen — env vars einfach leer lassen.
pip install sentence-transformers fehlt? Ohne dieses Paket werden SHA-256-basierte
Embeddings genutzt — funktional aber semantisch schwach.
Stand: 2026-05-30 | v0.1.0 | Delqhi/Simone-MCP