Skip to main content
Glama
IPA MCP Server
by vhspace

IPA MCPサーバー

CI Release Python 3.12+ License: Apache 2.0

FreeIPA用のMCPサーバーおよびCLIです。FreeIPA JSON-RPC APIを介して、ユーザーグループ、ホストグループ、HBACルール、sudoルールを管理します。Together AI SREスタックにおけるフォージクラスターの立ち上げとアクセス制御の自動化のために設計されています。

クイックスタート

Cursor IDE

.cursor/mcp.json に追加します:

{
  "mcpServers": {
    "ipa-mcp": {
      "command": "uvx",
      "args": ["--from", "ipa-mcp", "ipa-mcp"],
      "env": {
        "IPA_HOST": "ipa.example.com",
        "IPA_USERNAME": "admin",
        "IPA_PASSWORD": "your-password"
      }
    }
  }
}

ソースから

cd ipa-mcp
uv sync --all-groups
uv run ipa-mcp

ツール

読み取りツール (6)

ツール

説明

ipa_list_groups

ユーザーグループを一覧表示

ipa_list_hostgroups

ホストグループを一覧表示

ipa_list_hbac_rules

HBACルールを一覧表示

ipa_list_sudo_rules

sudoルールを一覧表示

ipa_list_users

ユーザーを一覧表示

ipa_list_hosts

ホストを一覧表示

書き込みツール (10)

ツール

説明

ipa_create_group

ユーザーグループを作成

ipa_add_group_members

ユーザーをグループに追加

ipa_create_hostgroup

ホストグループを作成

ipa_add_hostgroup_members

ホストをホストグループに追加

ipa_create_hbac_rule

HBACルールを作成

ipa_add_hbac_rule_members

HBACルールにメンバーを追加

ipa_create_sudo_rule

sudoルールを作成

ipa_add_sudo_rule_members

sudoルールにメンバーを追加

ipa_add_sudo_option

sudoオプションを追加

ipa_setup_forge

ワンショットのフォージクラスターセットアップ (グループ + HBAC + sudo)

CLI

付属の ipa-cli は、シェルコマンドを介して同じ機能を提供します。トークン予算が重要な場合や、シェルアクセスが可能な場合に使用してください。

タスク

コマンド

ユーザーグループを一覧表示

ipa-cli groups

ホストグループを一覧表示

ipa-cli hostgroups

HBACルールを一覧表示

ipa-cli hbac-rules

sudoルールを一覧表示

ipa-cli sudo-rules

ユーザーを一覧表示

ipa-cli users

ホストを一覧表示

ipa-cli hosts

ユーザーグループを作成

ipa-cli create-group <name> --desc "description"

ホストグループを作成

ipa-cli create-hostgroup <name>

完全なフォージセットアップ

ipa-cli setup-forge <cluster> --hosts "host1,host2" --users "alice,bob"

CLIのインストール: uvx --from ipa-mcp ipa-cli またはリポジトリから uv run ipa-cli を実行します。

クロスMCP統合

このサーバーは、SREスタック内の他のMCPサーバーと連携して動作します:

  • NetBox MCP — IPAホストグループに追加する前にホストのFQDNを検索します。NetBoxはデバイスインベントリの信頼できる唯一の情報源です。

  • AWX MCP — フォージセットアップ後に、IPA登録やホストプロビジョニングのためのAnsible Playbookをトリガーします。

  • MAAS MCP — IPAに登録されるノードをコミッショニングする際にMAASと連携します。

インストール

Python 3.12+ と、JSON-RPC APIが有効なFreeIPAサーバーが必要です。

uv add ipa-mcp
# or
pip install ipa-mcp

ソースからの開発用:

cd ipa-mcp
uv sync --all-groups

設定

環境変数

.env ファイルを作成します(env.example を参照):

変数

必須

デフォルト

説明

IPA_HOST

はい

—

FreeIPAサーバーのホスト名またはURL

IPA_USERNAME

いいえ

admin

IPA APIユーザー名

IPA_PASSWORD

はい

—

IPA管理者パスワード

IPA_VERIFY_SSL

いいえ

false

SSL証明書の検証(自己署名の場合は通常false)

エイリアス: IPA_HOST に IPA_URL、IPA_USERNAME に IPA_USER、IPA_PASSWORD に IPA_PASS が使用可能です。

コマンドライン

ipa-mcp                    # stdio (default)
ipa-cli groups             # CLI
ipa-cli setup-forge cartesia5 --hosts "host1.cloud.together.ai" --users "alice"

Cursor / Claude Code 統合

Cursor (.cursor/mcp.json または .mcp.json)

{
  "mcpServers": {
    "ipa-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/ipa-mcp", "run", "ipa-mcp"],
      "env": {
        "IPA_HOST": "ipa.example.com",
        "IPA_USERNAME": "admin",
        "IPA_PASSWORD": "your-password"
      }
    }
  }
}

Claude Code

claude mcp add ipa-mcp -- uv --directory /path/to/ipa-mcp run ipa-mcp

開発

uv sync --all-groups
uv run ruff check src/ tests/
uv run ruff format src/ tests/
uv run pytest -v
uv run mypy src/

プロジェクト構造

src/ipa_mcp/
├── config.py       # Pydantic Settings
├── ipa_client.py   # FreeIPA JSON-RPC client
├── server.py       # FastMCP tools and entrypoint
└── cli.py          # Typer CLI

セキュリティ

  • 資格情報は SecretStr であり、ログでは編集(非表示)されます

  • 実際の資格情報を含む .env ファイルをコミットしないでください

  • FreeIPAサーバーは自己署名証明書を使用することが多いため、IPA_VERIFY_SSL=false が一般的です

ライセンス

Apache License 2.0

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors