コードサマライザー
Gemini Flash 2.0を使用して、指定ディレクトリ内のコードファイルを要約するコマンドラインツールです。LLMツールとの統合を可能にするMCPサーバーサポートが追加されました。
特徴
ディレクトリ内のコードファイルを再帰的に処理します
.gitignoreルールを尊重node_modules、distなどの無関係なディレクトリをスキップします。Gemini Flash 2.0を使用してコードファイルを要約します
要約をテキストファイルに出力します
設定可能な詳細レベルと要約の長さ
Claude Desktop やその他の LLM ツールとの統合のための MCP サーバー
他のアプリケーションに簡単に統合できるモジュール設計
安全なAPIキー管理
MCP サーバーエンドポイントの認証
LLM 呼び出しの指数バックオフによる再試行メカニズム
不正使用を防ぐためのレート制限
Related MCP server: MCP Toolbox
要件
Node.js 18歳以上
インストール
リポジトリをクローンする
git clone https://github.com/nicobailon/code-summarizer.git cd code-summarizer依存関係をインストールします:
npm installGoogle API キーを使用して
.envファイルを作成します。GOOGLE_API_KEY=your_api_key_hereプロジェクトをビルドします。
npm run build
MCP サーバーのセットアップと統合
コード サマライザーには、Claude Desktop、Cursor AI、Cline などの LLM ツールがコード サマリーとファイル コンテンツにアクセスできるようにする Model Context Protocol (MCP) サーバーが含まれています。
MCPサーバーの起動
# Start the MCP server
npm start -- serverデフォルトでは、サーバーはポート 24312 で実行されます。これは設定で変更できます。
# Set custom MCP server port
npm start -- config set --port 8080Claude Desktopとの接続
コードサマライザーMCPサーバーを起動する
Claude Desktop を開き、Claude メニューをクリックして、「設定...」をクリックします。
「開発者」セクションに移動します
~/.claude/claude_desktop_config.json(macOS/Linux) または%USERPROFILE%\.claude\claude_desktop_config.json(Windows) に次の内容のファイルを作成します。
{
"code-summarizer": {
"command": "npx",
"args": ["-y", "your-path-to-code-summarizer/bin/code-summarizer.js", "server"],
"env": {
"GOOGLE_API_KEY": "your_api_key_here"
}
}
}Claudeデスクトップを再起動します
再起動後、Claude にコードベースにアクセスするよう依頼できます。例:「プロジェクト内のファイルを要約する」
Claude Desktop のプロンプトの例:
「私のプロジェクト内のすべての JavaScript ファイルを要約してもらえますか?」
「コードベースの概要を教えてください。」
「ファイル 'src/config/config.ts' の機能について説明します。」
「コード内の認証に関連するすべての関数を見つけます。」
カーソルAIとの接続
コードサマライザーMCPサーバーを起動する
プロジェクト ディレクトリに
.cursor/mcp.jsonファイルを作成します。
{
"mcpServers": {
"code-summarizer": {
"transport": "sse",
"url": "http://localhost:24312/sse",
"headers": {
"x-api-key": "your_api_key_here"
}
}
}
}カーソルを再起動するか、プロジェクトを再読み込みしてください
コードについて Cursor に質問します。例: 「コードベースを要約してもらえますか?」
カーソルのプロンプトの例:
「このコードベースの構造を要約してください。」
「このプロジェクトの主要な構成要素は何ですか?」
「MCP サーバーの実装について詳しく教えてください。」
「再試行メカニズムがどのように機能するかを教えてください。」
クラインとのつながり
コードサマライザーMCPサーバーを起動する
Cline では、次のコマンドで MCP サーバーを追加できます。
/mcp add code-summarizer http://localhost:24312/sse次に、API キーで認証します。
/mcp config code-summarizer headers.x-api-key your_api_key_here次に、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)設定でポートが正しいことを確認してください
接続をブロックするファイアウォールの問題を確認します
認証エラー
ヘッダーに正しい API キー (
x-api-key) を追加したことを確認します。APIキーが有効で、適切な形式になっていることを確認してください
環境変数が正しく設定されていることを確認してください
トランスポートエラー
正しいトランスポートタイプが指定されていることを確認する (SSE)
URL に正しいエンドポイント (
/sse) が含まれていることを確認します。クライアントとサーバー間のネットワーク接続を確認する
権限の問題
MCP サーバーがコードベースへの読み取りアクセス権を持っていることを確認します。
特定のファイルの要約が失敗した場合は、ファイルの権限を確認してください
Claude Desktop が MCP サーバーを見つけられない
claude_desktop_config.jsonのパスが正しいことを確認しますコマンドと引数が正しい場所を指していることを確認してください
Claude Desktop のログで構成エラーがないか確認します
レート制限
「リクエストが多すぎます」というエラーが表示された場合は、しばらくしてからもう一度お試しください。
サーバーコード内のレート制限設定を調整することを検討してください
その他の問題については、サーバー ログを確認するか、GitHub リポジトリで問題を開いてください。
使用法
コマンドラインインターフェース
# Default command (summarize)
npm start -- summarize [directory] [output-file] [options]
# Summarize code in the current directory (output to summaries.txt)
npm start -- summarize
# Summarize code with specific detail level and max length
npm start -- summarize --detail high --max-length 1000
# Show help
npm start -- --help構成管理
# Set your API key
npm start -- config set --api-key "your-api-key"
# Set default detail level and max length
npm start -- config set --detail-level high --max-length 1000
# Set MCP server port (default: 24312)
npm start -- config set --port 8080
# Show current configuration
npm start -- config show
# Reset configuration to defaults
npm start -- config resetAPI認証
MCP サーバーに接続するときは、リクエスト ヘッダーに API キーを含める必要があります。
x-api-key: your_api_key_hereすべてのエンドポイント ( /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 に送信します。
要約が収集され、指定された出力ファイルに書き込まれます。
出力形式
出力ファイルの形式は次のようになります。
relative/path/to/file
Summary text here
relative/path/to/next/file
Next summary text hereプロジェクト構造
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 Gemini APIキー | なし(必須) |
| MCP サーバーのポート | 24312 |
| 許可された CORS オリジンのコンマ区切りリスト | |
| ログレベル(エラー、警告、情報、デバッグ) | 情報 |
テンプレートについては.env.exampleを参照してください。
発達
テストの実行
# Run all tests
npm test
# Run tests with coverage
npm test -- --coverage
# Test MCP server setup
npm run test:setup今後の改善
より多くのファイル形式をサポート
代替LLMプロバイダーのサポート
GUIインターフェースのためのElectronアプリとの統合
強化されたMCPサーバー機能
高度なトークン使用状況追跡
OpenTelemetryベースの可観測性
強化された監査ログ機能
シークレットスキャン統合
Appeared in Searches
- Using separate agents for schema validation, code standards, and directory structure enforcement in development workflows
- Finding the Top 10 Most Frequently Pulled Packages from Nexus Repository
- Best practices for organizing and structuring a codebase
- Information about cursors
- Understanding and Techniques for Summarizing Information