Skip to main content

MCP server for Foreman host management and infrastructure automation

Project description

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

Project details


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.

Supported by

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