Skip to main content

Foreman MCP Server

Python 3.10+ License: MIT Pylint Safety Security Scan Dependency Security Check

MCP server for Foreman host management and infrastructure automation.

Features

  • List and search hosts from Foreman
  • Get detailed host information
  • Search by location, OS, and environment
  • Generic configuration via environment variables

Installation

From PyPI (Recommended)

pip install foreman-mcp-server

From Source

git clone https://github.com/rorymcmahon/foreman-mcp-server.git
cd foreman-mcp-server
pip install -e .

## Configuration

Set the following environment variables:

- `FOREMAN_URL`: Base URL of your Foreman instance (e.g., `https://foreman.example.com`)
- `FOREMAN_USERNAME`: Foreman username
- `FOREMAN_PASSWORD`: **Personal Access Token** (not your web login password - create this in User Administration  Personal Access Tokens)
- `FOREMAN_VERIFY_SSL`: Whether to verify SSL certificates (default: `true`)

### Required Permissions

The user account needs the following minimum permissions to use all MCP server tools:

| Resource Type | Permission | Purpose |
|---------------|------------|---------|
| Host | `view_hosts` | List and search hosts, get host details and status |
| Organization | `view_organizations` | List organizations |
| Location | `view_locations` | List locations |
| Hostgroup | `view_hostgroups` | List and search by hostgroups |
| Subnet | `view_subnets` | List subnets and get subnet details |
| Domain | `view_domains` | List domains and get domain details |
| SmartProxy | `view_smart_proxies` | List smart proxies and get proxy details |

### Recommended Roles

Instead of assigning individual permissions, you can use these built-in roles:

| Role | Description | Recommended For |
|------|-------------|-----------------|
| **Viewer** | Read-only access to most Foreman resources | General monitoring and inventory queries |
| **Ansible Tower Inventory Reader** | Specific permissions for inventory access | Automated systems integration |
| **Organization admin** | Full access within assigned organizations | Organization-specific administration |

**Note**: The "Viewer" role provides the most appropriate permissions for this MCP server's read-only operations.

## MCP Configuration

Add to your MCP client configuration:

```json
{
  "foreman-mcp-server": {
    "command": "foreman-mcp-server",
    "env": {
      "FOREMAN_URL": "https://foreman.example.com",
      "FOREMAN_USERNAME": "your-username",
      "FOREMAN_PASSWORD": "your-password",
      "FOREMAN_VERIFY_SSL": "true"
    }
  }
}

Available Tools

Host Management

  • list_hosts(search, per_page, page) - List hosts with optional search
  • get_host(host_id) - Get detailed host information
  • get_host_status(host_id) - Get status information for a specific host

Host Search Functions

  • search_hosts_by_location(location, per_page) - Search by location
  • search_hosts_by_os(os_name, per_page) - Search by operating system
  • search_hosts_by_environment(environment, per_page) - Search by environment
  • search_hosts_by_hostgroup(hostgroup, per_page) - Search by hostgroup
  • search_hosts_by_fact(fact_name, fact_value, per_page) - Search by custom facts

Infrastructure Information

  • list_organizations(per_page) - List all organizations
  • list_locations(per_page) - List all locations
  • list_hostgroups(per_page) - List all hostgroups
  • list_subnets(per_page) - List all subnets
  • get_subnet(subnet_id) - Get detailed subnet information
  • list_domains(per_page) - List all domains
  • get_domain(domain_id) - Get detailed domain information
  • list_smart_proxies(per_page) - List all smart proxies
  • get_smart_proxy(proxy_id) - Get detailed smart proxy information

OS Management

  • list_operatingsystems(per_page) - List all operating systems
  • get_operatingsystem(os_id) - Get detailed operating system information
  • list_architectures(per_page) - List all architectures
  • get_architecture(arch_id) - Get detailed architecture information
  • list_media(per_page) - List all installation media
  • get_media(media_id) - Get detailed installation media information

Content Management

  • list_content_views(per_page) - List all content views
  • get_content_view(cv_id) - Get detailed content view information
  • list_repositories(per_page) - List all repositories
  • get_repository(repo_id) - Get detailed repository information
  • list_lifecycle_environments(per_page) - List all lifecycle environments
  • get_lifecycle_environment(env_id) - Get detailed lifecycle environment information

Development

pip install -e ".[dev]"
pytest

Support

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

foreman_mcp_server-0.4.2.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

foreman_mcp_server-0.4.2-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file foreman_mcp_server-0.4.2.tar.gz.

File metadata

  • Download URL: foreman_mcp_server-0.4.2.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for foreman_mcp_server-0.4.2.tar.gz
Algorithm Hash digest
SHA256 78df7a26d6460283baa60340117b2381ae7edbe7a95f2cb7ffead58d84cd0239
MD5 911c2626ba4448f83c7ea84fbf8ccb26
BLAKE2b-256 4b2d1cbdcbc3232e98905a64e3ca6f5611bbf271d449e896fc99895b2f342936

See more details on using hashes here.

File details

Details for the file foreman_mcp_server-0.4.2-py3-none-any.whl.

File metadata

File hashes

Hashes for foreman_mcp_server-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 94cbbff5edc6d2448445cddef283d7cc2ca8404a2b7f67f67704b9b2222d2d89
MD5 bbb109106b8f6a09b3e40b9eacb76428
BLAKE2b-256 9cb2712133454f14a0ccd016cebd937f02c4b0b27dc4682b64d177909d491317

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.2.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page