Zum Inhalt springen

Für Gemini CLI-Nutzer

GEMINI.md sagt Gemini deine Regeln.
Nicht deinen Code.

GEMINI.md legt den Arbeitskontext fest. MCP lässt Gemini nach Tools greifen. Maguyva ist der MCP-Server, der Gemini eine abfragbare Karte deines Repos liefert, damit der erste Edit keine Vermutung über die Dateistruktur ist.

Free-Stufe: 3 Repositories, Bis zu 50K indexierte Repo-Zeilen, keine Karte.

GEMINI.md ist der Kontext. MCP ist der Kanal. Maguyva ist die Karte.

Der geschichtete Stack

Vier Ideen. Jede erfüllt eine Aufgabe.

// kontext

GEMINI.md

Wie Gemini sich in diesem Repo verhalten soll.

// transport

MCP

Wie Gemini nach externen Tools und Kontext greift.

// codebase

Maguyva

Der MCP-Server, der verankerte Repo-Fakten liefert.

// wer zahlt

Workspaces, keine Seats

Agenten zahlen keine Seats. Preise ansehen

GEMINI.md ist ein Arbeitskontext. Nutz ihn.

Dauerhafte Anweisungen gehören in GEMINI.md. Das ist der richtige Ort für:

  • Build-, Test- und Lint-Befehle, die Gemini ausführen soll.
  • „Immer X / nie Y“-Guardrails, die auf ein Verzeichnis begrenzt sind.
  • Namenskonventionen und Refactoring-Präferenzen.
  • Verweise auf die kanonischen Entscheidungsprotokolle und Architekturnotizen.

Halte es kompakt. Begrenze den Scope. Committe es.

Aber GEMINI.md war nie dafür gedacht, ein abfragbarer Index jedes Symbols, jeder Datei und jeder Aufrufstelle in deinem Repo zu sein.

Wo GEMINI.md allein an seine Grenzen stößt

Vier Fehlermodi, einer pro Karte.

// kontext ist kein index

Gemini zu sagen, wie es arbeiten soll, sagt ihm nicht, was existiert. Der erste Edit an einem unbekannten Package ist eine Vermutung über Dateipfade und Funktionsnamen. GEMINI.md kann nicht jedes Symbol auflisten, und das sollte es auch nicht.

// das doc driftet vom code weg

Ein GEMINI.md-Block, der deine Queue-Topologie beschreibt, stimmt, bis jemand einen neuen Consumer einführt. Der Code ist jetzt die Quelle der Wahrheit, und das Doc ist zuverlässig veraltet. Gemini liest das falsche.

// umbenennen ist ein graph-problem

„Was referenziert diese Klasse?“ lässt sich aus einer Markdown-Datei nicht beantworten. Gemini greift entweder grep-und-hofft im gesamten Monorepo oder bittet dich, Aufrufstellen in den Chat zu pasten.

// context windows sind nicht kostenlos

Ein großes Fenster ist nicht dasselbe wie ein abfragbarer Index. GEMINI.md so lange zu laden, bis Gemini „genug weiß“, tauscht trotzdem Reasoning-Budget gegen statisches Kontextvolumen.

Wie die drei Schichten zusammenpassen

Gemini-Nutzer denken schon in dieser Struktur. Die Seite sollte das nur sichtbar machen.

GEMINI.md

kontext

wie Gemini sich verhält

MCP

der kanal

wie es zugreift

Maguyva

codebase-fakten

was es sieht

  • GEMINI.md wie Gemini sich in diesem Repo verhält.
  • MCP wie Gemini nach Tools und Kontext greift. (Spezifikation)
  • Maguyva was Gemini sieht, wenn es der Codebase eine Frage stellt. Semantische, AST-, Graph- und Textsuche, geliefert mit Dateipfaden und Zeilennummern.

GEMINI.md sagt Gemini, wie es arbeiten soll.

Maguyva gibt Gemini etwas, womit es arbeiten kann.

Drei Workflows

Gemini-spezifisch. Verankert im echten Call-Graph, nicht im Grep von Gemini.

// workflow 01

Eine gemeinsam genutzte Klasse umbenennen, zuerst jede Abhängigkeit finden

gemini> PaymentClient → BillingClient umbenennen

graph::callers(PaymentClient)            12 Referenzen über 7 Packages
graph::importers(src/payments/client.ts)  9 Importeure
graph::extends(PaymentClient)             2 Subklassen (RetryClient, MockClient)

 Gemini schlägt eine 21-Edit-Migration mit der Dateiliste inline vor.
[exit 0]

Gemini fragt Maguyva nach Abhängigkeiten, bevor es mit dem Editieren beginnt. Die Migrationsliste kommt verankert im echten Graph zurück, nicht in der Erinnerung von Gemini.

// workflow 02

Die echte Implementierung finden, nicht den Test-Stub

gemini> wie behandelt normalizePhoneNumber E.164?

semantic::query("normalize phone E.164")
  src/util/phone.ts:88   normalizePhoneNumber()   ← echte impl
  test/util/phone.spec.ts:14  jest.mock(...)      ← stub
[exit 0]

Namen lügen. Mocks überschatten echten Code. Maguyva reiht die echte Implementierung über dem Test-Mock ein.

// workflow 03

Auswirkungsradius prüfen, bevor ein Refactoring beginnt

gemini> was ruft QueueDispatcher.publish auf?

graph::callers(QueueDispatcher.publish)
  3 in src/billing/*    1 in src/audit/*    1 in src/notifications/*
[exit 0]

Paketübergreifende Aufrufstellen tauchen inline auf. Der Diff ist an echten Importeuren verankert, nicht am Grep von Gemini.

Einrichtung in Gemini CLI

Drei Schritte. Free-Stufe: 3 Repositories, Bis zu 50K indexierte Repo-Zeilen, keine Karte.

  1. // step 01

    Ein Repo auf maguyva.ai indexieren

    Wähl eines, das du gut kennst, damit du die Antworten überprüfen kannst.

  2. // step 02

    Maguyva als MCP-Server in deinen Gemini CLI-Einstellungen hinzufügen

    // ~/.gemini/settings.json
    {
      "mcpServers": {
        "maguyva": {
          "httpUrl": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer <your-key>"
          }
        }
      }
    }
  3. // step 03

    Eine Frage stellen, deren Antwort du schon kennst

    Fang nicht mit deiner ganzen Firma an. Fang mit einem Repo und einer überprüfbaren Frage an.