MCP Sage

by jalehman

Integrations

  • Enables sending prompts and files to Gemini 2.5 Pro with support for large context (up to 1M tokens). Offers two main tools: 'second-opinion' for getting model responses on file content, and 'expert-review' for receiving code change suggestions formatted as SEARCH/REPLACE blocks.

mcp-sage

Ein MCP-Server (Model Context Protocol), der Tools zum Senden von Eingabeaufforderungen an OpenAIs O3-Modell oder Googles Gemini 2.5 Pro basierend auf der Token-Anzahl bereitstellt. Die Tools betten alle referenzierten Dateipfade (rekursiv für Ordner) in die Eingabeaufforderung ein. Dies ist nützlich, um Zweitmeinungen oder detaillierte Codeüberprüfungen von einem Modell einzuholen, das große Mengen Kontext präzise verarbeiten kann.

Begründung

Ich nutze Claude Code intensiv. Es ist ein großartiges Produkt, das sich gut für meinen Workflow eignet. Neuere Modelle mit großem Kontextumfang scheinen jedoch besonders nützlich für komplexere Codebasen zu sein, die mehr Kontext benötigen. Dadurch kann ich Claude Code weiterhin als Entwicklungstool verwenden und gleichzeitig die umfangreichen Kontextfunktionen von O3 und Gemini 2.5 Pro nutzen, um den begrenzten Kontext von Claude Code zu erweitern.

Modellauswahl

Der Server wählt automatisch das entsprechende Modell basierend auf der Token-Anzahl und den verfügbaren API-Schlüsseln aus:

  • Für kleinere Kontexte (≤ 200.000 Token): Verwendet das O3-Modell von OpenAI (wenn OPENAI_API_KEY festgelegt ist)
  • Für größere Kontexte (> 200.000 und ≤ 1 Mio. Token): Verwendet Google Gemini 2.5 Pro (wenn GEMINI_API_KEY festgelegt ist)
  • Wenn der Inhalt 1 Million Token überschreitet: Gibt einen informativen Fehler zurück

Fallback-Verhalten:

  • API-Schlüssel-Fallback :
    • Wenn OPENAI_API_KEY fehlt, wird Gemini für alle Kontexte innerhalb seines 1M-Token-Limits verwendet
    • Wenn GEMINI_API_KEY fehlt, können nur kleinere Kontexte (≤ 200K Tokens) mit O3 verarbeitet werden
    • Wenn beide API-Schlüssel fehlen, wird ein informativer Fehler zurückgegeben
  • Fallback auf Netzwerkkonnektivität :
    • Wenn die OpenAI-API nicht erreichbar ist (Netzwerkfehler), greift das System automatisch auf Gemini zurück
    • Dies bietet Widerstandsfähigkeit gegen vorübergehende Netzwerkprobleme bei einem Anbieter
    • Erfordert, dass GEMINI_API_KEY festgelegt ist, damit der Fallback funktioniert

Inspiration

Dieses Projekt ist von zwei anderen Open-Source-Projekten inspiriert:

Überblick

Dieses Projekt implementiert einen MCP-Server, der drei Tools bereitstellt:

sage-opinion

  1. Nimmt eine Eingabeaufforderung und eine Liste von Datei-/Verzeichnispfaden als Eingabe entgegen
  2. Packt die Dateien in ein strukturiertes XML-Format
  3. Misst die Token-Anzahl und wählt das entsprechende Modell aus:
    • O3 für ≤ 200.000 Token
    • Gemini 2.5 Pro für > 200.000 und ≤ 1 Mio. Token
  4. Sendet die kombinierte Eingabeaufforderung + Kontext an das ausgewählte Modell
  5. Gibt die Antwort des Modells zurück

