IPA MCP Server
IPA MCP 서버
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)
도구 | 설명 |
| 사용자 그룹 나열 |
| 호스트 그룹 나열 |
| HBAC 규칙 나열 |
| sudo 규칙 나열 |
| 사용자 나열 |
| 호스트 나열 |
쓰기 도구 (10)
도구 | 설명 |
| 사용자 그룹 생성 |
| 그룹에 사용자 추가 |
| 호스트 그룹 생성 |
| 호스트 그룹에 호스트 추가 |
| HBAC 규칙 생성 |
| HBAC 규칙에 멤버 추가 |
| sudo 규칙 생성 |
| sudo 규칙에 멤버 추가 |
| sudo 옵션 추가 |
| 원샷 포지 클러스터 설정 (그룹 + HBAC + sudo) |
CLI
동반 도구인 ipa-cli는 셸 명령을 통해 동일한 기능을 제공합니다. 토큰 예산이 중요하거나 셸 접근이 가능할 때 사용하세요.
작업 | 명령 |
사용자 그룹 나열 |
|
호스트 그룹 나열 |
|
HBAC 규칙 나열 |
|
sudo 규칙 나열 |
|
사용자 나열 |
|
호스트 나열 |
|
사용자 그룹 생성 |
|
호스트 그룹 생성 |
|
전체 포지 설정 |
|
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 참조):
변수 | 필수 | 기본값 | 설명 |
| 예 | — | FreeIPA 서버 호스트 이름 또는 URL |
| 아니요 |
| IPA API 사용자 이름 |
| 예 | — | IPA 관리자 비밀번호 |
| 아니요 |
| 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.
This server cannot be installed
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
- SkycloakOAuthio.skycloak
Managed Keycloak from any MCP client: clusters, realms, apps, SSO, users, domains, audit events.
Programmatic control of the Hiro security platform: scans, tasks, plans, and approvals.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Manage repositories, users, releases, and automate GitHub workflows
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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