mcpField
A
Ansible MCP Server

Ansible MCP Server

ローカル
github.com/washyuクラウド・インフラ59 週間前に更新

Ansible MCP Server について

Ansible MCP Serverは、READMEではHomelab MCP Serverと呼ばれる、ホームラボのインフラ管理向けPython製MCPサーバーです。AIアシスタント経由でシステムを管理するユーザーを対象に、SSHによる探索、サービス導入、VM・コンテナ操作、ネットワークマッピング、AnsibleとTerraformのワークフローを扱います。

主な機能

  1. 01SSH経由でホストのハードウェアとソフトウェアを調査
  2. 02テンプレートから一般的なサービスを導入
  3. 03Proxmox、VM、コンテナを管理
  4. 04デバイスを検出してネットワークトポロジーを図示
  5. 05AnsibleとTerraformによるデプロイ
  6. 06SSHとProxmoxの認証情報を保存・再利用

活用シーン

  1. 01ホストのハードウェアと導入済みソフトウェアを把握
  2. 02JellyfinやHome Assistantを導入
  3. 03ProxmoxのVMとコンテナのライフサイクルを管理
  4. 04ネットワークデバイスを検出しトポロジーの変化を追跡

MCP 対応

stdio経由で互換クライアントにインフラ管理ツールを提供します。ホスト探索、サービス導入、VM・コンテナ操作、ネットワークマッピング、認証情報管理を扱います。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Homelab MCP Server

CI Python 3.12+ License: MIT

Model Context Protocol による AI を活用したホームラボインフラストラクチャ管理

AI アシスタントがホームラボインフラストラクチャを管理、デプロイ、監視できる Python MCP サーバーです。SSH による検出、VM 管理、サービスのインストール、ネットワークトポロジーのマッピング、Proxmox の操作、認証情報の管理など、幅広いツールを提供します。

主な機能

  • SSH による検出 -- 任意のシステムからハードウェアとソフトウェアの包括的な情報を収集します
  • サービスのインストール -- テンプレートを使用して Jellyfin、Pi-hole、Ollama、Home Assistant などをデプロイします
  • Proxmox 連携 -- コミュニティスクリプトの検出に加え、API にフルアクセスできます
  • VM/コンテナーのライフサイクル管理 -- Docker および LXD のワークロードをデプロイ、制御、削除します
  • ネットワークマッピング -- デバイスを検出し、トポロジーを分析して、変更を追跡します
  • Terraform と Ansible -- ドリフト検出とプレイブックに対応した、状態管理型のデプロイを実現します
  • 認証情報の管理 -- サーバーを一度登録すれば、認証情報を再入力せずに接続できます

クイックスタート

# Install from PyPI (recommended — no clone needed)
uvx homelab-mcp

# Or clone and run from source
git clone https://github.com/washyu/homelab_mcp.git
cd homelab_mcp
uv sync && uv run python run_server.py

環境変数、MCP クライアントの設定、最初のツール呼び出しを含む詳しい手順については、セットアップガイドを参照してください。

ドキュメント

ガイド説明
セットアップガイド初期状態から最初のツール呼び出しまで
ツールリファレンス引数と使用例を含むすべてのツール
設定環境変数と CLI オプション
Claude Desktop のセットアップClaude Desktop 連携ガイド
HTTP サービスREST/OpenAPI モード、エンドポイント、エラー仕様

仕組み

  1. セットアップ -- 初回起動時にサーバーが SSH 鍵ペアを生成します(~/.ssh/mcp_admin_rsa)
  2. ホストの登録 -- setup_mcp_admin を使用して、対象システムに管理ユーザーを作成します
  3. 確認 -- verify_mcp_admin を使用して、パスワードなしの SSH アクセスを確認します
  4. 管理 -- ハードウェアの検出、サービスのインストール、VM の制御、ネットワークのマッピングを行います

サーバーは MCP プロトコルを使用して stdio 経由で通信します。MCP 対応のクライアント(Claude Desktop など)に接続すれば、自然言語で操作できます。

認証情報の管理

SSH と Proxmox の認証情報を一度保存すれば、サーバーが接続のたびに自動で注入します。

# Store an SSH credential
homelab-mcp credentials add 192.168.1.10 admin

# Store an SSH key-based credential (stores the key file path in the keyring, not the key)
homelab-mcp credentials add 192.168.1.10 admin --key-path ~/.ssh/id_ed25519

# Store a Proxmox API credential
homelab-mcp credentials add 192.168.1.200 root@pam --type proxmox

# Update an existing credential — `add` is upsert; re-running replaces the stored entry
homelab-mcp credentials add 192.168.1.10 admin

# List stored credentials
homelab-mcp credentials list
homelab-mcp credentials list --type proxmox

# Remove a credential
homelab-mcp credentials remove 192.168.1.10

CLI では認証情報に対する CRUD 操作をすべて実行できます。add(作成/更新 — アップサート)、list(読み取り)、remove(削除)を使用します。個別の update サブコマンドはありません。add を再実行すると、キーリングのシークレットとレジストリエントリーの認証タイプが両方置き換わります。

認証情報は OS のキーリングに保存されます(Linux では libsecret、macOS では Keychain)。OS のキーリングを利用できない場合(ヘッドレスサーバーなど)は、認証情報は環境変数にフォールバックします。

詳しくは認証情報 CLI リファレンスを参照してください。

MCP クライアントの設定

PyPI から(uvx)— 推奨:

{
  "mcpServers": {
    "homelab": {
      "command": "uvx",
      "args": ["homelab-mcp"]
    }
  }
}

ソースをクローンして使用:

{
  "mcpServers": {
    "homelab": {
      "command": "uv",
      "args": ["run", "python", "run_server.py"],
      "cwd": "/path/to/homelab_mcp"
    }
  }
}

開発

# Install with dev dependencies
uv sync --group dev

# Run tests (unit only, no Docker required)
uv run pytest tests/ -m "not integration"

# Code quality
uv run ruff check src/ tests/
uv run mypy src/

本番環境へのデプロイの詳細については、DEPLOYMENT.mdを参照してください。

プロジェクト構成

src/homelab_mcp/
  server.py              # MCP server with JSON-RPC protocol
  tool_schemas/          # Tool definitions (8 schema files)
  tool_annotations.py    # MCP annotation hints per tool
  ssh_tools.py           # SSH discovery and hardware detection
  service_installer.py   # Service installation framework
  infrastructure_crud.py # Infrastructure lifecycle management
  vm_operations.py       # VM/container operations
  sitemap.py             # Network topology mapping
  database.py            # SQLite device tracking
  error_handling.py      # Centralized error handling
  credential_store.py    # OS keyring credential storage
  log_filter.py          # Credential redaction for log output
  prompt_registry.py     # MCP prompts registry
  resource_readers.py    # MCP resource read handlers
  service_templates/     # YAML service definitions
tests/                   # Unit and integration tests
docs/                    # Full documentation

謝辞

Proxmox コミュニティスクリプトとの連携には、community-scripts/ProxmoxVE(MIT License)を使用しています。

貢献

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 新しい機能のテストを作成します
  4. すべてのテストが通ることを確認します
  5. プルリクエストを送信します

ライセンス

MIT License — 詳細については LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

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

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