mcpField
O
omni-scanner

omni-scanner

ローカル
github.com/Pantheon-LadderWorks開発ツール036 週間前に更新

omni-scanner について

omni-scannerは、開発者向けのPython製コードベース観測・スキャンツールです。構造、依存関係、ドキュメント、Gitの状態、コンプライアンスを調べ、読み取り専用で単独またはFederationと連携して動作します。

主な機能

  1. 01複数カテゴリのスキャナー
  2. 02構造・依存関係・文書の分析
  3. 03Gitの状態と履歴の確認
  4. 04プロジェクトと依存関係のマッピング
  5. 05コンプライアンス検査とレポート
  6. 06コマンドラインとMCPサーバー

活用シーン

  1. 01コードベースの構造と要素の把握
  2. 02アーキテクチャのドリフトとガバナンスの確認
  3. 03リポジトリの状態と履歴の集約

MCP 対応

内蔵のMCPサーバーは、AIクライアントから呼び出せるツールとしてスキャナーを公開します。クライアントはコードベースのスキャンをプログラムから実行できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"pantheon-ladderworks-omni-scanner": {
"command": "uvx",
"args": [
"omni-governance"
]
}
}
}
起動コマンドuvx omni-governance

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiomni-governance0.7.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

🔱 Omni — 全てを見通す目

Omni ヘッダー

連邦ガバナンスのトライコーダー — 銀河規模でコードベースをスキャンし、マッピングして保護する、モジュール式で拡張可能な観測エンジンです。

「ドキュメントを信じてはいけません。現実を信じましょう。」 — ACE

Omni は、Python を基盤とする受動的な観測プラットフォームで、コードに関する真実を明らかにします。ファイルを変更したり、ビルドを壊したりすることはありません。観察し、マッピングして、レポートを生成します。コードベース向けのトライコーダーと考えてください。任意のディレクトリを指定すると、その構造、依存関係、健全性、乖離、コンプライアンスを数秒で明らかにします。


✨ 概要

項目内容
🔍 スキャナーカテゴリー12(静的解析から Git の考古学的調査まで)
📦 スキャナー総数全カテゴリーにわたる55種類の計測器
⚡ CLI コマンドあらゆる観測ニーズに対応する14種類の動詞
🧠 MCP サーバーすべてのスキャナーを AI から呼び出し可能なツールとして公開
🏛️ 柱4つのオーケストレーションサブシステム(Cartography、Intel、Gatekeeper、Registry)
🔌 連邦モードガバナンスバックエンドとの任意の高度な統合
🦴 スタンドアロンモードどこでも動作し、バックエンドは不要

🚀 クイックスタート

初めての方へ:ステップごとのセットアップチュートリアルは、**初心者向けガイド:ゼロから一人前まで**をご覧ください。

インストール
# Recommended: Install from PyPI
pip install omni-governance

# Or install from source:
# pip install -e .
最初のスキャン
# Scan the current directory with all static scanners
omni scan .

# Run a specific scanner
omni scan . --scanner surfaces

# See what Omni knows about itself
omni introspect
エコシステムを探索する
# Map your entire project constellation
omni map

# Check governance compliance
omni gate .

# Generate a full report
omni report . --format markdown

🏗️ アーキテクチャ — 三位一体

Omni は三位一体アーキテクチャに従っており、関心事を厳密に分離した3つのレイヤーで構成されます。

                    ┌──────────────────────────┐
                    │        CLI (cli.py)       │  ← User interface
                    │     14 verbs, 1 brain     │
                    └────────────┬─────────────┘
                                 │
              ┌──────────────────┼──────────────────┐
              │                  │                  │
    ┌─────────▼──────┐  ┌───────▼────────┐  ┌──────▼───────┐
    │  🧠 CORE       │  │  🏛️ PILLARS    │  │  📚 LIB      │
    │  Identity      │  │  Cartography   │  │  I/O, Render │
    │  Registry      │  │  Intel         │  │  Reporting   │
    │  Gate          │  │  Gatekeeper    │  │  Tree, TAP   │
    │  Paths         │  │  Registry      │  │  Requirements│
    └─────────┬──────┘  └───────┬────────┘  └──────────────┘
              │                 │
    ┌─────────▼─────────────────▼──────────────────────────┐
    │              🔍 SCANNERS (55 Instruments)            │
    │   12 categories • Dynamic plugin loading             │
    │   Each scanner: scan(target: Path) → dict            │
    └──────────────────────────────────────────────────────┘
              │
    ┌─────────▼──────┐
    │  🔧 BUILDERS   │  ← The only layer that writes
    │  Registry Gen  │
    │  Report Gen    │
    └────────────────┘

