mcpField
I
infrahub-analyzing-data

infrahub-analyzing-data

github.com/opsmillデータ・データベース27145 回インストール1 日前に更新
リポジトリ

infrahub-analyzing-data について

infrahub-analyzing-dataは、Infrahubの稼働中のインフラデータを対話的に調査するスキルです。複数のノード種別を検索・関連付けて運用上の問いに答え、データの不足を見つけて結果を報告します。

主な機能

  1. 01MCP経由でInfrahubの最新データを検索
  2. 02複数のノード種別と関係を相関
  3. 03インベントリの品質と異常を調査
  4. 04サービスや変更の影響を評価
  5. 05背景と対処案を添えて結果を報告

活用シーン

  1. 01プラットフォームやOS情報がないデバイスを特定
  2. 02デバイスのメンテナンス期間に影響されるサービスを確認
  3. 03実現済みデバイスとトポロジー設計を比較
  4. 04変更前にプレフィックスへの依存関係を追跡

MCP 対応

このスキルはInfrahub MCPサーバーを使ってInfrahubのデータを検索します。データの読み取り・探索ツールに加え、ブランチ内で分離された書き込みツールや人による確認用の変更提案も説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/opsmill/infrahub-skills --skill infrahub-analyzing-data

インストール後、Claude Code で/infrahub-analyzing-dataを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

examples.md
rules/
_sections.md
_template.md
approach-selection.md
correlation-patterns.md
mcp-tools.md
query-patterns.md
reporting-output.md

詳細

概要

稼働中の Infrahub インスタンスに対する対話型データ分析のための 専門的なガイダンスです。このスキルは Infrahub MCP サーバーを使用して、オンデマンドでインフラストラクチャデータを クエリ、相関付け、推論します — 複数のノードタイプとリレーションシップにまたがる運用上の質問に答えます。

次の形式のあらゆる質問にこのスキルを使用してください 「Infrahub は現在 X について何を知っており、 それが Y とどのように関係しているか?」

典型的な質問パターン:

  • コンプライアンス — 「すべてのデバイスは 命名規則に従っていますか?」
  • サービス影響 — 「このラック内のデバイスで ホストされているサービスはどれですか?」
  • メンテナンスウィンドウ — 「現在メンテナンスウィンドウ内にある デバイスはどれで、それらに依存しているものは何ですか?」
  • ドリフト検出 — 「トポロジ設計と異なる 実現済みデバイスはどれですか?」
  • キャパシティ — 「80% を超えて満杯の ラックはどれですか?」
  • 変更影響 — 「このプレフィックスに依存している BGP セッション、 サービス、IP はどれですか?」
  • インベントリのギャップ — 「プラットフォームまたは OS バージョンが 記録されていないデバイスはどれですか?」

提案された変更をブロックする自動化された、パイプラインで強制されるチェックについては、 ../infrahub-managing-checks/SKILL.md を参照してください。 成果物としてエクスポートされる反復可能なスケジュールされたレポートについては、 ../infrahub-managing-transforms/SKILL.md を参照してください。

プロジェクトコンテキスト

このスキルはフォークされたサブエージェントコンテキストで実行され、 親の会話を参照できません。ユーザーの質問は必ず引数を介して渡す必要があります。

  • 引数を付けて呼び出された場合 (例: /infrahub:analyzing-data Which devices have no platform assigned?)、 その引数を回答すべき質問として扱います。

  • 引数なしで呼び出された場合は、推測しないでください、このファイルのいかなる例の 質問も使用しないでください、そして続行しないでください。直ちに次のように返します:

    エラー: infrahub-analyzing-data に質問が渡されませんでした。このスキルは フォークされたコンテキストで実行され、ユーザーの質問を引数として必要とします。 質問を付けて再呼び出ししてください。例: Skill(skill="infrahub-analyzing-data", args="<the user's question>")。