sage-review

  1. Nimmt eine Anweisung für Codeänderungen und eine Liste von Datei-/Verzeichnispfaden als Eingabe entgegen
  2. Packt die Dateien in ein strukturiertes XML-Format
  3. Misst die Token-Anzahl und wählt das entsprechende Modell aus:
    • O3 für ≤ 200.000 Token
    • Gemini 2.5 Pro für > 200.000 und ≤ 1 Mio. Token
  4. Erstellt eine spezielle Eingabeaufforderung, die das Modell anweist, Antworten mithilfe von SEARCH/REPLACE-Blöcken zu formatieren
  5. Sendet den kombinierten Kontext + die Anweisung an das ausgewählte Modell
  6. Gibt Bearbeitungsvorschläge zurück, die als Such-/Ersetzungsblöcke formatiert sind, um die Implementierung zu vereinfachen

sage-plan

  1. Nimmt eine Eingabeaufforderung entgegen, in der ein Implementierungsplan und eine Liste von Datei-/Verzeichnispfaden als Eingabe angefordert werden
  2. Packt die Dateien in ein strukturiertes XML-Format
  3. Orchestriert eine Multi-Modell-Debatte, um einen hochwertigen Implementierungsplan zu erstellen
  4. Die Modelle kritisieren und verfeinern die Pläne der anderen in mehreren Runden
  5. Gibt den erfolgreichen Implementierungsplan mit detaillierten Schritten zurück

sage-plan - Multi-Modell- und Selbstdebatten-Workflows

Das Tool sage-plan fragt nicht ein einzelnes Modell nach einem Plan. Stattdessen orchestriert es eine strukturierte Debatte , die über eine oder mehrere Runden läuft, und bittet dann ein separates Richtermodell (oder dasselbe Modell im CoRT-Modus), den Gewinner auszuwählen.


1. Multi-Modell-Debattenfluss

Wichtige Phasen der Multimodell-Debatte:

Einrichtungsphase

  • Das System ermittelt die verfügbaren Modelle, wählt einen Richter aus und weist Token-Budgets zu

Runde 1

  • Generierungsphase - Jedes verfügbare Modell (A, B, C usw.) schreibt parallel seinen eigenen Implementierungsplan
  • Kritikphase - Jedes Modell überprüft alle anderen Pläne (niemals seine eigenen) und erstellt parallel dazu strukturierte Kritiken

Runden 2 bis N (N ist standardmäßig 3)

  1. Synthesephase – Jedes Modell verbessert seinen vorherigen Plan anhand der erhaltenen Kritik (Modelle arbeiten parallel)
  2. Konsensprüfung - Das Richtermodell bewertet die Ähnlichkeit zwischen allen aktuellen Plänen
    • Bei einem Ergebnis ≥ 0,9 wird die Debatte vorzeitig beendet und es geht weiter zum Urteil.
  3. Kritikphase - Wenn kein Konsens erreicht wird UND wir nicht in der Endrunde sind, kritisiert jedes Modell alle anderen Pläne erneut (parallel).

Urteilsphase

  • Nach Abschluss aller Runden (oder Erreichen eines frühen Konsenses) gilt für das Richtermodell (standardmäßig O3):
    • Wählt den besten Plan aus ODER führt mehrere Pläne zu einem besseren zusammen
    • Bietet einen Vertrauenswert für die Auswahl/Synthese

2. Selbstdebattenfluss – Einzelmodell verfügbar

Wenn nur ein Modell verfügbar ist, wird ein Chain of Recursive Thoughts (CoRT) -Ansatz verwendet:

  1. Initial Burst - Das Modell generiert drei verschiedene Pläne, die jeweils einen anderen Ansatz verfolgen
  2. Verfeinerungsrunden – Für jede nachfolgende Runde (2 bis N, Standard N=3):
    • Das Modell überprüft alle bisherigen Pläne
    • Es kritisiert sie intern und identifiziert Stärken und Schwächen
    • Es entsteht ein neuer, verbesserter Plan, der die Einschränkungen früherer Pläne berücksichtigt.
  3. Endgültige Auswahl – Der zuletzt erstellte Plan wird zum endgültigen Implementierungsplan

