CommunityBildgithub.com

jzubielik/grok-mcp

Verwenden Sie dies, wenn Sie mit Grok MCP-Tools arbeiten (Agent-Prompts und Tool-Loops, Bildanalyse, Bildgenerierung) ODER wenn Sie die Token-Kosten einer Aufgabe auf Ihrem aktuellen Modell abschätzen möchten. ODER wenn eine Aufgabe mehr als 50K Token, große Dateien oder eine vollständige Codebasis-Analyse umfasst – um zu entscheiden, ob Sie zur Kosteneinsparung durch Grok leiten und das richtige Modell auswählen.

Was ist grok-mcp?

Das `jzubielik/grok-mcp`-Skill dient als umfassendes Agenten-Skills-Referenz für die Arbeit mit Grok MCP-Tools. Es hilft Entwicklern und KI-Agenten-Nutzern zu entscheiden, ob sie eine Aufgabe selbst erledigen oder an Grok weiterleiten sollen, basierend auf Kosten, Modellfähigkeiten und Aufgabentyp. Das Skill unterstützt Aufgaben wie Text-Prompts, Bildgenerierung, Bildanalyse (lokal), große Codebasis-Analysen (>200K Token) und Tool-Loops mit Lese-, Schreib-, Shell-, Fetch- und Such-Tools. Auf diesen Plattformen einsetzbar: Claude Code, Cursor und andere KI-Agenten, die MCP-Tools unterstützen. Der Workflow umfasst: Einschätzung der Token-Kosten vor jedem Aufruf, verpflichtende Weitergabe eines `max_cost_usd`-Budgets mit einer Obergrenze von $2 (ohne Benutzerzustimmung), und Auswahl des günstigsten Modells, das die Aufgabe erfüllen kann, mit Eskalation nur bei unzureichender Qualität. Das Skill bietet detaillierte Preise, Modellkennzeichnungen (billigstes, Flaggschiff, Code) und eine Kostenkontrolle mit Schätzung vor Aufruf und anschließender Kostenberichterstattung.

Funktioniert mit~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/jzubielik/grok-mcp/tree/HEAD/skills/grok-mcp

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Grok MCP — Agenten-Skills-Referenz

Verwenden Sie diese Datei, um zu entscheiden, welches Tool aufgerufen werden soll, welches Modell verwendet werden soll und wann Grok gar nicht aufgerufen werden soll. Es gibt keine Standardmodelle – Sie übergeben model bei jedem Aufruf und wählen es bewusst aus: das günstigste Modell, das die Aufgabe erledigen kann; erhöhen Sie nur, wenn die Qualität nicht ausreicht.


Wann Grok MCP vs. selbst erledigen

AufgabeGrok MCP verwendenSelbst erledigen
Benutzer fragt explizit nach Grok✅ immer der Anfrage nachkommen—
Ein Bild generieren oder bearbeiten✅ immer✗ die meisten Modelle können keine Bilder generieren
Ein lokales Dateibild analysieren✅ agent(model=..., image_paths=[...])✗ erfordert Datei auf der Festplatte
Große Codebasis-Analyse (>200K Token)✅ agent(model=<großer-Kontext>, tools=["read"])✗ Kontextlimit
Ihre Antwort mit Groks vergleichen✅ beide aufrufen✅ beide aufrufen
Allgemeiner Text / Denken (unaufgefordert)✗ unnötige Kosten✅ bevorzugen
Codegenerierung (unaufgefordert)✗ es sei denn, Ihr aktuelles Modell ist nicht verfügbar✅ bevorzugen

Standardregel: zuerst selbst erledigen. Greifen Sie auf Grok zurück, wenn:

  • Der Benutzer explizit nach Grok fragt (z. B. „ask Grok“, „use Grok“, „generate with Grok“)
  • Ihr aktuelles Modell die Aufgabe nicht erledigen kann (Bildgenerierung, lokale Dateiansicht, Kontext erschöpft)
  • Der Benutzer bittet darum, Ihre Antwort mit Groks zu vergleichen

Modellauswahl – Ihre Entscheidung, jeder Aufruf

