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. 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