読み取り専用の保証:スキャナーがソースファイルを変更することはありません。書き込みを行うのは Builder のみで、書き込み先も指定された成果物ディレクトリに限られます。

アーキテクチャの詳細については、**ARCHITECTURE.md**をご覧ください。


🔍 スキャナーカテゴリー

Omni の55種類のスキャナーは、12のカテゴリーに分類されています。各スキャナーは共通の scan(target: Path) → dict コントラクトを実装し、SCANNER_MANIFEST.yaml ファイルを通じて自動検出されます。

オープンソーススキャナー(ビルドに含まれます)
カテゴリスキャナー目的
📁 static9ファイルシステム分析 — コントラクト、依存関係、ドキュメント、イベント、フック、インポート、サーフェス、ツール、UUID
🏗️ architecture4構造の適用 — インポート境界、結合の検出、ドリフト分析、コンプライアンス
🔎 discovery8コンポーネントのカタログ化 — プロジェクト、CLI コマンド、コア、MCP サーバー、アーカイブ、全数調査
🌐 polyglot4言語エコシステム — Python パッケージ、Node.js、Rust クレート、汎用(Go/Java/.NET/Docker)
📚 library6ドキュメントインテリジェンス — 凝集性分析、コンテンツの深度、ナレッジグラフ、儀式
🔀 git5リポジトリインテリジェンス — ステータス、活発度、コミット履歴、PR テレメトリ、ユーティリティ
🔍 search3パターンマッチング — ファイル検索、テキスト検索、コンテキスト付き正規表現パターン検索
🗄️ db1汎用の設定駆動型データベーススキャン
Federation 専用スキャナー(オープンソースビルドには含まれません)

これらのスキャナーには Federation Heart バックエンドが必要で、独自のガバナンス層の一部です。Heart が利用可能な場合は omni introspect に表示されますが、オープンソース版には含まれません。

カテゴリスキャナー目的
🛡️ health6ランタイムの健全性 — Federation、CMP、ピラー、ステーション、トンネル、システムのステータス
🗃️ database5CMP エンティティのスキャン — エージェント、アーティファクト、会話、エンティティ、プロジェクト
⚓ fleet1フリートレジストリの生成と検証
🔥 phoenix3Git 履歴の復元 — アーカイブスキャン、孤立データの検出、時間的なギャップ分析

各カテゴリには、スキャナーの詳細なドキュメントを記載した README があります。すべての情報については、スキャナーアーキテクチャガイドをご覧ください。


🏛️ 4 つのピラー

ピラーは、複数のスキャナーを連携させ、より高度なインテリジェンスを生成するオーケストレーションサブシステムです。

ピラー役割主な機能
🗺️ Cartographyエコシステムマッパープロジェクトの連なりと依存関係の網をマッピングします
🕵️ Intelインテリジェンス収集者複数のスキャナーのデータを、実行可能なインサイトに集約します
⚖️ Gatekeeperポリシー適用者コンプライアンスを検証し、ドリフトを検出して、違反を警告します
📋 Registryレジストリ運用者PROJECT_REGISTRY_V1.yaml を解析、検証、管理します

詳しくは、ピラーアーキテクチャをご覧ください。


⚡ CLI コマンドリファレンス

コマンド目的
omni scan対象ディレクトリに対してスキャナーを実行します
omni inspect単一プロジェクトを詳細に検査します
omni gateポリシーの適用とコンプライアンスチェックを行います
omni mapエコシステムの地図作成と依存関係のマッピングを行います
omni treeディレクトリツリーを可視化します
omni audit出所、依存関係、ロックの監査を行います
omni registryレジストリ操作とイベントスキャンを行います
omni libraryGrand Librarian のドキュメントインテリジェンスを提供します
omni canonCanon の検証と検出を行います
omni report構造化レポートを生成します
omni initFederation 準拠の新しいプロジェクトのひな形を作成します
omni introspect自己検査 — すべてのスキャナー、ドリフト、機能を表示します
omni interpretスキャン結果を解釈し、説明します
omni inspect-treeツリー表示と検査をまとめて実行します

🔌 Federation モードとスタンドアロンモード