Jedes Tool, das ein Grok-Modell ausführt (agent, read mit einer Frage, shell, search, generate_image*) erfordert model. Es gibt keine Rollen, keine Standardeinstellungen, keinen auto-Router. Ein fehlendes oder unbekanntes Modell schlägt sofort mit der Liste der gültigen Optionen fehl.

Woher die Optionen kommen: Die Beschreibung jedes Tools listet den aktuellen xAI-Katalog auf – ID, Kontextfenster, Preis pro 1 M Token (normal und gecached) und [images] für Modelle, die Bildeingabe akzeptieren. Die Liste wird von der live xAI-API beim Serverstart gefüllt; list_models(refresh=true) ruft den Katalog erneut ab, meldet, was sich geändert hat, und aktualisiert die Tool-Beschreibungen. Hardcoden Sie niemals einen Modellnamen oder Preis aus dem Gedächtnis – lesen Sie die Liste.

Rollentags. Der Server markiert Modelle aus dem Live-Katalog, niemals nach Namen – so überlebt die Richtlinie unten Modellaustausche: cheapest (niedrigster Preis), flagship (neueste Generation, tiefgründigste, teuerste), code (für Code optimiert). Wählen Sie nach Tag und nach den angezeigten Preisen.

Standardrichtlinie – günstig starten, nur bei Nachweis eskalieren:

  1. Routinearbeit (Fragen, Zusammenfassungen, Extraktion, Klassifikation, Code-Änderungen, Datei-Review) → das cheapest-Modell, reasoning_effort="low" wo das Modell es akzeptiert.
  2. Eskalieren Sie auf flagship nur, wenn die Antwort eines günstigen Laufs eindeutig unzureichend war oder die Aufgabe eine tiefe mehrschrittige Analyse über viele Dateien hinweg ist. Nicht „um sicherzugehen“.
  3. Lange oder tool-intensive Läufe: tools=["read"] + benannte Dateien, background=True und ein explizites max_cost_usd, das Sie aus der Schätzung unten ausgewählt haben – verlassen Sie sich niemals auf den Serverstandard.
  4. Lesen Sie das Ergebnis: cost_usd, stopped und hint. Ein hint bedeutet, dass der Lauf vorzeitig endete oder teuer für ein Flaggschiff war – folgen Sie ihm (wiederholen Sie mit cheapest, grenzen Sie die Aufgabe ein), anstatt denselben Aufruf zu wiederholen.
BedarfWählen
Eingabe größer als ~200K Tokenein Modell, dessen Kontextfenster passt – ctx prüfen
Bildeingabeein mit [images] gekennzeichnetes Modell
Bildgenerierungmit dem günstigsten Bildmodell iterieren, endgültige Darstellung auf einem qualitativ hochwertigen

Kostenkontrolle – obligatorisch für jeden agent()- / read- / shell- / search-Aufruf

1. Zuerst schätzen und angeben. Vor dem Aufruf dem Benutzer eine Zeile schreiben: Schätzung: ~<N>K Eingabe-Token, ~<R> Runden, <Modell> → ~$<X>. Für einen winzigen Einzelaufruf (eine kurze Frage) reicht eine Klausel („~2K Token, <$0.01“). Berechnen Sie es aus den Preisen in der Tool-Beschreibung (niemals aus dem Gedächtnis):

  • Einzelschuss (kein tools): Eingabe-Token × Eingabe-Preis + erwartete Ausgabe × Ausgabe-Preis (1 Token ≈ 4 Zeichen; Reasoning-Token werden als Ausgabe abgerechnet).
  • Tool-Schleife: jede Runde sendet die gesamte Konversation erneut, daher steigen die Kosten mit den Runden. Verwenden Sie Runden × durchschnittlicher Kontext × gecachter Preis plus die neuen Token und Ausgaben jeder Runde. Frühere cost_usd-Werte aus dieser Sitzung sind die beste Kalibrierung – bevorzugen Sie sie gegenüber der Theorie.
  • Unsicher? Nehmen Sie die Obergrenze: Sie wird sowieso als max_cost_usd übergeben.

