<?xml version="1.0"?>
<Container version="2">
<Name>mcp-ssh-sre</Name>
<Repository>ghcr.io/ohare93/mcp-ssh-sre:latest</Repository>
<Registry>https://github.com/ohare93/mcp-ssh-sre/pkgs/container/mcp-ssh-sre</Registry>
<Network>host</Network>
<Shell>sh</Shell>
<Privileged>false</Privileged>
<Support>https://forums.unraid.net/topic/XXXXX-mcp-ssh-sre-support</Support>
<Project>https://github.com/ohare93/mcp-ssh-sre</Project>
<Overview>MCP server providing secure, read-only SSH access for AI assistants like Claude. Ask natural language questions about your Unraid server:

- "Why is my Plex container crashing?"
- "Is my array healthy? Any drives showing signs of failure?"
- "Which containers are consuming the most resources?"
- "Help me debug network connectivity between containers"

Features 12 tool modules with 79+ actions covering Docker management, storage/array health, system monitoring, log analysis, VM management, and security auditing. Auto-detects Unraid for platform-specific features like parity status, SMART data, and mover logs.

SETUP: Create a dedicated read-only SSH user (mcp-readonly) and generate an SSH key pair. The container connects via SSH to run diagnostic commands.</Overview>
<Category>Tools: Network:Management HomeAutomation:</Category>
<WebUI>http://[IP]:[PORT:3000]/health</WebUI>
<Icon>https://raw.githubusercontent.com/ohare93/mcp-ssh-sre/main/unraid-template/mcp-ssh-sre.png</Icon>
<TemplateURL>https://raw.githubusercontent.com/ohare93/mcp-ssh-sre/main/unraid-template/mcp-ssh-sre.xml</TemplateURL>
<ExtraParams>--restart unless-stopped</ExtraParams>
<Config Name="HTTP Port" Target="3000" Default="3000" Mode="tcp" Description="MCP HTTP endpoint port. Connect your AI client to http://unraid-ip:3000/mcp" Type="Port" Display="always" Required="true" Mask="false">3000</Config>
<Config Name="SSH Private Key" Target="/home/mcp/.ssh/id_rsa" Default="/root/.ssh/id_rsa_mcp" Mode="ro" Description="Path to SSH private key file on the host. Create with: ssh-keygen -t ed25519 -f /root/.ssh/id_rsa_mcp" Type="Path" Display="always" Required="true" Mask="false"/>
<Config Name="SSH Host" Target="SSH_HOST" Default="localhost" Description="SSH host to connect to. Use 'localhost' when running on Unraid itself (with host network mode)." Type="Variable" Display="always" Required="true" Mask="false"/>
<Config Name="SSH Username" Target="SSH_USERNAME" Default="mcp-readonly" Description="SSH username. Create a dedicated read-only user for security." Type="Variable" Display="always" Required="true" Mask="false"/>
<Config Name="Require Auth" Target="REQUIRE_AUTH" Default="false|true|development" Description="Require OAuth authentication. Set 'false' for local network use, 'true' if exposing to internet." Type="Variable" Display="always" Required="true" Mask="false"/>
<Config Name="SSH Port" Target="SSH_PORT" Default="22" Description="SSH port on the target server." Type="Variable" Display="advanced" Required="false" Mask="false"/>
<Config Name="OAuth Server URL" Target="OAUTH_SERVER_URL" Default="" Description="Your public URL when behind a reverse proxy (required if REQUIRE_AUTH=true). Example: https://mcp.yourdomain.com" Type="Variable" Display="advanced" Required="false" Mask="false"/>
<Config Name="Command Timeout" Target="COMMAND_TIMEOUT_MS" Default="15000" Description="Command execution timeout in milliseconds. Increase for slow commands." Type="Variable" Display="advanced" Required="false" Mask="false"/>
</Container>