Skip to main content

MCP server for Foreman host management and infrastructure automation

Project description

Foreman MCP Server

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

Development

pip install -e ".[dev]"
pytest

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.3.1.tar.gz (6.1 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.3.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for foreman_mcp_server-0.3.1.tar.gz
Algorithm Hash digest
SHA256 db93fa7164a874427308f8eb55b42187bdcf8564194223ed2d2a051f386b4133
MD5 26da1b2bdd138e0873305dec9d5941f4
BLAKE2b-256 94949c0fe1f4b27c040473225284253ece0c9cef36fda19de69fe685883afe2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for foreman_mcp_server-0.3.1.tar.gz:

Publisher: publish.yml on rorymcmahon/foreman-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for foreman_mcp_server-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f6f3310e72f8a420f8863f73700928cca3fbc96561628807bb0d697dfb786c23
MD5 ceb678e7f07310c6e541bbb139e30afd
BLAKE2b-256 14e0fc885de9dbadeea9feb05b7a2d9ee8490094503ed399c51fa165fb92b139

See more details on using hashes here.

Provenance

The following attestation bundles were made for foreman_mcp_server-0.3.1-py3-none-any.whl:

Publisher: publish.yml on rorymcmahon/foreman-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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