2. Über 2 $ benötigen Sie die Zustimmung des Benutzers. Wenn die Schätzung 2 $ übersteigt, rufen Sie NOCH NICHT auf: zeigen Sie die Schätzung, das Modell und was gewonnen wird gegenüber einem günstigeren Lauf, und warten Sie auf ein explizites Ja. Die Zustimmung deckt nur diese Aufgabe ab, nicht spätere. Bei oder unter 2 $ fahren Sie ohne Nachfrage fort.

3. Immer max_cost_usd übergeben: Schätzung + ~30 % Spielraum, gedeckelt auf 2 $, es sei denn, der Benutzer hat mehr akzeptiert (dann höchstens das Akzeptierte). Der GROK_MAX_COST_USD des Servers (standardmäßig 2,5 $) ist eine harte Obergrenze, kein Budget: ein höherer max_cost_usd wird darauf gedeckelt, sodass ein Lauf, der mehr benötigt, aufgeteilt werden muss oder der Operator die Obergrenze erhöhen muss.

4. Immer melden, was der Auftrag verbraucht hat. Nach jedem abgeschlossenen Aufruf – einschließlich eines Hintergrundauftrags, der mit get_job abgeholt wird – dem Benutzer mitteilen: Modell, cost_usd und Token (prompt / cached / completion / reasoning), plus iterations und stopped. Tun Sie dies auch, wenn die Kosten winzig sind, und auch, wenn ein Lauf fehlgeschlagen oder vorzeitig beendet wurde. Ein noch running-Auftrag hat noch keine Kosten – sagen Sie dies, und melden Sie sie dann, wenn er abgeholt wird. Wenn die tatsächlichen Kosten die Schätzung um mehr als ~50 % übersteigen, sagen Sie dies ebenfalls.

reasoning_effort (low/medium/high, einige Modelle auch none) gilt pro Aufruf und wird an die API übergeben. Die Unterstützung variiert je nach Modell (der Katalog sagt nicht, welche): einige lehnen es ab, andere lehnen none ab. Wenn Sie es nicht setzen, läuft ein flagship-Modell mit low anstelle seiner eigenen (teuren) Standardeinstellung, und jedes andere Modell verwendet seine eigene Standardeinstellung; wenn ein Modell den Parameter ablehnt, verwirft der Server die Standardeinstellung dafür. Setzen Sie es explizit (high), wenn Tiefe wichtig ist – ein expliziter Wert wird immer unverändert gesendet, und eine Ablehnung wird als API-Fehler zurückgegeben.

AufgabeModell
Kurze Frage, Zusammenfassung, Extraktion, Klassifikationgünstigstes Modell in der Liste
Codegenerierung / Refactoringein Code-Modell, falls aufgeführt, sonst ein günstiges allgemeines Modell
Tiefgehende Analyse, mehrschrittiges Denken, Überprüfung vieler Dateiendas neueste Flaggschiff (höchste Version)
Eingabe größer als ~200K Tokenein Modell, dessen Kontextfenster passt – ctx prüfen
Bildeingabeein mit [images] gekennzeichnetes Modell
Bildgenerierungmit dem günstigsten Bildmodell iterieren, endgültige Darstellung auf einem qualitativ hochwertigen

Tool → Modell-Kurzreferenz

agent(prompt, model, tools?, image_paths?, system?, conversation?, file_paths?, reasoning_effort?, max_iterations?, max_seconds?, max_cost_usd?, background=False)

Das eine Tool zum Senden von Text (und Bildern) an Grok.

