Skip to main content
Glama
IPA MCP Server
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_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