http_fetch
ADR-164 §5.1.8 — HTTP probe primitive for business-pod ops benches (synthetic 200/500 endpoint checks, third-party status pages). Default-secure: blocks file://, ftp://, RFC-1918 / loopback / link-local hosts unless CLAUDE_FLOW_HTTP_FETCH_ALLOW_PRIVATE=1, and rejects Authorization / Cookie / X-Au...
This record as markdown: /tools/ruflo/http-fetch.md
What http_fetch does on Ruflo
AI agents call http_fetch to retrieve information from Ruflo without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.
Why http_fetch is rated Low
http_fetch retrieves data from HTTP endpoints and checks their status with no side effects on the retrieved resource. This is fundamentally a Read operation. Severity is medium rather than low because: (1) an agent could be manipulated to probe internal/sensitive endpoints if security controls (environment variables CLAUDE_FLOW_HTTP_FETCH_ALLOW_PRIVATE, CLAUDE_FLOW_HTTP_FETCH_ALLOW_AUTH) are misconfigured, (2)…
From the tool's definition Tool is described as 'HTTP probe primitive' for 'synthetic 200/500 endpoint checks, third-party status pages' — core functionality is retrieving HTTP responses without modification.
Attacks that exploit this kind of access
The rule that runs http_fetch safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Ruflo, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For http_fetch, this is the rule to start with:
http_fetch is read-only, so it stays allowed. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Ruflo, apply this rule, and every http_fetch call is checked against it from then on.
Questions about http_fetch
ADR-164 §5.1.8 — HTTP probe primitive for business-pod ops benches (synthetic 200/500 endpoint checks, third-party status pages). Default-secure: blocks file://, ftp://, RFC-1918 / loopback / link-local hosts unless CLAUDE_FLOW_HTTP_FETCH_ALLOW_PRIVATE=1, and rejects Authorization / Cookie / X-Auth-* headers unless CLAUDE_FLOW_HTTP_FETCH_ALLOW_AUTH=1. Hard 30s timeout (60s ceiling), response truncated to 256 KB (1 MB ceiling), default User-Agent ruflo-http-fetch/1.0. Use when a pod or smoke contract needs a guarded HTTP probe — calling Node fetch() directly is wrong because it skips the URL allowlist and header sanitization that ADR-164 mandates for autopilot mode. Pair with the ops-pod bench in plugins/ruflo-business-pods/templates/ops.json (the §4.4 synthetic-endpoint test). It is categorised as a Read tool in the Ruflo MCP Server, which means it retrieves data without modifying state.
Register the Ruflo MCP server in PolicyLayer and add a rule for http_fetch: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Ruflo. Nothing to install.
http_fetch is a Read tool with low risk. Read-only tools are generally safe to allow by default.
Yes. Add a rate_limit block to the http_fetch rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for http_fetch. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
http_fetch is provided by the Ruflo MCP server (ruvnet/ruflo). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Ruflo, and thousands of servers like it.
This server
Across the catalogue