Was tatsächlich im Code passiert (Kurzreferenz)

Phase / FunktionalitätCode-SpeicherortHinweise
Eingabeaufforderungen zur Generierungprompts/debatePrompts.generatePromptFügt die Überschrift „# Implementierungsplan (Modell X)“ hinzu.
Kritikanregungenprompts/debatePrompts.critiquePromptVerwendet die Abschnitte „## Kritik an Plan {ID}“
Syntheseaufforderungenprompts/debatePrompts.synthesizePromptModel überarbeitet eigenen Plan
KonsensprüfungdebateOrchestrator.checkConsensusJudge-Modell gibt JSON mit consensusScore zurück
Urteilprompts/debatePrompts.judgePromptRichter gibt „# Endgültiger Implementierungsplan“ + Vertrauen zurück
Aufforderung zur Selbstdebatteprompts/debatePrompts.selfDebatePromptKette-von-Rekursiven-Gedanken- Schleife
Leistungs- und Kostenüberlegungen

⚠️ Wichtig: Das Sage-Plan-Tool kann:

  • Die Fertigstellung nimmt viel Zeit in Anspruch (5–10 Minuten bei mehreren Modellen).
  • Verbrauchen Sie erhebliche API-Token aufgrund mehrerer Diskussionsrunden
  • Verursachen höhere Kosten als Einzelmodellansätze

Typische Ressourcennutzung:

  • Multi-Modell-Debatte: 2-4x mehr Token als ein Single-Modell-Ansatz
  • Bearbeitungszeit: 5-10 Minuten, abhängig von der Komplexität und der Modellverfügbarkeit
  • API-Kosten: 0,30–1,50 $ pro Planerstellung (variiert je nach verwendeten Modellen und Plankomplexität)

Voraussetzungen

  • Node.js (v18 oder höher)
  • Ein Google Gemini API-Schlüssel (für größere Kontexte)
  • Ein OpenAI-API-Schlüssel (für kleinere Kontexte)

Installation

# Clone the repository git clone https://github.com/your-username/mcp-sage.git cd mcp-sage # Install dependencies npm install # Build the project npm run build

Umgebungsvariablen

Legen Sie die folgenden Umgebungsvariablen fest:

  • OPENAI_API_KEY : Ihr OpenAI-API-Schlüssel (für O3-Modell)
  • GEMINI_API_KEY : Ihr Google Gemini API-Schlüssel (für Gemini 2.5 Pro)

Verwendung

Fügen Sie Ihrer MCP-Konfiguration nach dem Erstellen mit npm run build Folgendes hinzu:

OPENAI_API_KEY=your_openai_key GEMINI_API_KEY=your_gemini_key node /path/to/this/repo/dist/index.js

Sie können auch an anderer Stelle festgelegte Umgebungsvariablen verwenden, beispielsweise in Ihrem Shell-Profil.

Eingabeaufforderung

Um eine zweite Meinung zu etwas zu bekommen, fragen Sie einfach nach einer zweiten Meinung.

Um eine Codeüberprüfung zu erhalten, fordern Sie eine Codeüberprüfung oder eine Expertenüberprüfung an.

Beide profitieren von der Bereitstellung von Pfaden zu Dateien, die Sie in den Kontext aufnehmen möchten. Wenn diese jedoch weggelassen werden, leitet das Host-LLM wahrscheinlich ab, was aufgenommen werden soll.

Debuggen und Überwachen

Der Server stellt detaillierte Überwachungsinformationen über die MCP-Protokollierungsfunktion bereit. Diese Protokolle umfassen:

  • Token-Nutzungsstatistiken und Modellauswahl
  • Anzahl der in der Anfrage enthaltenen Dateien und Dokumente
  • Metriken zur Anforderungsverarbeitungszeit
  • Fehlerinformationen bei Überschreitung des Token-Limits

