Skip to main content
Glama
vhspace
by vhspace

IPA MCP Server

CI Release Python 3.12+ License: Apache 2.0

MCP server and CLI for FreeIPA — manages user groups, host groups, HBAC rules, and sudo rules via the FreeIPA JSON-RPC API. Designed for forge cluster bringup and access control automation in the Together AI SRE stack.

Quick Start

Cursor IDE

Add to .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"
      }
    }
  }
}

From Source

cd ipa-mcp
uv sync --all-groups
uv run ipa-mcp

Tools

Read Tools (6)

Tool

Description

ipa_list_groups

List user groups

ipa_list_hostgroups

List host groups

ipa_list_hbac_rules

List HBAC rules

ipa_list_sudo_rules

List sudo rules

ipa_list_users

List users

ipa_list_hosts

List hosts

Write Tools (10)

Tool

Description

ipa_create_group

Create user group

ipa_add_group_members

Add users to group

ipa_create_hostgroup

Create host group

ipa_add_hostgroup_members

Add hosts to host group

ipa_create_hbac_rule

Create HBAC rule

ipa_add_hbac_rule_members

Add members to HBAC rule

ipa_create_sudo_rule

Create sudo rule

ipa_add_sudo_rule_members

Add members to sudo rule

ipa_add_sudo_option

Add sudo option

ipa_setup_forge

One-shot forge cluster setup (groups + HBAC + sudo)

CLI

The companion ipa-cli provides the same capabilities via shell commands — use when token budget matters or shell access is available.

Task

Command

List user groups

ipa-cli groups

List host groups

ipa-cli hostgroups

List HBAC rules

ipa-cli hbac-rules

List sudo rules

ipa-cli sudo-rules

List users

ipa-cli users

List hosts

ipa-cli hosts

Create user group

ipa-cli create-group <name> --desc "description"

Create host group

ipa-cli create-hostgroup <name>

Full forge setup

ipa-cli setup-forge <cluster> --hosts "host1,host2" --users "alice,bob"

Install CLI: uvx --from ipa-mcp ipa-cli or run from repo with uv run ipa-cli.

Cross-MCP Integration

This server works alongside other MCP servers in the SRE stack:

  • NetBox MCP — Look up host FQDNs before adding them to IPA host groups. NetBox is the source of truth for device inventory.

  • AWX MCP — Trigger Ansible playbooks for IPA enrollment or host provisioning after forge setup.

  • MAAS MCP — Coordinate with MAAS when commissioning nodes that will be enrolled in IPA.

Installation

Requires Python 3.12+ and a FreeIPA server with JSON-RPC API enabled.

uv add ipa-mcp
# or
pip install ipa-mcp

For development from source:

cd ipa-mcp
uv sync --all-groups

Configuration

Environment Variables

Create a .env file (see env.example):

Variable

Required

Default

Description

IPA_HOST

Yes

FreeIPA server hostname or URL

IPA_USERNAME

No

admin

IPA API username

IPA_PASSWORD

Yes

IPA admin password

IPA_VERIFY_SSL

No

false

SSL certificate verification (typically false for self-signed)

Aliases: IPA_URL for IPA_HOST, IPA_USER for IPA_USERNAME, IPA_PASS for IPA_PASSWORD.

Command Line

ipa-mcp                    # stdio (default)
ipa-cli groups             # CLI
ipa-cli setup-forge cartesia5 --hosts "host1.cloud.together.ai" --users "alice"

Cursor / Claude Code Integration

Cursor (.cursor/mcp.json or .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

Development

uv sync --all-groups
uv run ruff check src/ tests/
uv run ruff format src/ tests/
uv run pytest -v
uv run mypy src/

Project Structure

src/ipa_mcp/
├── config.py       # Pydantic Settings
├── ipa_client.py   # FreeIPA JSON-RPC client
├── server.py       # FastMCP tools and entrypoint
└── cli.py          # Typer CLI

Security

  • Credentials are SecretStr and redacted in logs

  • Never commit .env files with real credentials

  • FreeIPA servers often use self-signed certs — IPA_VERIFY_SSL=false is typical

License

Apache License 2.0

F
license - not found
-
quality - not tested
-
maintenance - not tested

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

  • Remote MCP for A2A caller identity, scope policy, verdict receipts, and audit history.

  • Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

  • Remote MCP for Android CLI agent build gate, structured receipts, audit logs, and reviewer-ready evi

View all 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