Skip to main content
Glama
vhspace
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. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vhspace/ipa-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server