Mutual Review Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mutual Review Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
📖 解説記事 (日本語): 自作MCPサーバーを書いて公開するまで
Claude × GPT-4o 相互コードレビュー MCP サーバー
2つの LLM がそれぞれ独立にコードをレビューし、Claude が両方の指摘を統合した最終レポートを返す MCP (Model Context Protocol) サーバーです。
review_file / review_code / review_diff の 3 ツール.py → python, .ts → typescript, ...)ENABLE_COST_TRACKING=1 で有効化)claude mcp add mutual-review -- uvx mutual-review-mcp事前に ANTHROPIC_API_KEY と OPENAI_API_KEY を環境変数に設定してください。
pip install mutual-review-mcp
# または、インストールせず一時実行:
uvx mutual-review-mcp#### A. uvx (推奨・一時実行)
uvx mutual-review-mcp # MCPサーバー起動 (stdio)
uvx --from mutual-review-mcp mutual-review path/to/foo.py # CLI#### B. pip
pip install mutual-review-mcp
mutual-review-mcp # MCP サーバー起動
mutual-review path/to/foo.py # 単発 CLI#### C. git clone (開発用)
git clone https://github.com/miharu8686/mutual-review-mcp
cd mutual-review-mcp
pip install -e .[dev]
pytest%APPDATA%/Claude/claude_desktop_config.json (macOS は ~/Library/Application Support/Claude/claude_desktop_config.json) に:
{
"mcpServers": {
"mutual-review": {
"command": "uvx",
"args": ["mutual-review-mcp"],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-...",
"OPENAI_API_KEY": "sk-..."
}
}
}
}完全な例は examples/claude_desktop_config.json を参照。
claude mcp add mutual-review -- uvx mutual-review-mcpまたは .mcp.json を手書き:
{
"mcpServers": {
"mutual-review": {
"command": "uvx",
"args": ["mutual-review-mcp"]
}
}
}review_fileファイルをディスクから読んで両モデルでレビュー。
| 引数 | 型 | 必須 | 説明 |
|---|---|---|---|
path | string | yes | レビュー対象ファイルの絶対パス |
language | string | no | 言語ヒント。省略時は拡張子から自動推定 |
context | string | no | コードの背景情報 |
synthesize | boolean | no | 統合レポート生成 (default: true) |
呼び出し例:
review_file(path="/repo/src/auth.py", context="OAuth2 callback handler")review_codeコードスニペットを直接渡してレビュー。
| 引数 | 型 | 必須 | 説明 |
|---|---|---|---|
code | string | yes | レビュー対象コード |
language | string | no | 言語ヒント |
filename | string | no | 文脈用ファイル名 |
context | string | no | 背景情報 |
synthesize | boolean | no | 統合レポート生成 (default: true) |
review_diffunified diff 文字列を直接渡してレビュー。v0.1 では git 実行は行わない。 呼び出し側で git diff の出力を取得して渡す:
git diff HEAD~1 | mutual-review --diff -| 引数 | 型 | 必須 | 説明 |
|---|---|---|---|
diff | string | yes | unified diff テキスト |
context | string | no | 背景情報 |
synthesize | boolean | no | 統合レポート生成 (default: true) |
v0.2 で review_diff_git(repo_path, ref) を追加予定。詳細は docs/ROADMAP.md。MCP を経由せず直接実行する CLI も同梱:
# ファイルレビュー (拡張子から言語自動推定)
mutual-review path/to/foo.py
# スニペット
mutual-review --code "def foo(): pass" --language python
# 標準入力から diff
git diff HEAD~1 | mutual-review --diff -
# 統合レポートを省略
mutual-review path/to/foo.py --no-synth [ Code / File / Diff ]
|
+----------+----------+
| |
v v
+-----------------+ +-----------------+
| Claude reviewer | | GPT reviewer | (並列実行)
+-----------------+ +-----------------+
| |
+----------+----------+
|
v
+------------------+
| Claude synthesizer| (両レビューを統合)
+------------------+
|
v
[ Final Report ]統合レポートには以下が含まれます:
multi_agent.py (520 行・約 7,000 文字) を 1 ファイルレビュー (統合あり) した実測値:
| モデル構成 | 合計トークン (in/out) | 1ファイルあたり |
|---|---|---|
claude-haiku-4-5 + gpt-4o-mini | 16,130 / 4,489 | 約 $0.025 (約 ¥4) |
claude-sonnet-4-6 + gpt-4o | 16,161 / 4,204 | 約 $0.105 (約 ¥16) |
1 USD = 155 円換算・2026-05 時点。価格は reviewer.py の PRICING で管理しています。>
--no-synth で 3 回中 1 回 (統合呼び出し) を省略でき、Sonnet/gpt-4o 構成で約 30% コスト削減できます。モデル変更は環境変数で:
MUTUAL_REVIEW_CLAUDE_MODEL=claude-haiku-4-5-20251001
MUTUAL_REVIEW_GPT_MODEL=gpt-4o-mini| 変数 | デフォルト | 説明 |
|---|---|---|
ANTHROPIC_API_KEY | — | (必須) Anthropic API キー |
OPENAI_API_KEY | — | (必須) OpenAI API キー |
MUTUAL_REVIEW_CLAUDE_MODEL | claude-sonnet-4-6 | Claude モデル名 |
MUTUAL_REVIEW_GPT_MODEL | gpt-4o | GPT モデル名 |
ENABLE_COST_TRACKING | 0 | 1/true でコスト追跡ログ出力 |
COST_LOG_PATH | OS依存 (XDG 準拠) | コストログの出力先 (usage.jsonl) |
MUTUAL_REVIEW_CONFIG | OS依存 | JSON 設定ファイルパス (APIキーフォールバック) |
環境変数の代わりに JSON 設定ファイルから API キーを読むこともできます。
デフォルトパス:
%APPDATA%\mutual-review-mcp\config.json~/Library/Application Support/mutual-review-mcp/config.json~/.config/mutual-review-mcp/config.json内容:
{
"anthropic_api_key": "sk-ant-...",
"openai_api_key": "sk-..."
}エラーメッセージは日英併記です:
ANTHROPIC_API_KEY が設定されていません / ANTHROPIC_API_KEY is not set. ...
Anthropic API への接続に失敗しました: ... / Failed to call Anthropic API: ...~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.