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 스택에서 포지(forge) 클러스터 구축 및 액세스 제어 자동화를 위해 설계되었습니다.

빠른 시작

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는 장치 인벤토리의 진실 공급원(source of truth)입니다.

  • AWX MCP — 포지 설정 후 IPA 등록 또는 호스트 프로비저닝을 위한 Ansible 플레이북을 트리거합니다.

  • 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