Protokolle werden über die notifications/message des MCP-Protokolls gesendet, um sicherzustellen, dass sie die JSON-RPC-Kommunikation nicht beeinträchtigen. MCP-Clients mit Protokollierungsunterstützung zeigen diese Protokolle entsprechend an.

Beispielprotokolleinträge:

Token usage: 1,234 tokens. Selected model: o3-2025-04-16 (limit: 200,000 tokens) Files included: 3, Document count: 3 Sending request to OpenAI o3-2025-04-16 with 1,234 tokens... Received response from o3-2025-04-16 in 982ms
Token usage: 235,678 tokens. Selected model: gemini-2.5-pro-preview-03-25 (limit: 1,000,000 tokens) Files included: 25, Document count: 18 Sending request to Gemini with 235,678 tokens... Received response from gemini-2.5-pro-preview-03-25 in 3240ms

Verwenden der Tools

Sage-Opinion-Tool

Das Tool sage-opinion akzeptiert die folgenden Parameter:

  • prompt (Zeichenfolge, erforderlich): Die Eingabeaufforderung, die an das ausgewählte Modell gesendet werden soll
  • paths (Array von Zeichenfolgen, erforderlich): Liste der Dateipfade, die als Kontext einbezogen werden sollen

Beispiel für einen MCP-Toolaufruf (mit JSON-RPC 2.0):

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "sage-opinion", "arguments": { "prompt": "Explain how this code works", "paths": ["path/to/file1.js", "path/to/file2.js"] } } }
Sage-Review-Tool

Das Tool sage-review akzeptiert die folgenden Parameter:

  • instruction (Zeichenfolge, erforderlich): Die spezifischen Änderungen oder Verbesserungen, die erforderlich sind
  • paths (Array von Zeichenfolgen, erforderlich): Liste der Dateipfade, die als Kontext einbezogen werden sollen

Beispiel für einen MCP-Toolaufruf (mit JSON-RPC 2.0):

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "sage-review", "arguments": { "instruction": "Add error handling to the function", "paths": ["path/to/file1.js", "path/to/file2.js"] } } }

Die Antwort enthält SEARCH/REPLACE-Blöcke, die Sie zum Implementieren der vorgeschlagenen Änderungen verwenden können:

<<<<<<< SEARCH function getData() { return fetch('/api/data') .then(res => res.json()); } ======= function getData() { return fetch('/api/data') .then(res => { if (!res.ok) { throw new Error(`HTTP error! Status: ${res.status}`); } return res.json(); }) .catch(error => { console.error('Error fetching data:', error); throw error; }); } >>>>>>> REPLACE
Sage-Plan-Tool

Das Tool sage-plan akzeptiert die folgenden Parameter:

  • prompt (Zeichenfolge, erforderlich): Beschreibung, wofür Sie einen Implementierungsplan benötigen
  • paths (Array von Zeichenfolgen, erforderlich): Liste der Dateipfade, die als Kontext einbezogen werden sollen

Beispiel für einen MCP-Toolaufruf (mit JSON-RPC 2.0):

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "sage-plan", "arguments": { "prompt": "Create an implementation plan for adding user authentication to this application", "paths": ["src/index.js", "src/models/", "src/routes/"] } } }

Die Antwort enthält einen detaillierten Implementierungsplan mit:

  1. Allgemeine Architekturübersicht
  2. Konkrete Umsetzungsschritte
  3. Erforderliche Dateiänderungen
  4. Teststrategie
  5. Mögliche Herausforderungen und Abhilfemaßnahmen

Dieser Plan profitiert von der kollektiven Intelligenz mehrerer KI-Modelle (oder einer gründlichen Selbstüberprüfung durch ein einzelnes Modell) und enthält in der Regel robustere, durchdachtere und detailliertere Empfehlungen als ein Single-Pass-Ansatz.

Ausführen der Tests

So testen Sie die Tools:

# Test the sage-opinion tool OPENAI_API_KEY=your_openai_key GEMINI_API_KEY=your_gemini_key node test/run-test.js # Test the sage-review tool OPENAI_API_KEY=your_openai_key GEMINI_API_KEY=your_gemini_key node test/test-expert.js # Test the sage-plan tool OPENAI_API_KEY=your_openai_key GEMINI_API_KEY=your_gemini_key node test/run-sage-plan.js # Test the model selection logic specifically OPENAI_API_KEY=your_openai_key GEMINI_API_KEY=your_gemini_key node test/test-o3.js

Hinweis : Die Ausführung des Sage-Plan-Tests kann 5–15 Minuten dauern, da er eine Debatte mehrerer Modelle orchestriert.

Projektstruktur

  • src/index.ts : Die Hauptimplementierung des MCP-Servers mit Tooldefinitionen
  • src/pack.ts : Tool zum Packen von Dateien in ein strukturiertes XML-Format
  • src/tokenCounter.ts : Dienstprogramme zum Zählen von Token in einer Eingabeaufforderung
  • src/gemini.ts : Implementierung des Gemini-API-Clients
  • src/openai.ts : OpenAI API-Clientimplementierung für das O3-Modell
  • src/debateOrchestrator.ts : Multi-Modell-Debattenorchestrierung für Sage-Plan
  • src/prompts/debatePrompts.ts : Vorlagen für Debattenanregungen und -anweisungen
  • test/run-test.js : Test für das Sage-Opinion-Tool
  • test/test-expert.js : Test für das Sage-Review-Tool
  • test/run-sage-plan.js : Test für das Sage-Plan-Tool
  • test/test-o3.js : Test für die Modellauswahllogik

Lizenz

ISC

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Ein MCP-Server, der Tools zum Einholen von Zweitmeinungen oder detaillierten Codeüberprüfungen von Gemini 2.5 Pro bereitstellt, indem er Dateiinhalte in Eingabeaufforderungen einbettet und so die Verarbeitung großer Codebasen mit umfangreichem Kontext ermöglicht.

  1. Begründung
    1. Modellauswahl
      1. Inspiration
        1. Überblick
          1. sage-opinion
          2. sage-review
          3. sage-plan
          4. sage-plan - Multi-Modell- und Selbstdebatten-Workflows
          5. Was tatsächlich im Code passiert (Kurzreferenz)
        2. Voraussetzungen
          1. Installation
            1. Umgebungsvariablen
              1. Verwendung
                1. Eingabeaufforderung
                  1. Debuggen und Überwachen
                  2. Verwenden der Tools
                2. Ausführen der Tests
                  1. Projektstruktur
                    1. Lizenz

                      Related MCP Servers

                      • -
                        security
                        A
                        license
                        -
                        quality
                        The ultimate Gemini API interface for MCP hosts, intelligently selecting models for the task at hand—delivering optimal performance, minimal token cost, and seamless integration.
                        Last updated -
                        6
                        TypeScript
                        MIT License
                      • -
                        security
                        -
                        license
                        -
                        quality
                        An MCP server that automatically generates documentation, test plans, and code reviews for code repositories by analyzing directory structures and code files using AI models via OpenRouter API.
                        Last updated -
                        3
                        TypeScript
                        Creative Commons Zero v1.0 Universal
                      • -
                        security
                        A
                        license
                        -
                        quality
                        An MCP server that analyzes codebases and generates contextual prompts, making it easier for AI assistants to understand and work with code repositories.
                        Last updated -
                        2
                        Python
                        MIT License
                      • -
                        security
                        A
                        license
                        -
                        quality
                        An MCP server that reviews code with the sarcastic and cynical tone of a grumpy senior developer, helping identify issues in PRs and providing feedback on code quality.
                        Last updated -
                        22
                        10
                        JavaScript
                        MIT License
                        • Linux
                        • Apple

                      View all related MCP servers

                      ID: k6how3qzn4