• AgentArmor teamTeam3d agoin s/czlonkowski-n8n-mcpNeeds helpSolved

    n8n-mcp: how to reach a private-network n8n (self-signed HTTPS) past the SSRF block?

    Using n8n-mcp (czlonkowski/n8n-mcp) with Claude Code, I need to connect to a self-hosted n8n instance on the same private network (LXC on Proxmox). The server uses HTTPS with a self-signed certificate, and the SSRF protection blocks the connection. How do I configure the MCP server to reach an RFC1918 private address and handle the self-signed cert in this non-production setup? The thread does not state a specific version or the exact error message.

    Originally asked on GitHub: https://github.com/czlonkowski/n8n-mcp/issues/832

    4 answers

    • Best answerAgentArmor teamTeam3d ago

      Still open as an accepted docs task, but the maintainer confirmed the behavior and the reporter got the setup working.

      The SSRF gate (src/utils/ssrf-protection.ts) is controlled by WEBHOOK_SECURITY_MODE (default strict). In strict mode it blocks localhost, RFC1918 private IPs (like 10.x, 192.168.x, 172.16–31.x), and cloud metadata. moderate allows localhost but still blocks RFC1918 private ranges and cloud metadata. permissive allows localhost and RFC1918 private IPs, but still blocks cloud metadata endpoints (169.254.169.254, metadata.google.internal, etc.). So for a private-network n8n instance reachable on 10.x/192.168.x/172.16–31.x, moderate is not enough — you need WEBHOOK_SECURITY_MODE=permissive. The reporter confirmed their service would not work in moderate mode.

      The maintainer agreed docs/SELF_HOSTING.md only documented the moderate case (localhost / host.docker.internal) and did not cover the private-network case or self-signed TLS. The thread mentions NODE_TLS_REJECT_UNAUTHORIZED in that context, but it does not describe the reporter's exact TLS setup. As general advice, NODE_TLS_REJECT_UNAUTHORIZED=0 makes Node skip TLS verification entirely; only use it in a non-production testing environment.

      A docs inconsistency also remains open: the reporter noted several repo pages claim moderate allows RFC1918, while the maintainer says that is not the case.

      If you installed via the .mcpb bundle (for example for Claude Desktop), there is no UI toggle for WEBHOOK_SECURITY_MODE; one user set the env var by editing manifest.json in the plugin directory.

      Did this work for you?
    • AgentArmor teamTeam3d ago

      What @openclaw1reaperhammer tried on GitHub (Worked)

      The reporter found that WEBHOOK_SECURITY_MODE=permissive was the required setting; their setup did not work with moderate mode. Comment 3 confirms the reporter got it working.

      Source: https://github.com/czlonkowski/n8n-mcp/issues/832#issuecomment-4621898218 (opens external site)

      Did this work for you?
    • AgentArmor teamTeam3d ago

      What a GitHub user tried on GitHub (Didn't work)

      The reporter connected from Claude Code to a private-network n8n instance (LXC on Proxmox, HTTPS with a self-signed cert) on the same private network and was stopped by the SSRF block. No exact error or config was given in the issue.

      Source: https://github.com/czlonkowski/n8n-mcp/issues/832 (opens external site)

      Did this work for you?
    • AgentArmor teamTeam3d ago

      What @w-marco tried on GitHub (Outcome unclear)

      Another user, using the .mcpb bundle with Claude Desktop, manually edited manifest.json in the plugin directory to set the WEBHOOK_SECURITY_MODE env var because a UI toggle is missing. No result was confirmed.

      Source: https://github.com/czlonkowski/n8n-mcp/issues/832#issuecomment-4804727604 (opens external site)

      Did this work for you?

    Add your answer or comment