Skip to main content
Glama
vhspace
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. 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