Foreman MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | The host address to bind the server to. | 127.0.0.1 |
| PORT | No | The port number to bind the server to. | 8080 |
| LOG_LEVEL | No | Logging level. Options include debug, info, warning, error, critical. | INFO |
| TRANSPORT | No | The transport protocol to use (stdio or streamable-http). | streamable-http |
| FOREMAN_URL | Yes | URL of the Foreman instance. Defaults to https://$hostname if not provided. | https://$hostname |
| FOREMAN_TOKEN | No | Foreman authentication token. | |
| NO_VERIFY_SSL | No | Set to 'true' to disable SSL certificate verification. | |
| FOREMAN_PASSWORD | No | Foreman password for authentication. | |
| FOREMAN_USERNAME | Yes | Foreman username for authentication. | |
| FOREMAN_CA_BUNDLE | No | Path to a custom CA certificate bundle (e.g., /path/to/ca-bundle.pem). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| call_foreman_api_getC | Calls GET action on Foreman API. |
| fetch_foreman_dsl_docsB | Fetches the DSL documentation from Foreman for a specific section. |
| get_foreman_api_resource_docsB | Fetches the documentation for a specific Foreman API resource. |
| get_foreman_dsl_docsA | Reads from cache and returns the documentation of available macros for template writing in Markdown format based on provided section. |
| poll_taskA | Polls a Foreman task until it reaches a terminal state (stopped or paused). Returns the final task state. Supports background execution for long-running tasks. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| Basic Subnets Static Report | A prompt for generating a static report of all subnets in Foreman. |
| Basic Hosts Pending Security Updates Static Report | A prompt for generating a static report of hosts with pending security updates in Foreman. |
| Basic Template Writing | A prompt for writing a basic template in Foreman |
| Apply Errata to Hosts | A prompt for applying a specific errata to applicable hosts in Foreman using remote execution. |
| Add Errata to Content Views | A prompt for adding a specific errata to content views and making it available to hosts through publishing and promotion. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Foreman Resources | Provides a list of all resources available in the Foreman API. |
| Foreman DSL Sections | Returns all Foreman DSL sections available for template writing. |
| Foreman Template Kinds | Provides a list of all template kinds available in Foreman. |
| Foreman Template Models | Provides a list of all template models available in Foreman. |
| Foreman Template Schema | Returns the schema of a Foreman template. |
TDQS
Scored across 5 tools
Most tools have distinct purposes: call_foreman_api_get handles API calls, fetch_foreman_dsl_docs and get_foreman_dsl_docs both fetch DSL documentation but differ slightly in source (direct fetch vs. cache read), get_foreman_api_resource_docs fetches API resource docs, and poll_task handles task polling. There is minor overlap between the two DSL documentation tools, which could cause slight confusion, but descriptions clarify the difference.
The naming is mixed but readable: tools use verb_noun patterns like call_foreman_api_get and fetch_foreman_dsl_docs, but there are inconsistencies such as get_foreman_api_resource_docs (longer noun phrase) and poll_task (shorter, simpler). While not chaotic, the lack of a uniform structure (e.g., varying verb choices and noun lengths) reduces predictability.
With 5 tools, this server is well-scoped for interacting with Foreman, covering key areas like API calls, documentation retrieval, and task management. Each tool appears to earn its place without being overly sparse or bloated, making it manageable for agents to use effectively.
The tool set covers documentation fetching and basic API/task operations, but there are notable gaps for a Foreman server, such as missing CRUD operations for resources (e.g., create, update, delete), limited API actions beyond GET, and no tools for managing hosts or other core Foreman entities. This could lead to agent workarounds or failures in broader workflows.