Code Review Server について
Code Review Server は、Repomix でコードベースを平坦化し、OpenAI、Anthropic、Gemini の LLM に送信して構造化されたコードレビューを生成する MCP サーバーです。LLM によるリポジトリの問題点確認や改善提案を求める開発者を対象としています。
主な機能
- 01Repomix によるコードベースのテキスト化
- 02OpenAI、Anthropic、Gemini プロバイダーへの対応
- 03種類と重大度を含む構造化された問題の出力
- 04大規模コードベースのチャンク分割
- 05ファイル、拡張子、詳細度、注目領域による絞り込み
活用シーン
- 01リポジトリのセキュリティと性能の問題のレビュー
- 02詳細レビュー前のコード構造の把握
- 03コード品質と保守性の評価
MCP 対応
MCP サーバーとして、analyze_repo と code_review の 2 つのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
コードレビューサーバー
Repomix と LLM を使用してコードレビューを行うカスタム MCP サーバーです。
機能
- Repomix を使用してコードベースをフラット化
- 大規模言語モデルでコードを分析
- 具体的な問題点と推奨事項を含む構造化されたコードレビューを取得
- 複数の LLM プロバイダー(OpenAI、Anthropic、Gemini)に対応
- 大規模なコードベースのチャンク分割に対応
インストール
# Clone the repository
git clone https://github.com/yourusername/code-review-server.git
cd code-review-server
# Install dependencies
npm install
# Build the server
npm run build
設定
.env.example テンプレートをもとに、ルートディレクトリに .env ファイルを作成します。
cp .env.example .env
.env ファイルを編集し、使用する LLM プロバイダーと API キーを設定します。
# LLM Provider Configuration
LLM_PROVIDER=OPEN_AI
OPENAI_API_KEY=your_openai_api_key_here
使用方法
MCP サーバーとして
コードレビューサーバーは Model Context Protocol(MCP)を実装しており、任意の MCP クライアントで使用できます。
# Start the server
node build/index.js
サーバーは、主に次の 2 つのツールを公開します。
analyze_repo:Repomix を使用してコードベースをフラット化しますcode_review:LLM を使用してコードレビューを行います
MCP ツールを使用するタイミング
このサーバーは、コード分析のニーズに応じて使い分けられる 2 つのツールを提供します。
analyze_repo
次のような場合にこのツールを使用します。
- コードベースの構造や構成の概要を把握したい
- 初期分析のためにリポジトリをテキスト形式にフラット化したい
- 詳細なレビューを行わずに、ディレクトリ構造やファイルの内容を把握したい
- より詳細なコードレビューの準備をしたい
- コードベースをすばやくスキャンして、さらに分析するファイルを特定したい
使用例:
- 「レビューする前に、このリポジトリの構造を把握したい」
- 「このコードベースに含まれるファイルとディレクトリを見せて」
- 「構成を理解するために、コードをフラット化して表示して」
code_review
次のような場合にこのツールを使用します。
- 包括的なコード品質評価を行いたい
- 具体的なセキュリティ脆弱性、パフォーマンスのボトルネック、またはコード品質の問題を特定したい
- コードを改善するための実用的な推奨事項を取得したい
- 問題の重大度評価を含む詳細なレビューを行いたい
- ベストプラクティスに照らしてコードベースを評価したい
使用例:
- 「このコードベースにセキュリティ脆弱性がないかレビューして」
- 「これらの特定の JavaScript ファイルのパフォーマンスを分析して」
- 「このリポジトリのコード品質を詳しく評価して」
- 「コードをレビューして、保守性を高める方法を教えて」
パラメーターの使用方法:
specificFiles:リポジトリ全体ではなく、特定のファイルだけをレビューしたい場合fileTypes:特定のファイル拡張子(例:.js、.ts)に絞り込みたい場合detailLevel:概要をすばやく把握するには 'basic'、詳細に分析するには 'detailed' を使用しますfocusAreas:特定の側面(セキュリティ、パフォーマンスなど)を優先したい場合
CLI ツールの使用
テスト目的で、付属の CLI ツールを使用できます。
node build/cli.js <repo_path> [options]
オプション:
--files <file1,file2>:レビュー対象の特定のファイル--types <.js,.ts>:レビューに含めるファイルの種類--detail <basic|detailed>:詳細レベル(デフォルト:detailed)--focus <areas>:重点的に確認する領域(security,performance,quality,maintainability)
例:
node build/cli.js ./my-project --types .js,.ts --detail detailed --focus security,quality
開発
# Run tests
npm test
# Watch mode for development
npm run watch
# Run the MCP inspector tool
npm run inspector
LLM との連携
コードレビューサーバーは、複数の LLM プロバイダー API と直接連携します。
- OpenAI(デフォルト:gpt-4o)
- Anthropic(デフォルト:claude-3-opus-20240307)
- Gemini(デフォルト:gemini-1.5-pro)
プロバイダーの設定
.env ファイルで使用する LLM プロバイダーを設定します。
# Set which provider to use
LLM_PROVIDER=OPEN_AI # Options: OPEN_AI, ANTHROPIC, or GEMINI
# Provider API Keys (add your key for the chosen provider)
OPENAI_API_KEY=your-openai-api-key
ANTHROPIC_API_KEY=your-anthropic-api-key
GEMINI_API_KEY=your-gemini-api-key
モデルの設定
各プロバイダーで使用するモデルを任意で指定できます。
# Optional: Override the default models
OPENAI_MODEL=gpt-4-turbo
ANTHROPIC_MODEL=claude-3-sonnet-20240229
GEMINI_MODEL=gemini-1.5-flash-preview
LLM 統合の仕組み
code_reviewツールは Repomix を使用してリポジトリ構造をフラット化し、コードを処理します- 必要に応じて、LLM のコンテキスト上限に収まるようにコードを整形し、チャンクに分割します
- 注目する領域と詳細レベルに基づいて、詳細なプロンプトを生成します
- プロンプトとコードを、選択したプロバイダーの LLM API に直接送信します
- LLM の応答を構造化形式に解析します
- 問題点、強み、推奨事項を含む JSON オブジェクトとしてレビューを返します
この実装には、API エラーに対する堅牢性を高める再試行ロジックと、レビューに最も関連性の高いコードが含まれるようにする適切な整形処理が含まれています。
コードレビューの出力形式
コードレビューは、構造化された JSON 形式で返されます。
{
"summary": "Brief summary of the code and its purpose",
"issues": [
{
"type": "SECURITY|PERFORMANCE|QUALITY|MAINTAINABILITY",
"severity": "HIGH|MEDIUM|LOW",
"description": "Description of the issue",
"line_numbers": [12, 15],
"recommendation": "Recommended fix"
}
],
"strengths": ["List of code strengths"],
"recommendations": ["List of overall recommendations"]
}
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。