hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Uses Gemini Flash 2.0 to generate code summaries with configurable detail levels and length constraints.
コードサマライザー
Gemini Flash 2.0を使用して、指定ディレクトリ内のコードファイルを要約するコマンドラインツールです。LLMツールとの統合を可能にするMCPサーバーサポートが追加されました。
特徴
- ディレクトリ内のコードファイルを再帰的に処理します
.gitignore
ルールを尊重node_modules
、dist
などの無関係なディレクトリをスキップします。- Gemini Flash 2.0を使用してコードファイルを要約します
- 要約をテキストファイルに出力します
- 設定可能な詳細レベルと要約の長さ
- Claude Desktop やその他の LLM ツールとの統合のための MCP サーバー
- 他のアプリケーションに簡単に統合できるモジュール設計
- 安全なAPIキー管理
- MCP サーバーエンドポイントの認証
- LLM 呼び出しの指数バックオフによる再試行メカニズム
- 不正使用を防ぐためのレート制限
要件
- Node.js 18歳以上
インストール
- リポジトリをクローンするCopy
- 依存関係をインストールします:Copy
- Google API キーを使用して
.env
ファイルを作成します。Copy - プロジェクトをビルドします。Copy
MCP サーバーのセットアップと統合
コード サマライザーには、Claude Desktop、Cursor AI、Cline などの LLM ツールがコード サマリーとファイル コンテンツにアクセスできるようにする Model Context Protocol (MCP) サーバーが含まれています。
MCPサーバーの起動
デフォルトでは、サーバーはポート 24312 で実行されます。これは設定で変更できます。
Claude Desktopとの接続
- コードサマライザーMCPサーバーを起動する
- Claude Desktop を開き、Claude メニューをクリックして、「設定...」をクリックします。
- 「開発者」セクションに移動します
~/.claude/claude_desktop_config.json
(macOS/Linux) または%USERPROFILE%\.claude\claude_desktop_config.json
(Windows) に次の内容のファイルを作成します。
- Claudeデスクトップを再起動します
- 再起動後、Claude にコードベースにアクセスするよう依頼できます。例:「プロジェクト内のファイルを要約する」
Claude Desktop のプロンプトの例:
- 「私のプロジェクト内のすべての JavaScript ファイルを要約してもらえますか?」
- 「コードベースの概要を教えてください。」
- 「ファイル 'src/config/config.ts' の機能について説明します。」
- 「コード内の認証に関連するすべての関数を見つけます。」
カーソルAIとの接続
- コードサマライザーMCPサーバーを起動する
- プロジェクト ディレクトリに
.cursor/mcp.json
ファイルを作成します。
- カーソルを再起動するか、プロジェクトを再読み込みしてください
- コードについて Cursor に質問します。例: 「コードベースを要約してもらえますか?」
カーソルのプロンプトの例:
- 「このコードベースの構造を要約してください。」
- 「このプロジェクトの主要な構成要素は何ですか?」
- 「MCP サーバーの実装について詳しく教えてください。」
- 「再試行メカニズムがどのように機能するかを教えてください。」
クラインとのつながり
- コードサマライザーMCPサーバーを起動する
- Cline では、次のコマンドで MCP サーバーを追加できます。
- 次に、API キーで認証します。
- 次に、Cline にコード サマライザーを使用するように依頼します。たとえば、「コード ファイルを要約してください」のように入力します。
Cline のプロンプトの例:
- 「プロジェクト内の各ファイルは何をするのですか?」
- 「すべての TypeScript ファイルの概要を作成します。」
- 「このコードベースでの認証フローを説明してください。」
- 「「summarizer」ディレクトリの主な機能は何ですか?」
MCP統合でできること
MCP 統合を使用すると、次のことが可能になります。
- ファイルの概要を取得: 特定のファイルの機能についての簡潔な説明をリクエストします
- ディレクトリの探索: コードベース構造を参照します
- バッチ処理:複数のファイルを一度にまとめる
- ターゲットクエリ: コード内の特定のパターンや機能を見つける
- 要約をカスタマイズする: 詳細レベルと要約の長さを制御する
- 設定の更新: MCP インターフェースを通じて設定オプションを変更します
MCP サーバーは、コードベースを構造化された方法で LLM ツールに公開し、コード スニペットを手動で貼り付けなくても、コードを読み取り、ナビゲートし、要約できるようにします。
MCP サーバー統合の詳細
MCPリソース
code://file/*
- 個々のコードファイルにアクセスするcode://directory/*
- ディレクトリ内のコードファイルを一覧表示するsummary://file/*
- 特定のファイルの概要を取得しますsummary://batch/*
- 複数のファイルの概要を取得する
MCPツール
summarize_file
- オプションを使用して単一のファイルを要約するsummarize_directory
- オプションを使用してディレクトリを要約するset_config
- 設定オプションを更新する
MCPプロンプト
code_summary
- コードを要約するためのプロンプトテンプレートdirectory_summary
- ディレクトリ全体を要約するためのプロンプトテンプレート
トラブルシューティング
一般的なMCP接続の問題
- 接続拒否
- MCP サーバーが実行中であることを確認します (
npm start -- server
) - 設定でポートが正しいことを確認してください
- 接続をブロックするファイアウォールの問題を確認します
- MCP サーバーが実行中であることを確認します (
- 認証エラー
- ヘッダーに正しい API キー (
x-api-key
) を追加したことを確認します。 - APIキーが有効で、適切な形式になっていることを確認してください
- 環境変数が正しく設定されていることを確認してください
- ヘッダーに正しい API キー (
- トランスポートエラー
- 正しいトランスポートタイプが指定されていることを確認する (SSE)
- URL に正しいエンドポイント (
/sse
) が含まれていることを確認します。 - クライアントとサーバー間のネットワーク接続を確認する
- 権限の問題
- MCP サーバーがコードベースへの読み取りアクセス権を持っていることを確認します。
- 特定のファイルの要約が失敗した場合は、ファイルの権限を確認してください
- Claude Desktop が MCP サーバーを見つけられない
claude_desktop_config.json
のパスが正しいことを確認します- コマンドと引数が正しい場所を指していることを確認してください
- Claude Desktop のログで構成エラーがないか確認します
- レート制限
- 「リクエストが多すぎます」というエラーが表示された場合は、しばらくしてからもう一度お試しください。
- サーバーコード内のレート制限設定を調整することを検討してください
その他の問題については、サーバー ログを確認するか、GitHub リポジトリで問題を開いてください。
使用法
コマンドラインインターフェース
構成管理
API認証
MCP サーバーに接続するときは、リクエスト ヘッダーに API キーを含める必要があります。
すべてのエンドポイント ( /health
を除く) には認証が必要です。
オプション
--detail
,-d
: サマリーの詳細レベルを設定します。オプションは「low」、「medium」、「high」です。デフォルトは「medium」です。--max-length
,-l
: 各サマリーの最大文字数。デフォルトは500です。
セキュリティ機能
APIキー管理
- APIキーは安全に保存され、設定ファイルよりも環境変数が優先されます
- キーは使用前に適切な形式かどうか検証されます
- APIキーはログやエラーメッセージで公開されることはありません
- 環境変数経由で提供された API キーは設定ファイルに保存されません
認証
- すべてのMCPサーバーエンドポイント(ヘルスチェックを除く)はAPIキーによる認証が必要です
- 認証では安全な送信のために
x-api-key
ヘッダーを使用します - 失敗した認証試行はセキュリティ監視のために記録されます
レート制限
- レート制限が組み込まれているため、サービスの不正使用を防止できます。
- デフォルト: IP アドレスごとに 1 分あたり 60 リクエスト
- サーバー設定で構成可能
エラー処理
- 分類による構造化されたエラーシステム
- エラーメッセージでは機密情報が公開されることはありません
- さまざまな障害シナリオに対して適切なエラーコードが返されます
LLMコールレジリエンス
- 一時的な障害に対する指数バックオフによる自動再試行
- 最大再試行回数、遅延、バックオフ係数などの設定可能な再試行設定
- 雷鳴のような群れの問題を防ぐために再試行のタイミングにジッターを追加
- システム全体の問題を追跡するためのリクエストID追跡
サポートされているファイル形式
- TypeScript (.ts、.tsx)
- JavaScript (.js、.jsx)
- Python (.py)
- Java (.java)
- C++ (.cpp)
- C (.c)
- ゴー(.go)
- ルビー(.rb)
- PHP (.php)
- C# (.cs)
- スウィフト(.swift)
- Rust (.rs)
- コトリン (.kt)
- Scala (.scala)
- Vue (.vue)
- HTML (.html)
- CSS (.css、.scss、.less)
仕組み
- ツールは、
.gitignore
ルールに従って、指定されたディレクトリを再帰的にスキャンします。 - サポートされている拡張子に基づいてファイルをフィルタリングします。
- サポートされているファイルごとに、その内容を読み取り、プログラミング言語を決定します。
- 詳細レベルや長さの制約を含む要約を求めるプロンプトとともに、コードを Gemini Flash 2.0 に送信します。
- 要約が収集され、指定された出力ファイルに書き込まれます。
出力形式
出力ファイルの形式は次のようになります。
プロジェクト構造
index.ts
: メインのCLI実装src/
: ソースコードディレクトリsummarizer/
: コア要約機能mcp/
: MCPサーバーの実装config/
: 構成管理
bin/
: CLIエントリポイントconfig.json
: デフォルトの設定ファイルtsconfig.json
: TypeScript の設定package.json
: プロジェクトの依存関係とスクリプト.env.example
: 環境変数を設定するためのテンプレート.gitignore
: Git で無視するファイルとディレクトリ__tests__
: ユニットテストと統合テスト__mocks__/mock-codebase
: テスト用のモックコードベース
環境変数
アプリケーションを構成するために、次の環境変数を使用できます。
変数 | 説明 | デフォルト |
---|---|---|
GOOGLE_API_KEY | Google Gemini APIキー | なし(必須) |
PORT | MCP サーバーのポート | 24312 |
ALLOWED_ORIGINS | 許可された CORS オリジンのコンマ区切りリスト | http://localhost:3000 |
LOG_LEVEL | ログレベル(エラー、警告、情報、デバッグ) | 情報 |
テンプレートについては.env.example
を参照してください。
発達
テストの実行
今後の改善
- より多くのファイル形式をサポート
- 代替LLMプロバイダーのサポート
- GUIインターフェースのためのElectronアプリとの統合
- 強化されたMCPサーバー機能
- 高度なトークン使用状況追跡
- OpenTelemetryベースの可観測性
- 強化された監査ログ機能
- シークレットスキャン統合
This server cannot be installed
Claude Desktop や Cursor AI などの LLM ツールがモデル コンテキスト プロトコル サーバーを介してコード ファイルにアクセスして要約できるようにし、手動でコピーすることなくコードベース コンテンツへの構造化されたアクセスを提供します。