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
If your Foreman instance uses a custom CA certificate, you have several options:
- Use the
--ca-bundle
option orFOREMAN_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
- 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
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
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 - 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
# UBI9 image - mount to /opt/app-root/src/ca.pem
podman run -it -p 8080:8080 \
-v /path/to/your-ca-bundle.pem:/opt/app-root/src/ca.pem:ro,Z \
foreman-mcp-server \
--foreman-url https://my-foreman-instance.something.somewhere \
--transport streamable-http
Option 2: Mount to custom location
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
# settings.json
{
"mcp": {
"servers": {
"foreman": {
"url": "http://127.0.0.1:8080/mcp/sse",
"type": "http",
"headers": {
"FOREMAN_USERNAME": "login",
"FOREMAN_TOKEN": "token"
}
}
}
},
}
- Press Ctrl+Shift+P
- Select MCP: List Servers command
- Select foreman
- Press Start Server
- 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
For use with mcp inspector
- Start the inspector with
npx @modelcontextprotocol/inspector
- Open
http://localhost:6274
in your browser - Set
Type
toStreamable HTTP
andURL
tohttp://localhost:8080/mcp
- Click connect
Note: this is highly experimental. Tested in a virtual machine running CentOS Stream 9.
- Follow installation steps https://github.com/bsneed/claude-desktop-fedora?tab=readme-ov-file#1-fedora-package-new
- If it doesn't launch, try `npm i -g electron
# ~/.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"],
}
}
}
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