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 选项 |
| 一键式 forge 集群设置(组 + HBAC + sudo) |
CLI
配套的 ipa-cli 通过 shell 命令提供相同的功能 —— 在令牌预算受限或可以使用 shell 时使用。
任务 | 命令 |
列出用户组 |
|
列出主机组 |
|
列出 HBAC 规则 |
|
列出 sudo 规则 |
|
列出用户 |
|
列出主机 |
|
创建用户组 |
|
创建主机组 |
|
完全 forge 设置 |
|
安装 CLI:uvx --from ipa-mcp ipa-cli 或使用 uv run ipa-cli 从仓库运行。
跨 MCP 集成
此服务器可与 SRE 技术栈中的其他 MCP 服务器协同工作:
NetBox MCP — 在将主机添加到 IPA 主机组之前查找其 FQDN。NetBox 是设备清单的事实来源。
AWX MCP — 在 forge 设置完成后触发 Ansible playbook 进行 IPA 注册或主机配置。
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_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.