2026年8月30日日曜日

【LM Studio / Bionic】Gemini を MCP サーバー化して自動コードレビュー環境を構築する(Workspace Trust エラー回避策つき)

LM Studio や Bionic でコード生成を行う際、毎回プロンプトで「Gemini を呼び出してレビューして」と打つのは手間がかかります。

そこで今回は、Gemini CLI / SDK を MCP (Model Context Protocol) サーバーとして統合し、スキル設定経由で勝手にコードレビューを実行させる環境を構築しました。途中で発生した Workspace Trust (信頼設定) エラーの回避方法も含めて解説します。


1. 開発環境・ディレクトリ構成

  • OS: macOS

  • 環境: LM Studio / Bionic, Python 3.14 (venv)

  • 役割: Gemini CLI をバックグラウンドで起動し、stdio (標準入出力) で LM Studio と通信する MCP サーバー

Bash
/Users/hidenari/mcp/gemini-review/
├── .venv/       # Python 3.14 仮想環境
├── server.py    # MCP サーバー本体コード
└── start.sh     # LM Studio から呼び出される起動スクリプト


2. MCP サーバーの実装 (server.py)

mcp ライブラリを使用して、gemini CLI コマンドを MCP ツールとして登録します。subprocess で CLI を非対話モード(-p)で呼び出し、標準出力をそのまま返却するシンプルな実装です。

Python
from mcp.server.mcpserver import MCPServer
import subprocess

mcp = MCPServer("Gemini Reviewer")

GEMINI = "/Users/hidenari/.local/bin/gemini"


@mcp.tool()
def gemini_review(prompt: str) -> str:
    """Geminiにコードや設計のレビューを依頼する。"""

    try:
        result = subprocess.run(
            [
                GEMINI,
                "-p",
                prompt
            ],
            capture_output=True,
            text=True,
            timeout=300
        )

        if result.returncode != 0:
            return f"Gemini error:\n{result.stderr}"

        return result.stdout

    except subprocess.TimeoutExpired:
        return "Gemini review timed out after 300 seconds."

    except Exception as e:
        return f"Failed to execute Gemini: {e}"


if __name__ == "__main__":
    mcp.run()


3. 起動スクリプト (start.sh) の作成

最重要ポイントは Gemini CLI の Workspace Trust (ディレクトリ信頼チェック) を環境変数で回避すること です。これを設定しないと、非対話モードでの呼び出し時に信頼エラーで停止してしまいます。

Bash
#!/bin/bash

# Gemini CLI の信頼チェックを回避する環境変数をセット
export GEMINI_SKIP_TRUST=1
export GEMINI_ALLOW_UNTRUSTED=true

# 仮想環境の Python で server.py を起動
exec /Users/hidenari/mcp/gemini-review/.venv/bin/python \
  /Users/hidenari/mcp/gemini-review/server.py

作成後、実行権限を付与しておきます。 chmod +x /Users/hidenari/mcp/gemini-review/start.sh


4. LM Studio (Bionic) での設定

LM Studio の MCP 設定画面(または ~/.lmstudio/mcp.json)にて、起動コマンドを指定します。

![LM Studio MCP Configuration]

















  • Name: gemini-review(※画像内では My MCP

  • Command: /Users/hidenari/mcp/gemini-review/start.sh


設定保存後、ステータスが Connected · 1 tool ready と緑色に点灯すれば、背景プロセスとして正しく接続完了です。


5. プロセスの起動確認

ターミナルで ps コマンドを実行し、バックグラウンド待機状態になっているか確認します。

Bash
ps aux | grep gemini-review

TTY が ?? かつ STAT が S (Sleep) で待機している PID があれば、LM Studio と stdio 経由で正常接続されています。


6. Bionic Skill に自動呼び出しルールを仕込む

毎回「Gemini を使って」と書かずに済むよう、Bionic の Skill 設定(dev-doc-rules)に自動実行トリガーを埋め込みます。

Bionic Skill 登録用テキスト:

Markdown
コーディング完了時の引き継ぎドキュメント (Markdown) とGit用README更新案の作成ルール、およびコードレビュー時のMCP自動呼び出しルール

出力してください。

1. 引き継ぎドキュメント ( docs/ 配下等に保存する Markdown用)

```markdown
# 引き継ぎメモ: [機能名 / タスク名] (YYYY-MM-DD)

## 1. 今回実装した内容
- **対象ファイル**: `src/path/to/file.ext`
- **概要**: 実装・修正した処理の概要

## 2. 影響範囲・注意事項
- 他のモジュールへの影響や、依存している設定 (環境変数など)
- パフォーマンスやセキュリティ上の留意点

## 3. 保留・未対応事項 (Issues)
- 今回あえて対応しなかった仕様や、仮実装 (ハードコード等) で留めた箇所

## 4. 残タスク・ネクストアクション
- [ ] 次に実装・対応すべき項目
- [ ] テストコードの作成・拡充
  1. コードレビューおよび修正時のMCP自動実行ルール

  • ユーザーからコードのレビュー、リファクタリング、バグ修正、またはコード品質の検証を求められた場合は、明示的な指示がなくても、必ず gemini-review MCP ツールを自発的に呼び出して検証結果を取得してください。

  • 自身の知識だけで回答せず、gemini-review の出力内容を最優先で盛り込んだ回答を生成してください。


---

## 7. 動作確認

設定完了後、「テストとしてGeminiにレビュー出来るのか疎通確認したい」と頼むだけで、裏で勝手に Gemini CLI が `--skip-trust` つきで起動し、以下のような精緻なレビューを自動出力してくれるようになりました。

* **状態同期/UX**: `commitRename` での `setEditingTitle(false)` 欠落指摘
* **アクセシビリティ**: `tabIndex={-1}` が設定された header のキーボードフォーカス不可
* **セキュリティ**: パス横断対策の検証結果

手動で外部 API や CLI を叩く手間が一切なくなり、ローカル LLM 開発の効率が劇的に向上しました。

0 件のコメント:

コメントを投稿

【AI×GitOps】Docker Composeから始めるRaspberry Pi 5 Kubernetesクラスタへの自動デプロイ設計

現在構築を進めている動画管理システム開発において、いきなりKubernetes(K8s)に展開するのではなく、 Docker Composeを中間地点に挟んで段階的にK8s+Argo CD(GitOps)へ移行するアーキテクチャ設計 をまとめました。 Bionic(AIアシスタン...