ParameterStandardHinweise
modelerforderlichsiehe Modellauswahl
tools[]Arbeitsbereich-Tools, die Grok selbst aufrufen darf: read, write, shell, fetch, search. Unbekannter Name → Fehler sofort
image_paths—lokale Bilder, die mit dem Prompt gesendet werden (Modell muss [images] sein); müssen für den Server sichtbar sein – siehe Pfade
max_iterations100Modellrunden in der Tool-Schleife (Server-Obergrenze – Sie können sie nur senken)
max_seconds1800Wanduhrzeit-Budget des Laufs (Server-Obergrenze)
max_cost_usd2.5geschätztes USD-Budget des Laufs (Server-Obergrenze – ein höherer Wert wird gedeckelt)
conversation— (zustandslos)Aufgabenname "<Projekt>/<Aufgabe>", z. B. "grok-mcp/security-audit" – behält den Kontext über die Aufrufe einer Aufgabe hinweg; Grok ruft den Verlauf bei Bedarf ab (get_recent_history/search_history). Neue Aufgabe → neuer Name; einmaliger Aufruf → weglassen (kein Verlauf gespeichert; ein Hintergrundauftrag behält sein Ergebnis trotzdem einige Tage). Das Projekt-Präfix ist wichtig: über HTTP kann der Server Projekte nicht unterscheiden. ≤ 200 Zeichen, keine Steuerzeichen
file_paths—Dateiinhalte, die serverseitig eingefügt werden (Sie wählen die Dateien)
reasoning_effortlow bei flagship, sonst Modellstandardpro Aufruf; ein expliziter Wert wird unverändert gesendet
backgroundfalsegibt sofort {job_id} zurück; mit get_job(job_id) abholen. Nicht erforderlich für lange Läufe – siehe Grenzen

Unbekannte Parameter werden zurückgewiesen mit der Liste der gültigen.

Gibt zurück (hübsches JSON):

{
  "answer": "...",
  "model": "grok-4.3",
  "reasoning_effort": "low",
  "tokens": {"prompt": 6909, "cached": 576, "completion": 49, "reasoning": 141},
  "cost_usd": 0.0085,
  "tool_calls": [{"tool": "read", "args": {"path": "README.md"}, "result_chars": 22463}],
  "iterations": 2,
  "stopped": "answer",
  "hint": "nur vorhanden, wenn der Lauf vorzeitig endete oder teuer für ein Flaggschiff war"
}

stopped sagt, wie die Schleife endete: answer (normal), max_iterations, context (Fenster fast voll), loop (derselbe Tool-Aufruf wiederholt), time (max_seconds) oder cost (max_cost_usd). In jedem Fall läuft die letzte Runde ohne Tools, sodass answer immer enthält, was Grok aus dem Gesammelten schließen konnte – Arbeit wird nie verworfen.

Grenzen (Server-Umgebungsvariablen, Standardwerte)

GrenzeStandardUmgebungsvariableWas passiert
Dauer des Vordergrundaufrufs60 sGROK_FOREGROUND_TIMEOUTder Aufruf wechselt in den Hintergrund: Sie erhalten {job_id, status: "running", note} – mit get_job abholen. Nichts geht verloren; Sie erreichen nie ein Client-Timeout
Laufdauer1800 sGROK_JOB_MAX_SECONDS / max_secondsendgültige Antwort, stopped: "time"
Laufkosten2,5 $GROK_MAX_COST_USD / max_cost_usdendgültige Antwort, stopped: "cost"
Modellrunden100GROK_MAX_ITERATIONS / max_iterationsendgültige Antwort, stopped: "max_iterations"
Eingabe (Prompt + file_paths + Bilder)60 % des ModellfenstersGROK_INPUT_MAX_RATIOvor jedem API-Aufruf zurückgewiesen, wobei Modelle genannt werden, deren Fenster passt
Ein Tool-Ergebnis15 % des FenstersGROK_TOOL_RESULT_MAX_RATIOGrok erhält stattdessen „Ergebnis zu groß – Zeilenbereich oder grep lesen“
Gesamte Konversation80 % des FenstersGROK_CONTEXT_MAX_RATIOalte Ergebnisse einmalig gekürzt, dann neue verweigert, dann stopped: "context"
Shell-Befehl240 sGROK_SHELL_TIMEOUTBefehl abgebrochen, Fehler an Grok zurückgegeben

Pfade

