Skip to main content
Glama
theforeman

Foreman MCP Server

Official
by theforeman

foreman-mcp-server

How to run

Using VSCode with Copilot

Start the server via uv

uv run foreman-mcp-server \
  --foreman-url https://foreman.example.com \
  --foreman-username $FOREMAN_USERNAME \
  --foreman-password $FOREMAN_PASSWORD \
  --log-level debug \
  --host localhost \
  --port 8080 \
  --transport stdio \
  --no-verify-ssl

Default values if not provided:

  --foreman-url https://$hostname
  --log-level INFO
  --host '127.0.0.1'
  --port 8080
  --transport streamable-http
  --verify-ssl

Using custom CA certificates

If your Foreman instance uses a custom CA certificate, you have several options:

  1. Use the --ca-bundle option or FOREMAN_CA_BUNDLE environment variable:

uv run foreman-mcp-server \
  --foreman-url https://foreman.example.com \
  --foreman-username $FOREMAN_USERNAME \
  --foreman-password $FOREMAN_PASSWORD \
  --ca-bundle /path/to/ca-bundle.pem
  1. Place your CA certificate as ./ca.pem in the working directory (automatically detected):

cp /path/to/ca-bundle.pem ./ca.pem
uv run foreman-mcp-server \
  --foreman-url https://foreman.example.com \
  --foreman-username $FOREMAN_USERNAME \
  --foreman-password $FOREMAN_PASSWORD

Related MCP server: Proxmox MCP Server

Start the server via podman

First, build the container:

podman build -t foreman-mcp-server .

Now run the container:

podman run -it -p 8080:8080 foreman-mcp-server \
  --foreman-url https://my-foreman-instance.something.somewhere \
  --log-level debug \
  --host localhost \
  --port 8080 \
  --transport streamable-http

Using custom CA certificates with containers

To use custom CA certificates with the container, you can either mount your CA bundle to the default ca.pem location (automatically detected) or specify a custom path:

Option 1: Mount to default location (recommended)

# Standard container or UBI9 image - mount to /app/ca.pem
podman run -it -p 8080:8080 \
  -v /path/to/your-ca-bundle.pem:/app/ca.pem:ro,Z \
  foreman-mcp-server \
  --foreman-url https://my-foreman-instance.something.somewhere \
  --transport streamable-http

