GraphJin: ein geregelter Graph über Datenbanken, Dateien und Code für KI-Agenten
Dieses Projekt rundet „One governed graph for AI agents, GraphQL + MCP over your databases, files, APIs, and code.“ zu einer praxistauglichen Open-Source-Lösung zusammen, mit wiederverwendbarer Tooling- und Integrationsunterstützung für reale Anwendungsfälle.
Auf einen Blick
- Was ist das?
- Ein Go-Compiler und eine Laufzeit, die GraphQL und MCP auf bestehende Unternehmenssysteme legen. Der Bericht folgt dem Weg von der Installation über die Demo bis zu Agentenendpunkt, CodeSQL-Indizierung und Produktionsregeln.
- Für wen ist es gedacht?
- GraphJin passt für Teams, die KI-Agenten kontrollierten Zugriff auf operative Datenbanken, Data Warehouses, Dateien und Quellcode geben wollen, ohne Rohdatenbank-Zugangsdaten weiterzureichen, und die dafür den integrierten Agenten unter /api/v1/agent oder eigene Clients über den MCP-Endpunkt anbinden. Wer klassische GraphQL-Dienste baut, kann denselben Compiler ohne Agenten nutzen.
- Darf ich es kommerziell nutzen?
- Ja. Apache-2.0 ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Die letzten Commits kamen vor 4 Tagen.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich Go, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
Ein geregelter Graph statt Rohzugriff für Agenten
GraphJin ist ein in Go geschriebener Compiler und eine Laufzeit, die die Systeme eines Unternehmens, also Datenbanken, Data Warehouses, Dateien, Quellcode, Workflows, Metadaten und Sicherheitsrichtlinien, als einen einzigen geregellten Graphen bereitstellt. Die Grundhaltung des README lässt sich so zusammenfassen: Statt einem Agenten Rohdatenbank-Zugangsdaten zu geben und auf richtige Ratschlüsse zu hoffen, wird der Graph über GraphQL und MCP ausgeliefert, sodass der Agent vor dem Handeln entdeckt, Abfragen validiert, genehmigte Arbeit ausführt und Laufzeitstatus beobachtet.
Jede Antwort wird vor dem Verlassen des Servers gegen ein Ausführungsregister geprüft. Das Projekt betont, dass es damit nicht nur Agenten dient: GraphJin bleibt ein leistungsfähiger GraphQL-zu-Datenbank-Compiler, eine Go-Bibliothek, ein eigenständiger API-Dienst, ein REST- und OpenAPI-Gateway sowie ein Echtzeit-Abonnementserver.
Die Verbindungsliste ist lang: PostgreSQL, MySQL, MongoDB, SQLite, Oracle, MSSQL, Snowflake, Redshift, BigQuery, Apache Cassandra beziehungsweise Amazon Keyspaces, S3-, GCS- und lokale Dateien sowie CodeSQL-Quellindizes; als Modelle werden Dienste von Claude und GPT-4 bis zu lokale 7B-Modelle genannt. Nach Metadaten vom 29. August 2026 zeigt das Repository rund 3.152 Sterne, 194 Forks und 21 offene Issues, die Lizenz ist Apache-2.0.
Der eingebaute Agent unter /api/v1/agent
GraphJin führt einen serverseitigen Agenten mit. Ein Aufruf genügt: POST an /api/v1/agent oder das MCP-Werkzeug ask_graphjin_agent, und der Server fährt die Entdeckungsschleife selbst, als Aufrufer und mit den Berechtigungen des Aufrufers. Die Antwort ist typisiert und belegbasiert mit den Feldern status, answer, data, evidence, actions und next.
Der Weg dorthin beginnt strukturiert: Agenten starten mit query_catalog(search: "<Nutzeranweisung>") und graphql_help, dazu kommen Beziehungsnachweise, Beispiele, Konfigurationsrezepte und Sicherheitshinweise, bevor eine Abfrage geschrieben oder ausgeführt wird. Schutzmechanismen sind im Kern integriert: Quellenmodus-Zugriff, Abfragen-Merklisten, Nur-Lese-Grenzen, richtlinienbewusste MCP-Werkzeuge, lokal verschlüsselte Geheimnisse und gj_config mit Vorschau- und Anwendungsstufe, damit Änderungen nachvollziehbar bleiben.
Für den laufenden Betrieb gelten operative Werkzeuge: gj_security und gj_runtime geben Richtlinien- und begrenzten Laufzeitstatus frei, gespeicherte Abfragen, Fragmente und Workflows liegen im besitzerspezifischen Speicher gj_artifacts, und dauerhafte Beobachtungen über gj_watch lassen stehende Fragen unter den Rechten des Besitzers laufen, liefern ausgelöste Ereignisse in dieinbox gj_watch_event, an Webhooks oder Workflows; ausdrückliche flüchtige Beobachtungen nutzen TTL-Leasing.
Installation, Demobetrieb und der erste Agentenaufruf
Die Installation läuft über npm mit npm install -g graphjin, über Homebrew mit brew install dosco/graphjin/graphjin, über Scoop mit dem graphjin-Bucket, über .deb- und .rpm-Pakete aus den Releases oder über das Docker-Abbild dosco/graphjin. Der schnellste Einstieg ist ein Befehl ohne Klone und ohne Docker: graphjin serve --demo entpackt eine SaaS-Demo mit Konten, Abos, Rechnungen und Support-Tickets auf SQLite samt Beispieldaten, gespeicherten Abfragen und Workflows nach ./graphjin-demo.
Die Demo lauscht auf Port 8083 mit Weboberfläche, GraphQL unter /api/v1/graphql, REST unter /api/v1/rest/, Workflows und MCP unter /api/v1/mcp. Wer den Datenstand zurücksetzen will, löscht den Unterordner demo/, wer alles neu braucht, den gesamten Ordner graphjin-demo. Mit einem Modellschlüssel in ./.env, etwa OPENAI_API_KEY, ANTHROPIC_API_KEY oder GOOGLE_APIKEY, schaltet derselbe Befehl in den Agentenmodus.
Das README zeigt den ersten Aufruf als curl-Post mit der Anweisung, welches Konto am stärksten von Abwanderung bedroht ist. Im Webconsole-Pfad localhost:8083/agent streamt der Agent jeden Werkzeugaufruf live mit. Größere Demos liegen im Repository unter examples/: ein Webshop auf Postgres, eine Kaffeerösterei mit Postgres, BigQuery-Emulation und CodeSQL, eine Wellpappenfabrik auf MySQL mit JWT-Rollen und eine Leiterplattenfertigung über Postgres, Snowflake-Emulation, MongoDB, Dateiquelle und OpenAPI; make smoke-all fährt deren Testsuiten.
Anbindung von Codex und Claude über den MCP-Endpunkt
Für KI-Clients gibt es einen Hilfsbefehl, der URL-Normalisierung, Authentifizierungsprobe und Konfigurationsinstallation in einem Schritt erledigt: graphjin mcp add codex, graphjin mcp add claude oder graphjin mcp add all http://localhost:8080. Die Vorgaben sind client=codex und server=http://localhost:8080, und die Adresse wird zu /api/v1/mcp normalisiert. Lokales HTTP ohne TLS gilt als korrekt für die Entwicklung am Loopback, gehostete Server sollen HTTPS nutzen.
Wer native Clientbefehle vorzieht, fügt den Streamable-HTTP-Endpunkt direkt hinzu, etwa codex mcp add graphjin --url http://localhost:8080/api/v1/mcp oder claude mcp add --transport http graphjin mit derselben URL. Für Claude ist der http-Transport die richtige Wahl, SSE bleibt älteren oder Sonder-MCP-Servern vorbehalten, und --global macht die Verbindung über das aktuelle Projekt hinaus verfügbar.
Für gehostete Server mit OAuth beschreibt das README geschützte-Ressourcen-Metadaten, Autorisierungsserver-Metadaten und DCR-Erkennung, sodass Clients per URL hinzugefügt werden und den Login selbst abwickeln. Ein älterer auth_login-Gerätecode-Ablauf wird vom Hilfsbefehl automatisch erkannt, wobei eine anmeldefreie lokale Proxy-Konfiguration gespeichert wird.
Compileraufbau in sieben Schritten und CodeSQL
Das README beschreibt den Betrieb als sieben Schritte: Verbindung zur Datenbank und automatisches Lesen des Schemas, Entdecken von Beziehungen aus Fremdschlüsseln, Bereitstellen von Metadaten über die eingebauten gj_*-Tabellen, Indizieren von Quellcode über CodeSQL in einer verwalteten SQLite-Datenbank, Bereitstellen der MCP-Werkzeuge, Ausführen von JavaScript-Workflows, die MCP-Werkzeuge verketten, und Kompilieren jeder Anfrage in eine einzelne optimierte SQL-Abfrage. Ausdrücklich behauptet das Projekt keine Resolver, kein ORM und keine N+1-Abfragen.
CodeSQL ist der Quellarten-Zweig: Ein Konfigurationseintrag zeigt auf einen Ordner, tree-sitter baut einen SQLite-Cache unter config/codesql auf, der bei Neustart aktualisiert wird und in der Entwicklung Änderungen überwacht. Abfragen gegen gj_code wählen daraus Dateien, Symbole, Referenzen, Importe, Datenbankverweise und weitere indizierte Elemente aus, was einem Agenten erlaubt, Code und Daten in derselben Abfragesprache zu durchsuchen.
Der eingebaute Katalog gj_catalog entsteht nach den Standardeinstellungen des Bereitstellungsmodus ohne eigenen Quelleneintrag. Damit ist die Entdeckungsphase, die Agenten laut Konzept zuerst durchlaufen sollen, nicht Zusatzbaustein, sondern Teil der Auslieferung.
Abfragefunktionen, Abonnements und Produktionsregeln
Auf der Abfrageseite unterstützt GraphJin Standard-GraphQL mit Filtern, verschachtelten Beziehungen, Aggregationen und Mutationen. Analysefunktionen erscheinen als Direktiven wie @running, @moving, @previous und @rank für laufende Summen, gleitende Mittelwerte und Rangfolgen; die Richtlinie on_conflict: get deckt Einzeilen-Einfügungen in Postgres und SQLite ab, räumliche Abfragen nutzen st_dwithin mit Punkt und Entfernung.
Echtzeitabonnements laufen über WebSockets oder SSE, und für Datenbanken mit Batch-Unterstützung bedient GraphJin viele Abonnenten mit einer Datenbankabfrage statt einer pro Teilnehmer. Dateisystemtabellen stellen lokale Ordner sowie S3- und GCS-Buckets als normale GraphQL-Tabellen dar, mit vorab signierten URLs und derselben Abfrageoberfläche wie Datenbanktabellen; Dateiuploads laufen über Multipart-Anfragen mit optionalem Streaming in eine Dateisystemtabelle.
Für die Produktion nennt das README Abfragen-Merklisten, in denen nur gespeicherte Abfragen ausgeführt werden, Quellenmodus-Zugriff mit anforderungsweiter Identität und quellenbezogenen Lese- und Schreibregeln, JWT-Authentifizierung über Auth0, Firebase oder JWKS-Endpunkte sowie Redis-basiertes Antwort-Caching mit Stale-While-Revalidate. Für das vollständige Sicherheitsmodell verweist das Projekt auf SECURITY.md. Was das README nicht liefert, sind Benchmark-Zahlen und unabhängige Sicherheitsprüfungen; wer Leistungswerte braucht, muss sie an der eigenen Demo mit make smoke-all und eigenen Lastläufen erheben.
Redaktionelles Fazit
GraphJin passt für Teams, die KI-Agenten kontrollierten Zugriff auf operative Datenbanken, Data Warehouses, Dateien und Quellcode geben wollen, ohne Rohdatenbank-Zugangsdaten weiterzureichen, und die dafür den integrierten Agenten unter /api/v1/agent oder eigene Clients über den MCP-Endpunkt anbinden. Wer klassische GraphQL-Dienste baut, kann denselben Compiler ohne Agenten nutzen. Das README nennt keine Benchmark-Zahlen und keine unabhängigen Audits, und der Release-Takt von drei Versionen an einem Tag Ende August 2026 zeigt ein sehr bewegtes Projekt, dessen aktuelles Verhalten man anhand des Demobefehls graphjin serve --demo gegen die eigenen Anforderungen prüfen sollte.
Community-Notizen