Mit dem Docker-Setup sieht der Server nur seine eingehängten Verzeichnisse (das Arbeitsverzeichnis und ASSETS_DIR): image_paths, file_paths und Pfade, die Grok liest, müssen dort leben – Host /tmp oder Scratchpad-Pfade sind unsichtbar; kopieren Sie die Datei zuerst in das Arbeitsverzeichnis. Ein stdio-Server sieht, was sein Benutzer sehen kann, begrenzt durch GROK_READ_ALLOWED_PATHS, falls gesetzt. Ein Pfad, den der Server nicht sehen kann, wird sofort mit der Liste der sichtbaren Wurzeln zurückgewiesen.

Automatischer Projektkontext: Wenn der Server innerhalb eines Git-Projekts läuft (stdio), fügt agent() die erkannte Sprache und das Framework vor der Systemaufforderung ein. Im Docker-Setup wird nichts injiziert. Wenn system bereits mit [Projektkontext] beginnt, wird die Injektion übersprungen.

Lassen Sie Grok seinen eigenen Kontext sammeln. Lesen Sie Dateien nicht selbst und fügen Sie sie in den Prompt ein – übergeben Sie tools=["read"] (fügen Sie shell für git log/grep/Testläufe hinzu) und beschreiben Sie, was betrachtet werden soll. Dateiinhalte gelangen dann nie in Ihren Kontext:

agent(prompt="Überprüfe src/grok_mcp/tools/agent.py und chat.py auf doppelte Logik.",
      model="<flagship aus der Liste>", tools=["read", "shell"])

Begrenzen Sie das Lesen. Nennen Sie die Dateien (oder ein enges Verzeichnis) im Prompt – „lies, was du brauchst“ über ein ganzes Repository hinweg führt dazu, dass ein Lauf 1,7 M Token erreicht. Bei großen Dateien weisen Sie Grok an, Code mit shell grep -n zu lokalisieren und nur Zeilenbereiche zu lesen (read mit offset/limit).

Verwenden Sie file_paths stattdessen, wenn Sie bereits genau wissen, welche Dateien wichtig sind (ein Roundtrip, keine Schleife).

Lange Läufe und Kosten. Jede Runde sendet die gesamte Konversation erneut; xAI cached das unveränderte Präfix automatisch (tokens.cached, ca. 75 % günstiger abgerechnet), sodass Runden hauptsächlich für das Neue bezahlen. Das Kürzen alter Ergebnisse kostet einen Cache-Fehler. Ein dritter identischer Tool-Aufruf wird verweigert; ein fünfter beendet die Schleife. Ein langer Aufruf kommt einfach als {job_id} nach 60 s zurück – dann get_job abfragen; background=True überspringt nur diese erste Minute des Wartens.

Bilder. agent(prompt="Was zeigt dieser Screenshot?", model=..., image_paths=["<Arbeitsverzeichnis>/shot.png"]) – die Datei muss sich in einem Verzeichnis befinden, das der Server sieht (siehe Pfade). Stellen Sie eine spezifische Frage pro Aufruf; kombinieren Sie mit tools, wenn das Bild mit Code verglichen werden muss.


generate_image(prompt, output_path, model, aspect_ratio?, resolution?, ref_image_paths?)

model ist erforderlich – die Tool-Beschreibung listet Bildmodelle mit ihrem Preis pro Bild auf.

Kostendisziplin:

  • Iterieren Sie mit dem günstigsten Bildmodell, bis der Prompt stimmt, und wechseln Sie dann nur für die endgültige Darstellung zu einem qualitativ hochwertigeren Modell.
  • Gibt {path, model, prompt, format} zurück.

output_path muss ein absoluter Pfad sein. Übergeordnete Verzeichnisse werden automatisch erstellt.

