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

pip install git+https://github.com/rorymcmahon/foreman-mcp-server.git

Or for development:

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:

{
  "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.2.2.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.2.2-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: foreman_mcp_server-0.2.2.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.2.2.tar.gz
Algorithm Hash digest
SHA256 a1c205153cf04ee01008fd95ef053668a0e413be45676562e502afcdf56a5106
MD5 eb88435bdd79e2c199db1d44ac02d907
BLAKE2b-256 69f1dea97cbd9f86d5faa768f4ea63dea4d579e23c38c73792ea9aad6916beba

See more details on using hashes here.

Provenance

The following attestation bundles were made for foreman_mcp_server-0.2.2.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.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for foreman_mcp_server-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 21a1a78c8c2080b1593ab39f29009baad97c06504c41a9f3119bc8b68d76683b
MD5 85b5f54ed03b1f1f05209a89a69c689a
BLAKE2b-256 dce02dd1579835f77143fd75d9b2d513779140154aba0577184547711425908c

See more details on using hashes here.

Provenance

The following attestation bundles were made for foreman_mcp_server-0.2.2-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