Skip to main content
Glama
IPA MCP Server
by vhspace

IPA MCP Server

CI Release Python 3.12+ License: Apache 2.0

MCP-сервер и CLI для FreeIPA — управляет группами пользователей, группами хостов, правилами HBAC и правилами sudo через JSON-RPC API FreeIPA. Разработан для развертывания кластеров forge и автоматизации контроля доступа в стеке SRE компании Together AI.

Быстрый старт

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

Однократная настройка кластера 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>

Полная настройка forge

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

Установка CLI: uvx --from ipa-mcp ipa-cli или запуск из репозитория с помощью uv run ipa-cli.

Кросс-MCP интеграция

Этот сервер работает совместно с другими MCP-серверами в стеке SRE:

  • NetBox MCP — поиск FQDN хостов перед добавлением их в группы хостов IPA. NetBox является источником достоверных данных об инвентаризации устройств.

  • AWX MCP — запуск плейбуков Ansible для регистрации в IPA или подготовки хостов после настройки forge.

  • MAAS MCP — координация с MAAS при вводе в эксплуатацию узлов, которые будут зарегистрированы в IPA.

Установка

Требуется Python 3.12+ и сервер FreeIPA с включенным JSON-RPC API.

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

Для разработки из исходного кода:

cd ipa-mcp
uv sync --all-groups

Конфигурация

Переменные окружения

Создайте файл .env (см. env.example):

Переменная

Обязательно

По умолчанию

Описание

IPA_HOST

Да

—

Имя хоста или URL сервера FreeIPA

IPA_USERNAME

Нет

admin

Имя пользователя API IPA

IPA_PASSWORD

Да

—

Пароль администратора IPA

IPA_VERIFY_SSL

Нет

false

Проверка SSL-сертификата (обычно false для самоподписанных)

Псевдонимы: IPA_URL для IPA_HOST, IPA_USER для IPA_USERNAME, IPA_PASS для IPA_PASSWORD.

Командная строка

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