MCP Sage

mcp-sage

MCP(モデルコンテキストプロトコル)サーバー。他のLLM(現在はGemini 2.5 Proのみ)にプロンプトを送信するためのツールを提供します。プロンプトには、参照されているすべてのファイルパス(フォルダーの場合は再帰的に)が埋め込まれます。大量のコンテキストを正確に処理できるモデルから、セカンドオピニオンや詳細なコードレビューを取得するのに役立ちます。

根拠

Claude Codeを頻繁に使用しています。私のワークフローに非常によく合う素晴らしい製品です。しかし、大量のコンテキストを備えた新しいモデルは、より多くのコンテキストが必要となる複雑なコードベースを扱う際に非常に便利だと感じています。これにより、Claude Codeを開発ツールとして使い続けながら、Gemini 2.5 Proの大規模なコンテキストを活用して、Claude Codeの限られたコンテキストを補うことができます。

インスピレーション

このプロジェクトは、他の 2 つのオープン ソース プロジェクトからインスピレーションを得ています。

  • simonw/files-to-prompt でファイル圧縮を要求
  • アイデアを提供してくれたasadm/vibemode さん、そしてリポジトリ全体を Gemini に送信して編集の提案をまとめてもらえるよう促してくれた

概要

このプロジェクトは、次の 2 つのツールを公開する MCP サーバーを実装します。

second-opinion

  1. プロンプトとファイル/ディレクトリパスのリストを入力として受け取ります
  2. ファイルを構造化されたXML形式にパックします
  3. 結合されたコンテンツが Gemini のトークン制限 (100 万トークン) 内であるかどうかを確認します。
  4. プロンプトとコンテキストの組み合わせをGemini 2.5 Proに送信します
  5. モデルの応答を返す

expert-review

  1. コード変更の指示とファイル/ディレクトリパスのリストを入力として受け取ります
  2. ファイルを構造化されたXML形式にパックします
  3. 結合されたコンテンツが Gemini のトークン制限 (100 万トークン) 内であるかどうかを確認します。
  4. SEARCH/REPLACEブロックを使用してモデルに応答をフォーマットするように指示する特別なプロンプトを作成します。
  5. 結合されたコンテキストと命令をGemini 2.5 Proに送信します
  6. 簡単に実装できるように、SEARCH/REPLACE ブロックとしてフォーマットされた編集候補を返します。

前提条件

  • Node.js (v18以降)
  • Google Gemini APIキー

インストール

# 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

環境変数

次の環境変数を設定します。

  • GEMINI_API_KEY : Google Gemini API キー

使用法

npm run buildでビルドした後、MCP 構成に以下を追加します。

GEMINI_API_KEY=XXX node /path/to/this/repo/dist/index.js

促す

何かについてセカンドオピニオンを得るには、セカンドオピニオンを求めてください。

コードレビューを受けるには、コードレビューまたは専門家によるレビューを依頼してください。

これらは両方とも、コンテキストに含めるファイルのパスを提供することでメリットを得られますが、省略すると、ホスト LLM が何を含めるかを推測する可能性があります。

デバッグと監視

サーバーはMCPログ機能を通じて詳細な監視情報を提供します。これらのログには以下が含まれます。

  • トークン使用統計(使用されたトークンとトークン制限)
  • リクエストに含まれるファイルと文書の数
  • リクエスト処理時間のメトリクス
  • トークン制限を超えた場合のエラー情報

ログはMCPプロトコルのnotifications/message方式を介して送信されるため、JSON-RPC通信に干渉することはありません。ログ機能をサポートするMCPクライアントは、これらのログを適切に表示します。

ログエントリの例:

Token usage: 1,234 / 1,000,000 tokens (0.12%) Files included: 3, Document count: 3 Sending request to Gemini with 1,234 tokens... Received response from Gemini in 982ms

ツールの使用

セカンドオピニオンツール

second-opinionツールは次のパラメータを受け入れます。

  • prompt (文字列、必須): Geminiに送信するプロンプト
  • paths (文字列の配列、必須): コンテキストとして含めるファイルパスのリスト

MCP ツール呼び出しの例 (JSON-RPC 2.0 を使用):

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

専門家レビューツール

expert-reviewツールは次のパラメータを受け入れます。

  • instruction (文字列、必須): 必要な具体的な変更または改善
  • paths (文字列の配列、必須): コンテキストとして含めるファイルパスのリスト

MCP ツール呼び出しの例 (JSON-RPC 2.0 を使用):

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

応答には、提案された変更を実装するために使用できる SEARCH/REPLACE ブロックが含まれます。

<<<<<<< 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

テストの実行

ツールをテストするには:

# Test the second-opinion tool GEMINI_API_KEY=your_api_key_here node test/run-test.js # Test the expert-review tool GEMINI_API_KEY=your_api_key_here node test/test-expert.js

プロジェクト構造

  • src/index.ts : ツール定義を含むメインのMCPサーバー実装
  • src/pack.ts : ファイルを構造化されたXML形式にパックするためのツール
  • src/tokenCounter.ts : プロンプト内のトークンをカウントするためのユーティリティ
  • src/gemini.ts : Gemini API クライアント実装
  • test/run-test.js : セカンドオピニオンツールのテスト
  • test/test-expert.js : エキスパートレビューツールのテスト

ライセンス

ISC

-
security - not tested
-
license - not tested
-
quality - not tested

プロンプトにファイルの内容を埋め込むことで、Gemini 2.5 Pro からセカンドオピニオンや詳細なコードレビューを取得するためのツールを提供する MCP サーバー。これにより、広範なコンテキストを持つ大規模なコードベースを処理できるようになります。

  1. Rationale
    1. Inspiration
      1. Overview
        1. second-opinion
        2. expert-review
      2. Prerequisites
        1. Installation
          1. Environment Variables
            1. Usage
              1. Prompting
                1. Debugging and Monitoring
                2. Using the Tools
              2. Running the Tests
                1. Project Structure
                  1. License
                    ID: k6how3qzn4