@vibesnipe/code Review Mcp について
複数の LLM プロバイダーを使い、git diff(ステージ済みの変更、HEAD との差分、ブランチ間の差分)をレビューする MCP サーバーです。Claude Code、Cursor、Windsurf などの AI コーディングアシスタントを使う開発者を対象とし、タスク説明やプロジェクトの文脈を含めたレビューを生成します。
主な機能
- 01ステージ済み、HEAD、ブランチ間の差分をレビュー
- 02Google、OpenAI、Anthropic のモデルに対応
- 03タスク説明、レビュー観点、プロジェクト文脈を指定
- 04Markdown 形式でレビュー結果を出力
- 05npx で直接実行可能
活用シーン
- 01コミット前にステージ済みの変更をレビュー
- 02機能ブランチを main と比較してレビュー
- 03Cursor や Windsurf のスラッシュコマンドからレビューを開始
MCP 対応
本プロジェクトは MCP サーバーであり、MCP クライアントに perform_code_review ツールを公開します。クライアントはレビューのパラメーターを渡してこのツールを呼び出します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| target | enum | はい | レビュー対象の Git ターゲット(例:'staged'、'HEAD'、'branch_diff')。staged | HEAD | branch_diff |
| taskDescription | string | はい | これらのコード変更につながったタスク、機能、バグ修正の説明。 |
| llmProvider | enum | はい | 使用する LLM プロバイダー(google、openai、anthropic)。google | openai | anthropic |
| modelName | string | はい | プロバイダーの具体的なモデル名(例:'gemini-2.5-pro-preview-05-06'、'o4-mini'、'claude-3-7-sonnet-20250219')。 |
| reviewFocus | string | いいえ | レビューで重点的に確認する領域や観点(例:'security vulnerabilities'、'performance optimizations'、'adherence to SOLID principles')。 |
| projectContext | string | いいえ | プロジェクト、アーキテクチャ、コーディング規約に関する一般的なコンテキスト。 |
| diffBase | string | いいえ | 'branch_diff' ターゲットの場合、比較対象のベースブランチまたはコミット SHA(例:'main'、'develop'、'specific-commit-sha')。target が 'branch_diff' の場合は必須です。 |
| maxTokens | number | いいえ | LLM の応答に使用する最大トークン数。指定がない場合、デフォルトは 32000 です。 |
詳細
@vibesnipe/code-review-mcp
Version: 1.0.0
さまざまな大規模言語モデル(LLM)を使用してコードレビューを行う強力なツールを提供する、MCP(Model Context Protocol)サーバーです。このサーバーは、Anthropic の Claude Code、Cursor、Windsurf などの AI コーディングアシスタントや、その他の MCP 対応クライアントとシームレスに統合できるよう設計されています。
注記: このツールは当初 Claude Code 向けに作成されましたが、その後、ほかの AI IDE や Claude Desktop もサポートするよう拡張されました。Claude Code、Cursor、Windsurf の統合ガイドをご覧ください。
git diff の出力を分析し、ステージされた変更、HEAD との差分、またはブランチ間の差分を対象として、タスクの説明やプロジェクトの詳細に基づいた、文脈に即したレビューを提供します。
特長
- git の差分(ステージされた変更、現在の HEAD、ブランチ間の差分)をレビューします。
- Vercel AI SDK を通じて、Google Gemini、OpenAI、Anthropic のモデルと連携します。
- タスクの説明、レビューの重点、プロジェクト全体のコンテキストを指定して、目的に合わせたレビューを行えます。
- 明確で実行可能な Markdown 形式でレビューを出力します。
- 分析したい任意の Git リポジトリのルートから実行できるよう設計されています。
npxを使って簡単にインストールし、すぐに実行できます。
互換性
- Node.js:バージョン 18 以上が必要です。
- オペレーティングシステム:Windows、macOS、Linux で動作します。
- Git:バージョン 2.20.0 以上を推奨します。
前提条件
- Node.js:バージョン 18 以上が必要です。
- Git:インストールされ、システムの PATH からアクセスできる必要があります。このサーバーは
gitコマンドを実行します。 - LLM の API キー:使用する LLM プロバイダーの API キーが必要です。次の環境変数に設定してください。
- Google のモデルには
GOOGLE_API_KEYを設定します。 - OpenAI のモデルには
OPENAI_API_KEYを設定します。 - Anthropic のモデルには
ANTHROPIC_API_KEYを設定します。 環境変数はシステム全体に設定するか、現在レビューしているプロジェクトのルートに.envファイルを配置して設定できます。サーバーは.envファイルを自動的に読み込みます。
- Google のモデルには
インストールと使い方
このサーバーは主に npx で使用します。グローバルにインストールしなくても、常に最新バージョンを利用できます。
推奨:npx を使う
-
プロジェクトに移動します: ターミナルを開き、レビューしたい Git リポジトリのルートディレクトリに移動します。
cd /path/to/your-git-project -
MCP サーバーを実行します: 次のコマンドを実行します。
npx -y @vibesnipe/code-review-mcpこのコマンドは、
@vibesnipe/code-review-mcpサーバーをダウンロード(まだキャッシュされていない場合)して実行します。ターミナルには、次のような出力が表示されます。[MCP Server] Code Reviewer MCP Server is running via stdio and connected to transport.サーバーは起動し、MCP クライアント(Claude Code、Cursor、Windsurf など)の接続を待機しています。
Smithery 経由でのインストール
Smithery を使って、Claude Desktop 用の code-review-mcp を自動的にインストールするには:
npx -y @smithery/cli install @praneybehl/code-review-mcp --client claude
Claude Code との統合
claude-code-review-mcp サーバーが起動したら(プロジェクトのルートから npx で実行するのが理想的です)、次の手順を行います。
-
Claude Code に MCP サーバーとして追加する: Claude Code を実行している(またはこれから実行する)別のターミナルで、この MCP サーバーを使用するように設定します。 Claude Code が使用するサーバーの起動コマンドは、グローバルにインストールされ PATH に含まれている場合は
code-review-mcp、Claude Code に常に取得させる場合はnpx ...コマンドです。Claude Code に追加するには、次のコマンドを実行します。
claude mcp add code-reviewer -s <user|local> -e GOOGLE_API_KEY="key" -- code-review-mcpClaude Code に
npxを使用させる場合(グローバルにインストールしない場合、バージョンの一貫性を保つために推奨されます)は、次のコマンドを実行します。claude mcp add code-reviewer -s <user|local> -e GOOGLE_API_KEY="key" -- npx -y @vibesnipe/code-review-mcpこれにより、「code-reviewer」ツールセットが要求されたときに MCP サーバーを起動する方法が Claude Code に伝わります。この設定は、プロジェクト固有(プロジェクト内の
.claude/.mcp.jsonに保存)またはユーザー固有(Claude Code のグローバル設定)にできます。 -
Claude Code でスマートスラッシュコマンドを使用する: レビューツールを簡単に呼び出せるよう、プロジェクトの
.claude/commands/ディレクトリにカスタムスラッシュコマンドのファイルを作成します。このパッケージには、プロジェクトにコピーして使えるコマンドの例がexamples/claude-commands/ディレクトリにいくつか含まれています。これらの改良されたスラッシュコマンドでは、タスクの説明やプロジェクトのコンテキストを手動で指定する必要はありません。Claude Code がすでに把握しているプロジェクトの情報と、現在取り組んでいるタスクを活用します。
Claude Code でスラッシュコマンドを使って呼び出す例:
claude > /project:review-staged-claude追加の引数は必要ありません。Claude は現在の作業内容を理解し、それをレビューのコンテキストとして使用します。
カスタムのブランチ名を使う
review-branch-custom-gemini.mdのように、引数が必要なコマンドでは、コマンドの後に引数を直接渡せます。claude > /project:review-branch-custom-gemini mainこれにより、「main」が $ARGUMENTS_BASE_BRANCH パラメーターとして渡されます。
最新の AI IDE との統合
Cursor との統合
Cursor は VS Code をベースにした、MCP サーバーに対応する人気の AI 搭載 IDE です。コードレビュー MCP サーバーを Cursor と統合する手順は次のとおりです。
-
コードレビュー用の Cursor ルールを設定する:
プロジェクト内の
.cursor/rules/project.mdcファイルを作成または開き、次のセクションを追加します。## Slash Commands /review-staged: Use the perform_code_review tool from the code-reviewer MCP server to review staged changes. Use anthropic provider with claude-3-7-sonnet-20250219 model. Base the task description on our current conversation context and focus on code quality and best practices. /review-head: Use the perform_code_review tool from the code-reviewer MCP server to review all uncommitted changes (HEAD). Use openai provider with o3 model. Base the task description on our current conversation context and focus on code quality and best practices. /review-security: Use the perform_code_review tool from the code-reviewer MCP server to review staged changes. Use anthropic provider with claude-3-5-sonnet-20241022 model. Base the task description on our current conversation context and specifically focus on security vulnerabilities, input validation, and secure coding practices. -
Cursor に MCP サーバーを追加する:
- Cursor の設定を開きます
- MCP サーバーのセクションに移動します
- 次の JSON 設定で MCP サーバーを追加します
"code-reviewer": { "command": "npx", "args": ["-y", "@vibesnipe/code-review-mcp"], "env": { "GOOGLE_API_KEY": "your-google-api-key", "OPENAI_API_KEY": "your-openai-api-key", "ANTHROPIC_API_KEY": "your-anthropic-api-key" } } -
コマンドを使用する:
Cursor の AI チャットインターフェースで、次のように入力するだけです。
/review-stagedCursor は claude-code-review-mcp サーバーを使用して、ステージングされた変更をコードレビューします。
Windsurf との連携
Windsurf(旧 Codeium)は、スラッシュコマンドによるカスタムワークフローに対応した、もう 1 つの高度な AI IDE です。Windsurf との連携方法は次のとおりです。
-
Windsurf で MCP サーバーを設定する:
- Windsurf を開きます
- Cascade の右上にあるカスタマイズアイコンをクリックします
- MCP サーバーパネルに移動します
- 次の JSON 設定を使用して、新しい MCP サーバーを追加します
"code-reviewer": { "command": "npx", "args": ["-y", "@vibesnipe/code-review-mcp"], "env": { "GOOGLE_API_KEY": "your-google-api-key", "OPENAI_API_KEY": "your-openai-api-key", "ANTHROPIC_API_KEY": "your-anthropic-api-key" } } -
コードレビュー用のワークフローを作成する:
Windsurf は、スラッシュコマンドで呼び出せるワークフローに対応しています。
.windsurf/workflows/review-staged.mdにファイルを作成します。# Review Staged Changes Perform a code review on the currently staged changes in the repository. ## Step 1 Use the perform_code_review tool from the code-reviewer MCP server with the following parameters:{ "target": "staged", "llmProvider": "anthropic", "modelName": "claude-3-7-sonnet-20250219", "taskDescription": "The task I am currently working on in this codebase", "reviewFocus": "General code quality, security best practices, and performance considerations", "projectContext": "This project is being developed in Windsurf. Please review the code carefully for any issues." }
必要に応じて、ほかの種類のレビュー用ワークフローも同様に作成します。
-
ワークフローを使用する:
Windsurf の Cascade インターフェースでは、次のようにワークフローを呼び出せます。
/review-stagedその後、Windsurf がワークフローを実行し、claude-code-review-mcp サーバーを使用してコードレビューを行います。
この MCP サーバーが提供するツール
perform_code_review
説明: 指定された大規模言語モデルを使用して、現在の Git リポジトリ内の Git 変更をコードレビューします。このツールは、レビュー対象のリポジトリのルートディレクトリから実行する必要があります。
入力スキーマ(パラメーター):
このツールでは、CodeReviewToolParamsSchema に一致するパラメーターを指定します。
-
target(列挙型:'staged'、'HEAD'、'branch_diff'): レビューする変更の範囲を指定します。'staged':現在コミット用にステージングされている変更のみをレビューします。'HEAD':最後のコミットと比較して、未コミットの変更(ステージング済みと未ステージングの両方)をレビューします。'branch_diff':指定したベースブランチ/コミットと現在の HEAD の間の変更をレビューします。diffBaseパラメーターが必要です。
-
taskDescription(文字列): コード変更につながったタスク、機能、またはバグ修正について、明確かつ簡潔に説明します。LLM レビュアーにとって重要なコンテキストになります。(例:「メール OTP によるパスワードリセット機能を実装しました。」) -
llmProvider(列挙型:'google'、'openai'、'anthropic'): レビューに使用する大規模言語モデルのプロバイダーです。 -
modelName(文字列): 選択したプロバイダーの具体的なモデル名です。例:- Google:
'gemini-2.5-pro-preview-05-06'、'gemini-2.5-flash-preview-04-17'(参照:https://ai-sdk.dev/providers/ai-sdk-providers/google-generative-ai#model-capabilities) - OpenAI:
'o4-mini'、'gpt-4.1'、'gpt-4.1-mini'、'o3'(参照:https://ai-sdk.dev/providers/ai-sdk-providers/openai#model-capabilities) - Anthropic:
'claude-3-7-sonnet-20250219'、'claude-3-5-sonnet-20241022'(参照:https://ai-sdk.dev/providers/ai-sdk-providers/anthropic#model-capabilities) 選択したモデルが Vercel AI SDK で利用可能であり、お使いの API キーにそのモデルへのアクセス権があることを確認してください。
注: プロバイダーが新しいバージョンをリリースすると、モデル名は頻繁に変わります。必ずプロバイダーの最新ドキュメントを確認し、それに応じてモデル名を更新してください。
- Google:
-
reviewFocus(文字列、任意ですが推奨): レビュー中に LLM に重点的に確認してほしい領域、懸念事項、または観点を指定します。(例:「並行処理におけるスレッドセーフ性に注目してください。」「入力の検証とサニタイズを特に注意して確認してください。」「React コンポーネントが社内スタイルガイドに準拠しているか確認してください。」) -
projectContext(文字列、任意ですが推奨): プロジェクトの背景、アーキテクチャ、主要なライブラリ、コーディング規約など、LLM がより適切で有益なレビューを行ううえで役立つコンテキストを指定します。(例:「これは Rust と Actix を使用した高性能マイクロサービスです。低レイテンシが重要です。」「このプロジェクトではクリーンアーキテクチャの原則に従っています。新しいコードがこれに沿っていることを確認してください。」) -
diffBase(文字列、任意):targetが'branch_diff'の場合は必須です。 現在の HEAD と比較するベースブランチ(例:'main'、'develop')または特定のコミット SHA を指定します。 -
maxTokens(数値、任意): LLM の応答で使用するトークンの最大数です。指定しない場合、デフォルトは 32000 です。このパラメーターを使って、応答を速く、低コストにする(値を小さくする)か、より包括的なレビューにする(値を大きくする)かを調整できます。 注: v0.11.0 では、コストと品質のバランスを改善するため、デフォルト値が 60000 トークンから 32000 トークンに引き下げられました。
出力:
- 成功した場合:
isError: falseと、テキスト項目を 1 つ含むcontent配列を持つ JSON オブジェクトです。textフィールドには、LLM が生成した Markdown 形式のコードレビューが格納されます。 - エラーが発生した場合:
isError: trueとcontent配列を持つ JSON オブジェクトです。textフィールドには、問題を説明するエラーメッセージが格納されます。
環境変数
LLM との連携を機能させるには、claude-code-review-mcp サーバー(npx または claude-code-review-mcp によって起動されるプロセス)が、該当する API キーにアクセスできる必要があります。
これらの値をシェル環境に設定するか、レビュー対象のプロジェクトのルートディレクトリにある .env ファイルに記述してください。
-
Google モデルの場合:
GOOGLE_API_KEY="your_google_api_key" -
OpenAI モデルの場合:
OPENAI_API_KEY="your_openai_api_key" -
Anthropic モデルの場合:
ANTHROPIC_API_KEY="your_anthropic_api_key"
サーバーは、カレントワーキングディレクトリ(つまり、プロジェクトのルート)にある .env ファイルから変数を自動的に読み込みます。または、上記の例のように MCP サーバーの設定で直接指定することもできます。
Claude Code 用スマートスラッシュコマンド
このパッケージには、examples/claude-commands/ ディレクトリに改良されたスラッシュコマンドがいくつか含まれています。これらのコマンドをプロジェクトの .claude/commands/ ディレクトリにコピーして使用できます。Claude Code がプロジェクトのコンテキストと現在のタスクを理解する機能を活用するため、手動で入力する必要がありません。
利用可能なスラッシュコマンド
| コマンドファイル | 説明 |
|---|---|
review-staged-claude.md | Claude 3.5 Sonnet を使用してステージ済みの変更をレビューします |
review-staged-openai.md | OpenAI GPT-4.1 を使用してステージ済みの変更をレビューします |
review-staged-gemini.md | Google Gemini 2.5 Pro を使用してステージ済みの変更をレビューします |
review-head-claude.md | Claude 3.7 Sonnet を使用して未コミットの変更をすべてレビューします |
review-head-openai.md | OpenAI O3 を使用して未コミットの変更をすべてレビューします |
review-head-gemini.md | Google Gemini 2.5 Pro を使用して未コミットの変更をすべてレビューします |
review-branch-main-claude.md | Claude 3.7 Sonnet を使用して main ブランチの変更をレビューします |
review-branch-develop-openai.md | OpenAI O4-mini を使用して develop ブランチの変更をレビューします |
review-branch-custom-gemini.md | Google Gemini 2.5 Flash を使用して指定したブランチの変更をレビューします |
review-staged-security-claude.md | Claude 3.5 Sonnet を使用してステージ済みの変更をセキュリティ重視でレビューします |
review-staged-performance-openai.md | OpenAI O3 を使用してステージ済みの変更をパフォーマンス重視でレビューします |
review-staged-maintainability-gemini.md | Google Gemini 2.5 Flash を使用してステージ済みの変更を保守性重視でレビューします |
これらのコマンドを使用するには:
examples/claude-commands/ディレクトリから目的のコマンドファイルを、プロジェクトの.claude/commands/ディレクトリにコピーします- Claude Code で
/project:command-nameを実行します(例:/project:review-staged-claude)
これらのコマンドは、現在のタスクとプロジェクトのコンテキストに関する Claude の知識を自動的に利用するため、長い引数を手動で指定する必要がありません。
セキュリティに関する考慮事項
-
API キーの取り扱い:LLM プロバイダーの API キーは機密性の高い認証情報です。このツールは環境変数または
.envファイルから API キーにアクセスしますが、必要な API 呼び出し以外で保存または送信することはありません。本番環境では、安全な環境変数マネージャーの使用を検討してください。 -
Git リポジトリの分析:このツールはローカルの Git リポジトリの内容を分析します。Git コマンドを実行して diff の出力を読み取りますが、コードベース全体を LLM に送信することはなく、レビュー対象の変更のみを送信します。
-
コードのプライバシー:外部の LLM プロバイダーにレビュー用のコードを送信する際は、以下の情報に注意してください。
- コードコメントや文字列に含まれる機密情報
- 独自のアルゴリズムや企業秘密
- 設定ファイルに含まれる認証情報や API キー
-
ブランチ名のサニタイズ:コマンドインジェクションを防ぐため、Git コマンドで使用する前にブランチ名はサニタイズされます。ただし、ブランチ名に珍しい文字を使用しないことをお勧めします。
開発(@vibesnipe/code-review-mcp パッケージ自体について)
@vibesnipe/code-review-mcp パッケージへのコントリビュートや変更を行う場合:
-
モノレポをクローンする: リポジトリがクローンされていることを確認します。
-
パッケージに移動する:
cd /path/to/claude-code-review-mcp -
依存関係をインストールする:
pnpm install -
開発モードで実行する: TypeScript の変更をホットリロードするために
tsxを使用します。pnpm devサーバーが起動し、
stderrにログを出力します。 -
Claude Code でテストする(ローカル開発): ローカルの開発サーバーのスクリプトの場所を Claude Code に伝える必要があります。
# Claude Code を使用する任意のディレクトリから claude mcp add local-code-reviewer "node /path/to/claude-code-review-mcp/src/index.ts" --interpreter=tsxこれで、Claude Code が「local-code-reviewer」を必要としたときに、
tsxを使用してソースのindex.tsを実行します。/path/to/claude-code-review-mcp/は、リポジトリの実際の絶対パスに置き換えてください。
本番環境向けのビルド/公開
パッケージのディレクトリから:
pnpm build
これにより、TypeScript が dist ディレクトリ内の JavaScript にコンパイルされます。package.json の prepublishOnly スクリプトによって、npm にパッケージを公開する前にこのコマンドが自動的に実行されます。
トラブルシューティング
- 「Current directory is not a git repository...」:有効な Git プロジェクトのルートディレクトリから
npx @vibesnipe/code-review-mcp(またはグローバルコマンド)を実行していることを確認してください。 - 「API key for ... is not configured」:関連する環境変数(例:
OPENAI_API_KEY)が、MCP サーバーを起動したシェル内、またはプロジェクトのルートにある.envファイルで設定されていることを確認してください。 - 「Failed to get git diff. Git error: ...」:
git diffコマンドで問題が発生していることを示します。gitがインストールされ、PATH に含まれていることを確認してください。targetとdiffBase(該当する場合)がリポジトリに対して有効であることを確認してください。git自体のエラーメッセージに、さらに詳しい情報が示されているはずです。
- LLM API エラー:LLM プロバイダーからのエラー(レート制限、無効なモデル名、認証の問題など)は、そのまま渡されます。該当する LLM API の詳細については、エラーメッセージを確認してください。
- Claude Code MCP の問題:Claude Code がサーバーを見つけられない、または起動できない場合は、
claude mcp add ...コマンドと、MCP サーバーに指定したコマンドが正しく、実行可能であることを再確認してください。claude mcp listを使用して確認できます。 - Cursor MCP サーバーの問題:Cursor が MCP サーバーを認識しない場合は、正しい設定で設定に追加されていることを確認してください。
- Windsurf ワークフローのエラー:Windsurf のワークフローが正しく実行されない場合は、次の点を確認してください。
- ワークフローファイルが適切にフォーマットされ、
.windsurf/workflows/ディレクトリに配置されていること - MCP サーバーが Windsurf の MCP Server パネルで正しく設定されていること
- 必要な API キーが環境に設定されていること
- ワークフローファイルが適切にフォーマットされ、
ライセンス
MIT ライセンス - Copyright (c) Praney Behl
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。