Help us improve
Share bugs, ideas, or general feedback.
From swag-mcp
This skill should be used when the user says "add proxy config", "create reverse proxy", "SWAG config", "nginx proxy", "expose service", "proxy configuration", "subdomain config", "subfolder config", "configure SWAG", "list proxy configs", "view proxy config", "edit proxy config", "remove proxy config", "check proxy health", "SWAG logs", "add domain", "configure SSL", "proxy a service", or mentions SWAG, reverse proxy, nginx configuration, or making a service accessible via domain.
npx claudepluginhub jmagar/claude-homelab --plugin swag-mcpHow this skill is triggered — by the user, by Claude, or both
Slash command
/swag-mcp:swagThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**MCP mode** (preferred): Use when `mcp__swag-mcp__swag` tool is available. The server manages nginx proxy configuration files directly (local or remote via SSH).
Guides using Bun as JavaScript runtime, package manager, bundler, and test runner. Covers choosing Bun vs Node, Node migration, and Vercel deployment support.
Share bugs, ideas, or general feedback.
MCP mode (preferred): Use when mcp__swag-mcp__swag tool is available. The server manages nginx proxy configuration files directly (local or remote via SSH).
HTTP fallback: No meaningful curl equivalent — SWAG config management requires direct filesystem access. If MCP server is unavailable, surface the issue to the user and suggest restarting it.
MCP URL: ${user_config.swag_mcp_url}
Single tool: mcp__swag-mcp__swag with an action parameter.
mcp__swag-mcp__swag
action: "list"
Returns all proxy configurations with their status (enabled/disabled).
mcp__swag-mcp__swag
action: "create"
server_name: (required) Service name, e.g. "jellyfin", "sonarr"
type: (required) "subdomain" or "subfolder"
upstream_url: (required) Backend URL, e.g. "http://192.168.1.10:8096"
auth_method: (optional) "authelia", "authentik", "basic", "none" — default from server config
enable_quic: (optional) true/false
mcp__swag-mcp__swag
action: "view"
server_name: (required) Service name
mcp__swag-mcp__swag
action: "edit"
server_name: (required) Service name
changes: (required) Description of changes to apply
mcp__swag-mcp__swag
action: "update"
server_name: (required) Service name
upstream_url: (required) New backend URL
mcp__swag-mcp__swag
action: "remove"
server_name: (required) Service name
DESTRUCTIVE — removes the nginx config file. Always confirm with user before executing.
mcp__swag-mcp__swag
action: "logs"
log_type: (optional) "access", "error", "fail2ban", "letsencrypt" — default "error"
mcp__swag-mcp__swag
action: "backups"
Lists available configuration backups.
mcp__swag-mcp__swag
action: "health_check"
server_name: (optional) Check specific service — omit for all
Probes whether proxied services are accessible.
action: "list" — confirm no existing config for the serviceaction: "create" — create the config with upstream URL and auth methodaction: "health_check" — verify the service is accessibleaction: "view" — confirm current configaction: "update" — set new upstream URLaction: "health_check" — verifyaction: "health_check" — check what's failingaction: "logs" — review error/access logsAlways confirm before:
action: "remove" — permanently deletes the proxy configaction: "edit" — modifies existing config (non-reversible without backup)The server manages configs at the path configured via SWAG_MCP_PROXY_CONFS_PATH or the SSH URI in SWAG_MCP_PROXY_CONFS_URI. Plugin userConfig is projected through swag setup repair into ~/.swag-mcp/.env; existing local secrets are preserved unless a replacement option is supplied.
subdomain configs require a wildcard DNS entry or per-subdomain record pointing to SWAGsubfolder configs proxy via path prefix (e.g. https://domain.com/sonarr/)authelia and authentik require those services to be running and configured