Omni は透過的に 2 つのモードで動作します。

スタンドアロンモード(デフォルト)

外部依存関係はありません。設定は omni.yml と環境変数から読み込まれます。すべてのオープンソーススキャナーが問題なく動作します。個人開発者やオープンソースプロジェクトに最適です。

Federation モード(オプション)

federation_heart がインストールされている場合、Omni では次の機能が利用できます。

  • CartographyPillar — Federation 全体での正規パス解決
  • Constitution — 中央機関によるガバナンスルールの適用
  • CMP Integration — Canonical Master Project データベースとの照合によるプロジェクト ID の解決
  • Runtime Health — Federation のサービス、ステーション、トンネルのライブステータス

統合は単一のシム(omni/config/settings.py)によって処理されます。Heart が利用可能な場合は接続し、利用できない場合は適切にフォールバックします。


🧠 MCP サーバー

Omni には、55 個すべてのスキャナーを AI から呼び出し可能なツールとして公開する Model Context Protocol(MCP)サーバーが含まれています。MCP 対応の AI アシスタントであれば、Omni のスキャナーをプログラムから呼び出せます。

クイックスタート(npx)

MCP サーバーを利用する最も手軽な方法は、npx を使用することです(Node.js が必要です)。

npx -y @modelcontextprotocol/inspector mcp-server-omni-governance
ソースから実行
# The MCP server auto-discovers all registered scanners
python -m mcp_server.omni_mcp_server

セットアップと設定については、MCP サーバーのドキュメントを参照してください。


📁 プロジェクト構成

omni/
├── README.md              ← You are here
├── ARCHITECTURE.md        ← Full architectural deep-dive
├── CONTRIBUTING.md        ← How to add scanners and contribute
├── CHANGELOG.md           ← Version history
├── ROADMAP.md             ← Future plans
├── pyproject.toml         ← Package definition
├── omni/
│   ├── cli.py             ← CLI entry point (14 commands)
│   ├── core/              ← Brain — identity, registry, gate, paths
│   ├── config/            ← Configuration & Federation Heart bridge
│   ├── scanners/          ← 55 scanners across 12 categories
│   ├── pillars/           ← 4 orchestration subsystems
│   ├── lib/               ← Shared utilities (I/O, rendering, reporting)
│   ├── builders/          ← Registry and report generators
│   ├── scaffold/          ← Project templates
│   └── templates/         ← Jinja2 report templates
├── mcp_server/            ← MCP server exposing scanners as AI tools
├── scripts/               ← Operational scripts
├── tests/                 ← Test suite (pytest)
├── docs/                  ← Historical docs and plans
└── contracts/             ← Crown Contracts (C-TOOLS-OMNI-*)

🔧 設定

Omni では厳格な設定の優先順位が適用されます(優先度の高い順)。

  1. CLI フラグ(例:--scanner surfaces)
  2. 環境変数(例:OMNI_ROOT)
  3. omni.yml(プロジェクトレベルの設定)
  4. 組み込みのデフォルト値(適切なフォールバック)

主な環境変数:

変数目的
OMNI_ROOTスキャン対象のルートパスを上書きします
OMNI_REPO_INVENTORYリポジトリインベントリ JSON のパス
OMNI_WORKSPACESワークスペースのルートパス
OMNI_DB_CONFIG_PATHデータベース設定ディレクトリ

詳細については、設定ガイドを参照してください。


🧪 テスト

# Run all tests
pytest tests/ -v

# With coverage
pytest tests/ --cov=omni --cov-report=html

フィクスチャ、標準、CI のセットアップについては、テストスイートのドキュメントを参照してください。


🤝 コントリビューション

新しいスキャナー、ピラー、改善を歓迎します。スキャナープラグインシステムにより、新しい観測機能を簡単に追加できます。

  1. scan(target: Path) → dict 関数を含むスキャナーファイルを作成します
  2. カテゴリの SCANNER_MANIFEST.yaml に登録します
  3. テストとドキュメントを追加します

詳しい手順については、CONTRIBUTING.md を参照してください。


📜 要件

  • Python:3.8+
  • 依存関係:pyyaml、pydantic(コア);federation_heart(任意、Federation モード用)
  • OS:Windows、macOS、Linux

📋 ライセンス

オープンソースです。詳細は LICENSE をご覧ください。


全てを見通す目が見守る。コードがコードを書く。
Omni v0.7.0 — Pantheon LadderWorks

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。