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

一键式 forge 集群设置(组 + HBAC + sudo)

CLI

配套的 ipa-cli 通过 shell 命令提供相同的功能 —— 在令牌预算受限或可以使用 shell 时使用。

任务

命令

列出用户组

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>

完全 forge 设置

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 是设备清单的事实来源。

  • 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):

变量

必需

默认值

描述

IPA_HOST

FreeIPA 服务器主机名或 URL

IPA_USERNAME

admin

IPA API 用户名

IPA_PASSWORD

IPA 管理员密码

IPA_VERIFY_SSL

false

SSL 证书验证(自签名证书通常为 false)

别名:IPA_URL 对应 IPA_HOSTIPA_USER 对应 IPA_USERNAMEIPA_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.

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