使用する場合

  • 自然言語を介して運用上の質問に 対話的に答える
  • 2 つ以上のノードタイプを相互参照して リレーションシップやギャップを見つける
  • 変更を実行する前にその影響範囲を 調査する
  • インベントリ全体にわたってデータ品質を 監査する
  • ステークホルダー向けに一度限りまたはオンデマンドの レポートを作成する
  • ジェネレーターやチェックを書く前にスキーマ構造と データを探索する

仕組み

Infrahub MCP サーバーは、Claude が Infrahub データを 直接クエリできるようにするツールを公開します。 典型的なワークフロー:

  1. クエリ — MCP ツールを使用して Infrahub から 現在の状態を取得します
  2. 相関付け — ポリシーまたは 2 番目のデータセットに対して データを結合、差分、フィルタリングします
  3. 推論 — ギャップ、異常、または リレーションシップを特定します
  4. レポート — コンテキストと 修復のヒントとともに調査結果を提示します

ルールカテゴリ

優先度カテゴリプレフィックス説明
CRITICALMCP ツールmcp-利用可能な Infrahub MCP ツール、呼び出しパターン、レスポンス構造
CRITICALクエリパターンquery-リレーションシップを取得、フィルタリング、走査するための GraphQL 構造
HIGH相関付けcorrelation-複数のクエリからのデータの結合、差分、および推論
HIGHレポート出力reporting-調査結果の提示: サマリー、テーブル、オブジェクトごとの詳細、修復のヒント
MEDIUMアプローチの選択approach-MCP 分析、InfrahubCheck、Transform をいつ使用するか

MCP サーバーの基本

Infrahub MCP サーバー(v1.1.7)が接続されている場合、 Claude はこれらのツールを呼び出せます。

読み取り:

  • mcp__infrahub__get_nodes — フィルタリング/ページネーションを使用して ある種別のノードを一覧表示します(推奨される型付き 読み取り)
  • mcp__infrahub__search_nodes — 部分文字列により ある種別のノードを検索します
  • mcp__infrahub__get_schema — スキーマの 種別とそのフィルターを検出します
  • mcp__infrahub__query_graphql — 読み取り専用の GraphQL クエリを実行します
  • mcp__infrahub__get_session_info — アクティブな セッションブランチとインスタンスアドレスを報告します

書き込み(ブランチ分離 — 自動的に作成される mcp/session-* ブランチに反映され、デフォルトブランチには 決して反映されません):

  • mcp__infrahub__node_upsert — オブジェクトを 作成または更新します
  • mcp__infrahub__node_delete — オブジェクトを削除します
  • mcp__infrahub__mutate_graphql — 複雑な書き込みのために GraphQL ミューテーションを実行します
  • mcp__infrahub__propose_changes — 人によるレビューのために Proposed Change を開きます
  • mcp__infrahub__reset_session_branch — アクティブな セッションブランチをリセットまたは切り替えます

ツールごとの完全なシグネチャ(パラメーター、例、 レスポンスの形式)とブランチモデルは rules/mcp-tools.md にあります — これらを 呼び出す前にそちらをお読みください。

# Example: find all devices in an active
# maintenance window
query MaintenanceDevices {
  MaintenanceWindow(status__value: "active") {
    edges {
      node {
        name { value }
        start_time { value }
        end_time { value }
        devices {
          edges {
            node {
              name { value }
              role { value }
              site {
                node { name { value } }
              }
            }
          }
        }
      }
    }
  }
}

典型的な分析ワークフロー

1. Understand the question
   → "Which services depend on devices currently
      in a maintenance window?"

2. Identify the node types involved
   → MaintenanceWindow, DcimDevice, Service
     (or equivalent in your schema)

3. Query current state
   → mcp__infrahub__get_nodes per kind (typed), or
     mcp__infrahub__query_graphql — one query
     per node type, or combined

4. Correlate the data
   → Join across node types, filter, count, diff

5. Report findings
   → Summarize with counts, list affected objects,
     suggest next steps

参考資料

コメント