Mit Referenzbildern (Modelle der Qualitätsstufe übertragen Stil besser):

  • Übergeben Sie ref_image_paths, wenn Stilkonsistenz mit einem vorhandenen Bild wichtig ist. Es akzeptiert bis zu 3 absolute Pfade in der Reihenfolge – der Prompt kann sie positionsbezogen ansprechen, z. B. „Geometrie vom ersten, Randfigur vom zweiten“. Jeder von Ihnen übergebene Pfad wird weitergeleitet; nichts wird stillschweigend verworfen.
  • Die modellspezifische Obergrenze (3 für die aktuellen Bildmodelle) wird von xAI durchgesetzt, deren Meldung wörtlich ausgegeben wird, wenn Sie sie überschreiten.
  • Referenzdateien werden anhand ihrer Magic-Bytes per MIME-Sniffing erkannt, sodass ein vorheriges Ergebnis unabhängig von der Erweiterung, unter der es gespeichert wurde, direkt als Referenz zurückgegeben werden kann.
  • aspect_ratio (Standardwert "1:1") und resolution (Standardwert "1k", auch "2k") gelten wie ohne Referenzen. Die Ausgabe erbt nicht die Proportionen des Referenzbildes – ein 16:10-Referenzbild ergibt dennoch ein Quadrat, es sei denn, Sie geben etwas anderes an. Übergeben Sie daher beide explizit, wann immer Sie mehr als ein 1k-Quadrat benötigen.

Kostenvergleich: Ihr aktuelles Modell vs. Grok

Für genaue Preise Ihres aktuellen Modells überprüfen Sie die aktuellen Preise Ihres Anbieters.


Kurzreferenz: Nützliche MCP-Konzepte

KonzeptBeschreibung
list_models(refresh=true)Ruft den xAI-Modellkatalog erneut ab, meldet Änderungen und aktualisiert Tool-Beschreibungen
get_job(job_id)Holt das Ergebnis eines Hintergrundauftrags (einschließlich Kosten, Token, Stoppgrund)
get_recent_history(limit=10)Zeigt die letzten Konversationen des Benutzers aus dem Speicher
search_history(query)Durchsucht den Konversationsverlauf nach einer Abfrage
read(path, offset?, limit?)Liest eine Datei mit optionalem Offset und Limit (für große Dateien)
shell(command)Führt einen Shell-Befehl aus (mit Timeout und Kill bei Überschreitung)
fetch(url)Ruft eine URL ab (für Webinhalte)
search(query)Führt eine Websuche durch (wenn konfiguriert)

Best Practices

  1. Schätzen Sie immer zuerst die Kosten, bevor Sie einen Grok-Aufruf tätigen.
  2. Verwenden Sie immer max_cost_usd, um Budgetüberschreitungen zu vermeiden.
  3. Beginnen Sie mit dem günstigsten Modell, eskalieren Sie nur bei Bedarf.
  4. Überlassen Sie Grok das Sammeln des Kontexts (übergeben Sie tools, nicht vorab gelesene Dateiinhalte).
  5. Begrenzen Sie das Lesen auf bestimmte Dateien oder Verzeichnisse, um Kosten zu sparen.
  6. Verwenden Sie background=True für lange Läufe (über 60 s) oder wenn Sie sofort eine Antwort benötigen.
  7. Melden Sie die Kosten nach jedem Lauf, auch wenn sie gering sind.
  8. Befolgen Sie die Hinweise (hint) – sie sagen Ihnen, ob der Lauf vorzeitig endete oder teuer war.

Fehlerbehebung

ProblemLösung
Modell nicht gefundenÜberprüfen Sie list_models() auf verfügbare Modelle
Kosten überschrittenErhöhen Sie max_cost_usd oder teilen Sie die Aufgabe auf
Bild nicht sichtbarStellen Sie sicher, dass der Pfad in einem vom Server sichtbaren Verzeichnis liegt
Lauf zu langVerwenden Sie background=True, oder setzen Sie max_seconds und max_iterations
Tool nicht verfügbarÜberprüfen Sie die Tool-Beschreibung auf gültige Tool-Namen

Sicherheitshinweise

  • Grok hat nur Zugriff auf die Tools, die Sie mit tools übergeben.
  • Shell-Befehle haben ein Timeout (standardmäßig 240 s) und werden bei Überschreitung abgebrochen.
  • Dateipfade sind auf sichtbare Verzeichnisse beschränkt (GROK_READ_ALLOWED_PATHS).
  • Konversationen sind zustandslos, es sei denn, Sie verwenden conversation.
  • Kosten sind durch max_cost_usd und GROK_MAX_COST_USD begrenzt.

Verwandte Skills