**Option 2: Mount to custom location**
```shell
podman run -it -p 8080:8080 \
  -v /path/to/your-ca-bundle.pem:/custom/ca.pem:ro,Z \
  foreman-mcp-server \
  --foreman-url https://my-foreman-instance.something.somewhere \
  --ca-bundle /custom/ca.pem \
  --transport streamable-http

Configure VSCode

# settings.json
{
    "mcp": {
        "servers": {
            "foreman": {
                "url": "http://127.0.0.1:8080/mcp/sse",
                "type": "http",
                  "headers": {
                    "FOREMAN_USERNAME": "login",
                    "FOREMAN_TOKEN": "token"
                  }
            }
        }
    },
}

Run VSCode client

  • Press Ctrl+Shift+P

  • Select MCP: List Servers command

  • Select foreman

  • Press Start Server

Using in Copilot Chat

  • Press Ctrl+Alt+I to open the chat

  • In Configure Tools select the MCP tools only

  • Prompts can be listed in the chat, e.g. /mcp.foreman.basic_hosts_pending_sec_updates_static_report

  • Resources can be attached via Add Context... > MCP Resources > resource

Using MCP Inspector

For use with mcp inspector

  1. Start the inspector with npx @modelcontextprotocol/inspector

  2. Open http://localhost:6274 in your browser

  3. Set Type to Streamable HTTP and URL to http://localhost:8080/mcp

  4. Click connect

Using Claude Desktop on Linux

Note: this is highly experimental. Tested in a virtual machine running CentOS Stream 9.

Installation

Configuration

# ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "foreman": {
      "command": "uv",
      "args": ["--directory", "/home/$USER/foreman-mcp-server", "run","foreman-mcp-server", "--transport", "stdio", "--foreman-username", "login", "--foreman-password", "password/token"],
    }
  }
}

To use custom CA certificates with Claude Desktop:

# ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "foreman": {
      "command": "uv",
      "args": ["--directory", "/home/$USER/foreman-mcp-server", "run","foreman-mcp-server", "--transport", "stdio", "--foreman-username", "login", "--foreman-password", "password/token", "--ca-bundle", "/path/to/ca-bundle.pem"],
    }
  }
}

Run Claude client

This will launch UI application, log in into your account. It will start and connect to the MCP server automatically.

claude-desktop
  • Click + button > Add from foreman: > Select any of Prompts and Resources from the server

  • Click Configuration button to select Tools from the server

Remote Execution Features

The MCP server can trigger remote execution jobs on Foreman hosts. This functionality is opt-in and disabled by default for security reasons.

Enabling Remote Execution

To enable remote execution, you must explicitly specify which remote execution features are allowed using the --allowed-rex-features option or the FOREMAN_ALLOWED_REX_FEATURES environment variable:

uv run foreman-mcp-server \
  --foreman-url https://foreman.example.com \
  --foreman-username $FOREMAN_USERNAME \
  --foreman-password $FOREMAN_PASSWORD \
  --allowed-rex-features "katello_errata_install,katello_package_install"

Or using the environment variable:

export FOREMAN_ALLOWED_REX_FEATURES="katello_errata_install,katello_package_install"
uv run foreman-mcp-server ...

How It Works

  1. Allowlist-based security: Only remote execution features explicitly listed in --allowed-rex-features can be triggered. Any attempt to use a feature not on the list will be rejected.

  2. Available features resource: When allowed features are configured, a resource becomes available at foreman://remote_execution/allowed_features. This resource returns information about each allowed feature, including:

    • Feature label, ID, name, and description

    • Associated job template ID and name

    • Any errors (e.g., if the feature doesn't exist in Foreman)

  3. Trigger tool: The trigger_remote_execution_job tool is only enabled when at least one feature is allowed. To use it, the AI agent should:

    1. Read the "Allowed Remote Execution Features" resource to see available features

    2. Pick the appropriate feature for the task

    3. Use call_foreman_api_get to read the feature's job template (resource: "job_templates", action: "show") to see what inputs it accepts

    4. Call trigger_remote_execution_job with the feature label, search query, and appropriate inputs

Common Remote Execution Features

Here are some commonly used remote execution feature labels:

Feature Label

Description

katello_errata_install

Install errata on hosts

katello_package_install

Install packages on hosts

katello_package_update

Update packages on hosts

katello_package_remove

Remove packages from hosts

katello_host_tracer_resolve

Resolve Tracer-detected services

To find all available features in your Foreman instance, you can use the API:

curl -u $USER:$PASSWORD https://foreman.example.com/api/remote_execution_features

Content View Actions

The MCP server can publish, promote, and incrementally update content views. This functionality is opt-in and disabled by default for security reasons.

Enabling Content View Actions

To enable content view actions, you must explicitly specify which actions are allowed using the --allowed-cv-actions option or the FOREMAN_ALLOWED_CV_ACTIONS environment variable:

uv run foreman-mcp-server \
  --foreman-url https://foreman.example.com \
  --foreman-username $FOREMAN_USERNAME \
  --foreman-password $FOREMAN_PASSWORD \
  --allowed-cv-actions "publish,promote,incremental_update"

Or using the environment variable:

export FOREMAN_ALLOWED_CV_ACTIONS="publish,promote,incremental_update"
uv run foreman-mcp-server ...

How It Works

  1. Allowlist-based security: Only content view actions explicitly listed in --allowed-cv-actions can be triggered. If the option is not set or empty, all content view tools are disabled.

  2. Available tools: When specific actions are allowed, the corresponding tools become enabled:

Action

Tool

Description

publish

publish_content_view

Publishes a new version of a content view

promote

promote_content_view_version

Promotes a content view version to lifecycle environments

incremental_update

incremental_content_view_update

Performs an incremental update adding errata to content view versions

  1. Usage flow: To use the content view tools, the AI agent should:

    1. Use call_foreman_api_get to find the content view (resource: "content_views", action: "index")

    2. Publish a new version with publish_content_view

    3. Promote the version with promote_content_view_version

    4. Use poll_task to monitor the task progress

Available Tools

5 tools
call_foreman_api_getCall Foreman API GET ActionC
Read-only

Calls GET action on Foreman API.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYes
actionYes
paramsYes

TDQS

C2.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, openWorldHint=false, and idempotentHint=false, covering safety and idempotency. The description adds no behavioral context beyond these annotations, such as rate limits, authentication needs, or what 'GET action' entails in practice. However, it does not contradict the annotations, so it meets the lower bar with annotations present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence, 'Calls GET action on Foreman API.' It is front-loaded and wastes no words, though this brevity contributes to its inadequacy in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a tool with three required parameters (including a nested object), 0% schema coverage, no output schema, and no annotations beyond basic hints, the description is severely incomplete. It fails to explain what the tool returns, how parameters are used, or any operational context, making it inadequate for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning none of the three parameters (resource, action, params) are documented in the schema. The description provides no information about what these parameters mean, their expected values, or how they interact, failing to compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Calls GET action on Foreman API' is essentially a tautology that restates the tool name 'call_foreman_api_get' with minimal additional information. It specifies the verb ('Calls') and resource ('Foreman API') but lacks specificity about what this actually accomplishes or how it differs from sibling tools like fetch_foreman_dsl_docs or get_foreman_api_resource_docs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of appropriate contexts, prerequisites, or comparisons to sibling tools like poll_task or get_foreman_dsl_docs, leaving the agent with no usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_foreman_dsl_docsFetch Foreman DSL DocumentationB
Read-onlyIdempotent

Fetches the DSL documentation from Foreman for a specific section.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide clear hints: read-only, non-destructive, idempotent, and closed-world. The description adds value by specifying that it fetches documentation for a 'specific section', which is useful context not covered by annotations. However, it lacks details on rate limits, authentication needs, or error handling, leaving some behavioral aspects unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no output schema) and rich annotations, the description is minimally adequate. However, it lacks details on the return format (e.g., structure of documentation) and does not address sibling tool differentiation, which could hinder agent selection in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 1 parameter with 0% description coverage, meaning the schema provides no semantic details. The description only mentions 'specific section' without explaining what sections are available, their format, or examples. This fails to compensate for the low schema coverage, leaving the parameter poorly documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetches') and resource ('DSL documentation from Foreman') with specificity about the scope ('for a specific section'). However, it does not explicitly distinguish this tool from its sibling 'get_foreman_dsl_docs', which appears to have a similar purpose, leaving some ambiguity in differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as the sibling tools 'get_foreman_dsl_docs' or 'get_foreman_api_resource_docs'. It mentions a 'specific section' but does not clarify prerequisites, exclusions, or contextual triggers for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_foreman_api_resource_docsGet Foreman API Resource DocumentationB
Read-onlyIdempotent

Fetches the documentation for a specific Foreman API resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds value by specifying that it fetches documentation for a 'specific' resource, implying targeted retrieval, but does not detail aspects like rate limits, authentication needs, or response format, keeping it from a score of 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that directly states the tool's function without unnecessary words. It is front-loaded and efficiently communicates the core purpose, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter, no output schema) and rich annotations covering key behavioral traits, the description is minimally adequate. However, it lacks details on parameter semantics and usage context, which could enhance completeness for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, with one required parameter 'resource' of type string. The description does not add any semantic details about this parameter, such as what constitutes a valid resource name or examples, failing to compensate for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetches') and the target ('documentation for a specific Foreman API resource'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'fetch_foreman_dsl_docs' or 'get_foreman_dsl_docs', which appear similar, preventing a score of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as the sibling tools 'fetch_foreman_dsl_docs' or 'get_foreman_dsl_docs', which might overlap in functionality. There is no mention of prerequisites, exclusions, or specific contexts for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_foreman_dsl_docsGet Foreman DSL DocumentationA
Read-onlyIdempotent

Reads from cache and returns the documentation of available macros for template writing in Markdown format based on provided section.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover read-only, non-destructive, idempotent, and closed-world hints, so the bar is lower. The description adds value by specifying that it 'reads from cache' and returns 'Markdown format', which are behavioral traits not in annotations. It doesn't contradict annotations, as 'reads' aligns with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads key information (action, resource, format, parameter role) with zero wasted words. It's appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has rich annotations (readOnlyHint, idempotentHint, etc.) but no output schema and low schema coverage, the description is adequate but has gaps. It covers the core purpose and some behavior, but lacks details on output structure, error handling, or sibling differentiation, making it minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'based on provided section', which adds meaning by linking the parameter to filtering documentation by section, but doesn't detail what sections are available or their format. This provides some semantics but is incomplete, aligning with the baseline for partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'reads from cache and returns' and the resource 'documentation of available macros for template writing in Markdown format', which is specific. However, it doesn't explicitly differentiate from sibling tools like 'fetch_foreman_dsl_docs' or 'get_foreman_api_resource_docs', which appear similar, so it misses full sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'fetch_foreman_dsl_docs' or 'get_foreman_api_resource_docs', nor does it mention prerequisites or exclusions. It only implies usage through the parameter 'section', but lacks explicit context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

poll_taskPoll Task Until CompletionA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
timeoutNo
poll_intervalNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, non-destructive, and idempotent behavior, but the description adds valuable context beyond this: it specifies the polling behavior (continuous until terminal state), defines terminal states ('stopped or paused'), mentions background execution for long-running tasks, and implies a blocking or monitoring operation. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by additional context in a second sentence. Every sentence adds value: the first defines the action and outcome, the second adds execution mode. No wasted words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (polling with timeout and interval), annotations cover safety aspects, but there is no output schema. The description explains the return value ('final task state') and behavioral traits, making it fairly complete. However, it could benefit from more detail on error handling or what 'terminal state' entails beyond 'stopped or paused'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden of explaining parameters. It does not mention any parameters explicitly, but it implies the need for a task_id (to poll) and context for timeout/poll_interval (via 'long-running tasks' and polling). However, it lacks details on parameter meanings, defaults, or units, leaving gaps compensated only by the schema's structural info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Polls a Foreman task'), the resource ('Foreman task'), the termination condition ('until it reaches a terminal state'), and distinguishes it from siblings by focusing on polling rather than direct API calls or documentation fetching. It explicitly mentions the return value ('Returns the final task state').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: for monitoring tasks until completion, with support for long-running tasks via background execution. However, it does not explicitly state when not to use it or name alternatives among the sibling tools (e.g., call_foreman_api_get might be for one-time status checks).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv0.1.0
    • First observedcall_foreman_api_get
    • First observedfetch_foreman_dsl_docs
    • First observedget_foreman_api_resource_docs
    • First observedget_foreman_dsl_docs
    • First observedpoll_task

TDQS

B3.1/5.0
Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness3/5

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.

Maintenance

ActivityStale
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Enables interaction with Foreman infrastructure management platform through MCP tools, prompts, and resources. Supports querying host information, security updates, and accessing Foreman data via natural language.
    4
    GPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables interaction with Proxmox VE for managing VMs, containers, storage, and cluster resources via natural language through the Model Context Protocol.
    12
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server to interact with Foreman (Red Hat Satellite) instances, enabling management of hosts, provisioning, and configuration via natural language.
    1
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/theforeman/foreman-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server