Inspectrum について
Inspectrumは、コーディングエージェントのワークフロー向けに、実行前の計画を独立して確認するMCPサーバーです。高リスクな変更の承認前に定期的なチェックを行いたい開発者向けで、複数のレビュアー、出典付きの指摘、構造化された判定を提供し、最終判断は人に委ねます。
主な機能
- 01Claude Codeの計画を自動チェック
- 02MCPホストからのオンデマンドレビュー
- 03複数レビュアーの並列実行と判定統合
- 04出典付き指摘と承認・修正・却下の判定
- 05ローカルのMarkdownレビュー記録
- 06inspectrum doctorによるレビュアーとモデルの確認
活用シーン
- 01実行前に移行や認証の計画を確認
- 02MCPホストから別モデルのレビューを依頼
- 03複数のレビュアーを比較して指摘を統合
MCP 対応
InspectrumはMCPサーバーを通じて計画レビューを提供し、ローカルのMCPホストからreview_plan契約をオンデマンドで呼び出せます。MCPクライアントは設定済みのレビュアーモデルにレビューを依頼できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| plan | string | はい | レビューする計画(Markdown 形式)。最大 16 000 文字。 |
| focus | enum | いいえ | レビューの重点領域。correctness | completeness | risk | clarity | all |
| judge | boolean | いいえ | レビュアーが >= 2 の場合、judge agent を実行して統合します。 |
| context | string | いいえ | コンテキスト用の任意のコードベース抜粋。最大 8 000 文字。 |
| reviewers | array | いいえ | レビュアー ID(設定から取得)。デフォルトは config defaults.reviewers です。 |
詳細
もっともらしい計画でも、エージェントを、取り消すのに多大なコストがかかる移行、認証の変更、決済フロー、互換性の破壊、またはデプロイへと進ませることがあります。
Inspectrum は、その決定を下す前に行う独立した事前チェックです。 最初の自動連携は、Claude Code がプランモードを終了したときに実行されます。承認ダイアログが表示される前に Codex(GPT)が計画をレビューし、問題が見つかれば計画を修正に戻すことができます。最終的な承認権はあなたにあります。レビュアーが実行できない場合は、レビュー済みとひそかに報告するのではなく、警告を表示して計画をそのまま通します。
ここでいう独立とは、作成者とは異なるモデルのレビュアーが、別途呼び出されることを意味します。エラーが統計的に独立しているという意味ではありません。Inspectrum はチェックポイントを繰り返し実行できるようにし、失敗を可視化します。一方で、信頼性が実際に向上することも、他社が簡単に模倣できない優位性も、まだ実証されていません。0.2.2 以降の戦略では、証拠に基づく判断基準を定め、コードレビュー、プルリクエストレビュー、ペアプログラミングを対象外としています。
スキルだけで十分な場合
たまにセカンドオピニオンを求めるだけなら、あるエージェントに別のエージェントを呼び出して回答を比較するようルールで指示できます。これは合理的で軽量な方法です。
Inspectrum は、繰り返し実行するチェックポイントを必要とする場合に向いています。Claude Code では、プラグインがプランから実行へ移る境界で動作し、覚えておくべきプロンプトに頼らず、修正ループに上限を設け、運用上のエラーが発生した場合は処理を続行します。他のローカル MCP ホストからは、同じ review_plan コントラクトを必要に応じて呼び出せます。どちらの経路でも、問題の出所を明示し、共通の判定形式を返し、人間の制御を保ち、レビューに成功した場合の証跡をローカルに記録します。
スキルで同じ保証を再現するには、オーケストレーション、出力検証、ヘルスチェック、障害時のポリシー、セッション記録を自分で維持する必要があります。
2026年8月1日時点の公開状況: npm 0.2.3、GitHub リリース、およびリポジトリの Claude プラグインと Codex プラグインは、すべて 0.2.3 で揃っています。Glama では公開されています。MCP Registry ではまだ 0.2.2 と表示される場合があります。今回の確認では再公開していません。Inspectrum は公開 Claude Community カタログには掲載されておらず、PulseMCP では一度限りの再確認が HTTP 403 によって阻止されたため、現在の PulseMCP 掲載については主張していません。
公開版 0.2.3 の有効化に関する証拠には、正確なコマンド、所要時間、有用な指摘があったケース、結果がなかったケース、警告付きで処理を続行したケース、および測定上の制限が記録されています。
クイックスタート
Node 20+、Claude Code、そしてChatGPT のサブスクリプションで認証済みの Codex CLI >= 0.99.0 が必要です(API キーは不要です)。
claude plugin marketplace add yannmenec/inspectrum
claude plugin install inspectrum@inspectrum
インストールはこれで完了です。次回プランモードで計画を終えると:
⏺ ExitPlanMode
⎿ inspectrum×codex: REVISE (round 1/2) # abridged — real output
Majors: # adds a full-report path
- [codex] Migration drops the unique index before backfilling —
concurrent writes can insert duplicates.
Fix: backfill first, drop the index last.
Revise the plan to address these findings, then finish the plan again.
⏺ ExitPlanMode
⎿ inspectrum: codex approved the plan (session 2026-07-12…).
┌ Ready to code? ────────────────
│ Here is Claude's plan… ← your normal approval dialog
覚えておくプロンプトも、ボタンも不要で、起動時にトークンは消費しません。このゲートは決定的なフックであり、セッションで Fable、Sonnet、Haiku のどれが動いていても、プランのたびに実行されます。自動ゲートを有効にするには、コマンドを2つ実行します。オンデマンドの /inspectrum:review コマンドには、追加で1行(MCP サーバーの登録)が必要です。手順は以下のセットアップで説明します。
エージェントにインストールと確認をすべて任せますか?これを Claude Code に貼り付けてください。
Set up Inspectrum's Codex plan gate. Use normal approvals only — do not
switch to Bypass Permissions or Full Access.
Steps:
1. Run `node --version`. If < 20, stop and tell me to install Node 20+
from https://nodejs.org first.
2. Run `codex --version`. If it is missing or older than 0.99.0, run
`npm install -g @openai/codex@latest` and verify again.
3. Run `claude plugin marketplace add yannmenec/inspectrum`, then
`claude plugin install inspectrum@inspectrum`.
4. Run `claude mcp add --transport stdio --scope user inspectrum -- npx -y inspectrum@latest`
(this powers the on-demand /inspectrum:review command).
5. Run `npx -y inspectrum@latest doctor` and show me the output,
including the resolved codex model/effort lines.
6. Run `codex login status`.
- If it prints "Logged in", tell me: "✅ Setup complete. Your next
plan-mode plan gets a Codex review automatically." Done.
- Otherwise (not logged in), pop open a Terminal window with codex
already running by executing:
`osascript -e 'tell application "Terminal" to do script "codex"'`
Then tell me: "A Terminal window opened with codex running.
Inside that window, click 'Sign in with ChatGPT', complete the
login in my browser, then close the Terminal window. Inspectrum
is then ready."
Do NOT use sudo, edit shell profiles, push git changes, read .env or
credentials, or publish packages. Report back: Node version, codex
install status, doctor verdict, and whether login was needed.
you ──▶ Claude Code ──▶ plan ready ──▶ ExitPlanMode
│
inspectrum plan-gate (hook)
│
Codex reviews the plan
(read-only sandbox, your ChatGPT sub)
│
┌─────────────────────┴──────────────────────┐
APPROVE ✅ REVISE / REJECT ❌
│ │
your approval dialog findings go back to Claude,
appears as usual it revises, gate runs again
(max 2 rounds)
地味で安全な設計です。
- フェイルオープンです。 Codex がインストールされていない、ログアウトしている、タイムアウトした、ネットワークが停止している場合でも、警告を表示してプランを続行します。運用上のエラーで作業が妨げられることはありません。ゲートは機能を縮退させますが、動作不能にはなりません。
- 自動承認はしません。 レビュー結果が良好でも、最終的にはあなたの承認ダイアログが表示されます。ゲートは(Claude が修正している間)承認を遅らせることはできますが、承認ボタンをクリックすることはありません。最終判断はあなたが行います。
- 無駄なレビューはありません。 セッション内では、変更のないプランはハッシュでキャッシュされ、再レビューされません。レビューを消費するのは、実際に修正された場合だけです。
- 読み取り専用のレビュアーです。 Codex は固定された読み取り専用サンドボックス(
codex exec -s read-only --ephemeral)で実行され、設定内のサンドボックスを弱めるフラグは除去されます。レビュアーは読み取るだけで、書き込みはしません。 - キルスイッチがあります。
~/.inspectrum/config.tomlの[plan_gate] enabled = falseを設定するか、プロジェクトごとにプラグインを無効にできます。
独立したレビュアーを使う理由
- プランは大きな効果をもたらします。 実行前に見つかった欠陥は、元に戻すのが難しい変更の後に同じ欠陥を見つけるより、修正コストを抑えられる場合があります。
- 分離によりチェック内容を検証できます。 作成者とレビュアーは独立して動作し、指摘の帰属先も明確に保たれます。
- プロバイダーをまたぐ価値は仮説の段階です。 Claude と GPT は異なる異議を提示できますが、誤検知、トリアージ、コスト、レイテンシを考慮した後に信頼性が全体として向上するかどうかは、Inspectrum ではまだ実証されていません。
- 既存のサブスクリプションを利用できます。 ChatGPT のサブスクリプションを使う場合、別途 API 料金はかかりません。レビューでは既存の Codex サブスクリプションの利用枠を消費します。API キーを使うバックエンドの料金は、それぞれのプロバイダーから請求されます。
内容
| 🚦 プランゲート | Claude Code のプランがあなたに届く前に、すべて Codex がレビューします — 自動、修正ラウンドは最大 2 回 |
| 🔍 オンデマンドレビュー | /inspectrum:review または任意の MCP ホストから「このプランを Inspectrum でレビューして」 |
| 🧑⚖️ 複数レビュアー+判定役 | codex + gemini + claude を並列で実行し、判定役が結果を 1 つの評価にまとめます |
| 📋 1 つの評価結果 | approve / revise / reject と、レビュアーの帰属情報付きの重要度別指摘 |
| 🗂️ セッションログ | すべてのレビュー(評価結果、指摘、修正後のプラン)を Markdown で記録 — ~/.inspectrum/sessions/ に保存(パーミッション 0700) |
🩺 inspectrum doctor | レビュアーのインストール状況、認証状況、適切なモデルが解決されているかを 1 つのコマンドで確認します — Codex がログアウトしている場合は明確なエラーを表示します |
対応環境
| 使用するエージェント | 使用するレビュアー | セットアップ |
|---|---|---|
| Claude Code | Codex (GPT) | プラグイン — 上記の 2 つのコマンド |
| Codex app / CLI | Claude | codex mcp add inspectrum -- npx -y inspectrum@latest + 下記の設定 |
| Claude Desktop (macOS) | Codex (GPT) | inspectrum-0.2.3.mcpb をダウンロードして開き、確認します。以前の v0.2.0 バンドルは不完全です。npm/stdio ではなく、v0.2.3 のアセットを使用してください。 |
| Cursor | Codex (GPT) | ![]() |
Codex app / CLI のセットアップ — Claude をレビュアーとして使用
以下を Codex app または CLI に貼り付けます。
Set up Inspectrum so I can review my plans with Claude. Use normal
approvals only.
Steps:
1. Run `node --version`. If < 20, stop and tell me to install Node 20+
from https://nodejs.org first.
2. Run `claude --version`. If "command not found", run
`npm install -g @anthropic-ai/claude-code` and verify again.
3. If `~/.inspectrum/config.toml` does not exist, create it with:
[defaults]
reviewers = ["claude"]
4. Run `codex mcp add inspectrum -- npx -y inspectrum@latest`
5. Run `npx -y inspectrum@latest doctor` and show me the output.
6. Pop open a Terminal window with claude already running so I can
confirm or complete login, by executing:
`osascript -e 'tell application "Terminal" to do script "claude"'`
Then tell me:
- "If claude shows its chat prompt, you're already logged in —
close the Terminal window. Inspectrum is ready."
- "If claude shows /login or opens a browser, complete the sign-in
with your Claude account, then close the Terminal window.
Inspectrum is then ready."
(The ⚠ claude line in the doctor stays even after login because
claude doesn't expose a status command we can detect — harmless.)
Do NOT use sudo, edit shell profiles, push git changes, read .env or
credentials, or publish packages. Report back: Node version, claude
install status, doctor verdict, and whether login was needed.
Claude Pro/Max サブスクリプションが必要です — API キーは不要です。
調整
どのモデルが、どの推論強度でレビューしますか? Codex 側の優先順位は次のとおりです。
| 設定 | 1 番目(優先) | 2 番目 | 3 番目 |
|---|---|---|---|
| model | ~/.inspectrum/config.toml の [reviewers.codex] model | ~/.codex/config.toml の model | codex 組み込みのデフォルト |
| reasoning effort | [reviewers.codex] effort | ~/.codex/config.toml の model_reasoning_effort | codex 組み込みのデフォルト |
inspectrum doctor で解決された値を確認できます。高い推論強度では最も詳細なレビューが行われますが、プランごとに数分かかる場合があります。ゲートが遅いと感じる場合は、[reviewers.codex] で effort = "medium" に下げてください。
完全な設定 — レビュアーの追加、判定、制限(~/.inspectrum/config.toml)
[defaults]
reviewers = ["codex", "gemini"] # called in parallel
judge = "codex" # consolidates when >= 2 reviewers
focus = "all" # correctness | completeness | risk | clarity | all
[plan_gate] # ExitPlanMode hook behavior
enabled = true
max_rounds = 2 # denials before the plan passes through
reason_max_chars = 3000 # budget for findings fed back to Claude
# reviewers = ["codex"] # gate-specific override of defaults.reviewers
[reviewers.codex]
effort = "high" # passed as -c model_reasoning_effort=high
timeout_seconds = 300 # per-reviewer override of limits.timeout_seconds
# model = "gpt-5.6-sol" # passed as -m; omit to inherit ~/.codex/config.toml
[reviewers.gemini]
type = "cli"
binary = "gemini"
model = "gemini-2.5-pro"
[reviewers.muse]
type = "cli"
binary = "muse" # muse exec, prompt passed via --prompt-file
# model = "..." # omit to inherit muse's own default
# effort = "high" # passed as --reasoning-effort
[reviewers.opencode]
type = "cli"
binary = "opencode" # opencode run, prompt on stdin
# model = "google/gemini-2.5-flash" # -m, provider/model form
# effort = "high" # passed as --variant
[reviewers.agy]
type = "cli"
binary = "agy" # schema-constrained structured output
# model = "..." # passed as --model
# effort = "high" # --effort; only some models accept it
[reviewers.grok]
type = "cli"
binary = "grok" # confined to a read-only tool allow-list
# model = "grok-4.6-build" # passed as -m
# effort = "high" # passed as --effort
[reviewers.local]
type = "http"
backend = "ollama"
endpoint = "http://localhost:11434"
model = "qwen2.5:0.5b"
[limits]
report_max_chars = 8000 # caps the stored report
timeout_seconds = 300 # default reviewer wallclock
設定ファイルがない場合は、reviewers = ["codex"] が使用されます。API キーを使わない構成では、codex CLI は ChatGPT ログインで動作し、agy バックエンドは Google の Antigravity CLI(curl -fsSL https://antigravity.google/cli/install.sh | bash)です。個人の Google アカウントでサインインするため、提供を終了した gemini CLI の後継となる無料枠の選択肢です。実験的なバックエンドは、kimi、qwen、openrouter、ollama(ローカル、外部への通信なし)です。muse バックエンドは muse exec を --disable-shell --disable-write で制限して実行します(レビュー中のプランは信頼できない入力です)。--yolo、--disable-sandbox、--enable-shell-tool は args から指定できません。opencode バックエンドは、ツールの使用を拒否する権限セットである opencode run --agent summary を実行します(デフォルトの build エージェントは、プランのテキストからシェルコマンドを問題なく実行します)。--agent、--auto、--format は args から指定できません。agy バックエンド(Antigravity CLI)は、--json-schema で出力を制約するため、レビューは出力元でスキーマ検証されます。--effort は設定した場合にのみ送信されます(これを拒否するモデルもあります)。agy は inspectrum で制限できない唯一のバックエンドです。--sandbox と --mode plan のどちらも書き込みを防止できないことが確認されています(agy 1.1.27)。そのため、agy は信頼できるプランにのみ使用してください。制限付きの選択肢は muse、opencode、grok です。agy が設定されている場合、inspectrum doctor が警告します。grok バックエンドは、--tools の許可リスト(read_file,grep,list_dir)で制限されます。--sandbox プロファイルと --disallowed-tools は、どちらもシェルへの書き込みを防止できないことが確認されていますが、許可リストでは防止できます。--tools、--always-approve、--permission-mode は args から指定できません。gemini バックエンドは非推奨で、削除予定です。agy に移行してください。
対話型ログインを実行できないヘッドレス環境や CI ホストでは、代わりに MCP ホストの env ブロックを通じて、利用するプロバイダーの API キーを渡してください。OPENAI_API_KEY(codex)、ANTHROPIC_API_KEY(claude)、GEMINI_API_KEY(gemini)を指定します。手動設定用の JSON/TOML の例は examples/ にあります。
# Register the MCP server without the plugin:
claude mcp add --transport stdio --scope user inspectrum -- npx -y inspectrum@latest # Claude Code
codex mcp add inspectrum -- npx -y inspectrum@latest # Codex
# The automatic plan gate must use the plugin's pinned fail-open shim; do not
# register plan-gate through a mutable npm tag.
# Verify everything:
npx -y inspectrum@latest doctor
プライバシー — マシンから送信される情報と、マシン内に保存される情報
- セッションログは
~/.inspectrum/sessions/<timestamp>__<id>/に保存されます。ログにはプラン全文と、各レビュアーの判定および検出事項を記録した Markdown が含まれます。ディレクトリのパーミッションは POSIX では 0700 です。0.1.0 より前のバージョンで書き込まれたログは、元のパーミッションが維持されます。chmod -R 700 ~/.inspectrum/sessions/でパーミッションを変更してください。 - プランやコンテキストにシークレットを絶対に貼り付けないでください。 プランはローカルのセッションログに書き込まれ、プランとコンテキストはどちらも、アクティブなすべてのレビュアーに送信されます。
- クラウド経由の通信先:claude → Anthropic(OAuth キーチェーンまたは
ANTHROPIC_API_KEY);codex → OpenAI(ChatGPT ログインまたはOPENAI_API_KEY);gemini → Google(個人アカウントでの CLI ログインまたはGEMINI_API_KEY);openrouter → openrouter.ai;kimi → Moonshot AI(デバイスコードログイン:環境変数ではなくkimi login);qwen → Alibaba Cloud;muse → CLI に保存された認証情報(muse login);opencode → 設定したプロバイダー(opencode providers login);agy → Google Antigravity(初回実行時のブラウザーサインイン、または~/.gemini/antigravity-cli/settings.jsonにmodelProvider: "gemini"を設定したうえでのGEMINI_API_KEY);grok → xAI(Grok Build の残高);ollama → ローカルホストのみ。endpointを変更しない限り、外部への通信はありません。 - Codex は、一時ディレクトリ内で
codex exec --ephemeral --skip-git-repo-check -s read-only …として呼び出されます。サンドボックスは読み取り専用に固定され、サンドボックスの制限を弱める引数と作業ディレクトリを上書きする引数は設定から取り除かれます。また、codex はセッションファイルを保存しません。
処理が遅くなりますか? 必要な場合に限られます。承認判定ではレビューが1回追加されます(所要時間は数秒から数分で、作業量によって異なります)。差し戻されたプランは、そもそも差し戻してほしいプランです。セッション中、変更のないプランはキャッシュされ、再レビューされません。
Codex がダウンしている/ログアウトしている/インストールされていない場合はどうなりますか? ゲートは警告を表示して処理を続行し、プランには手を加えません。運用上のエラーによって作業がブロックされることはありません。これはベストエフォートではなく、アーキテクチャ上の不変条件です。
知らないうちにプランが承認されることはありますか? いいえ。ゲートにできるのは承認ダイアログを遅らせること(Claude が修正している間)だけで、承認をクリックすることはできません。実行されるすべてのプランを確認し、承認できます。
API キーは必要ですか? サブスクリプションに紐づいた Codex または Claude CLI のログインを利用する場合は不要です。レビューでは既存のサブスクリプションの利用枠を消費します。API キーはヘッドレス環境や CI 環境で利用でき、料金はプロバイダーから請求されます。
プロンプト/プランが機密情報を含む場合、どこに送られますか?
設定したレビュアーと、~/.inspectrum/sessions/ にあるローカルのセッションログ(0700)に送られます。それ以外には送られません。完全にローカルで、外部へのデータ送信がないレビュアーを使うには ollama を利用してください。
トラブルシューティング
sh: inspectrum: command not found/claude mcp list に ✗ Failed to connect と表示される — ただし、カレントディレクトリが Inspectrum リポジトリ自体の場合のみ。 npx inspectrum@<version> は、カレントディレクトリが inspectrum という名前でバージョンが一致するパッケージ内にある場合、指定されたバージョンではなく ローカル パッケージを参照します。また、パッケージ自身の bin は、そのパッケージの node_modules/.bin に自身へのリンクを作成しません。公開済みパッケージに問題はありません。対処方法:別のディレクトリから実行するか、本物のバイナリを一度インストールして、代わりにそれを登録します。
npm install -g inspectrum
claude mcp add --transport stdio --scope user inspectrum -- inspectrum
ゲートが遅く感じられますか? [reviewers.codex] で effort = "medium" に設定してください(「調整」を参照)。ほかに問題がありますか? npx -y inspectrum@latest doctor を実行すると、インストール、ログイン、モデル解決を一度に診断できます。出力を添えて問題を報告してください。
Inspectrum が問題のあるプランを見つけたら、リポジトリにスター ⭐ を付けてください — ほかのエージェント運用者がこのツールを見つけるきっかけになります。
MIT — Yann Menec。コントリビューションを歓迎します:CONTRIBUTING.md。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
