IPA MCP Server
IPA MCP Server
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)
Инструмент | Описание |
| Список групп пользователей |
| Список групп хостов |
| Список правил HBAC |
| Список правил sudo |
| Список пользователей |
| Список хостов |
Инструменты записи (10)
Инструмент | Описание |
| Создать группу пользователей |
| Добавить пользователей в группу |
| Создать группу хостов |
| Добавить хосты в группу хостов |
| Создать правило HBAC |
| Добавить участников в правило HBAC |
| Создать правило sudo |
| Добавить участников в правило sudo |
| Добавить опцию sudo |
| Однократная настройка кластера forge (группы + HBAC + sudo) |
CLI
Сопутствующий инструмент ipa-cli предоставляет те же возможности через команды оболочки — используйте его, когда важен бюджет токенов или доступна командная строка.
Задача | Команда |
Список групп пользователей |
|
Список групп хостов |
|
Список правил HBAC |
|
Список правил sudo |
|
Список пользователей |
|
Список хостов |
|
Создать группу пользователей |
|
Создать группу хостов |
|
Полная настройка forge |
|
Установка 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):
Переменная | Обязательно | По умолчанию | Описание |
| Да | — | Имя хоста или URL сервера FreeIPA |
| Нет |
| Имя пользователя API IPA |
| Да | — | Пароль администратора IPA |
| Нет |
| Проверка 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
Managed Keycloak from any MCP client: clusters, realms, apps, SSO, users, domains, audit events.
Manage remote servers, SSH terminals, files, databases and proxies with scoped access and approvals.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Check and manage RBAC permissions, roles, groups and grants in a Permio (perms.io) project.