Skip to main content
Glama

HTTP request through a VPN

http_request
Destructive

Send HTTP(S) requests through a named VPN profile's tunnel, auto-connecting if needed, to call internal APIs without changing host routes or joining the VPN.

Instructions

Sends an HTTP(S) request from inside the profile's tunnel (connecting first if needed) and returns status, headers and body. Text bodies come back as utf8, binary as base64; bodies over maxBodyBytes are truncated. Redirects are not followed unless followRedirects is set.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "profile": "<profile>",
      "url": "<url>"
    },
    "name": "http_request"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYeshttp(s) URL, resolved and fetched inside the tunnel.
bodyNoRequest body as text.
methodNoGET
headersNo
profileYesProfile name from list_profiles. Connects automatically if needed.
insecureNoSkip TLS verification (self-signed internal hosts).
bodyBase64NoRequest body as base64, for binary payloads.
maxBodyBytesNo
timeoutSecondsNo
followRedirectsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations only declare openWorldHint and destructiveHint, so the description carries the real burden and delivers: text vs base64 encoding, truncation above maxBodyBytes, and the fact that redirects are not followed by default. It does not state how non-2xx responses are surfaced or that the request may mutate remote state (the latter is at least covered by destructiveHint).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose and return shape, then encoding rules, then redirect behavior. No filler and every clause conveys information an agent needs to call and interpret the result.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter, no-output-schema tool, the description supplies the return shape (status, headers, body), payload encoding, and truncation limit — exactly what the missing output schema would otherwise provide. It stops short of describing error surfaces and header/auth expectations, which are the remaining gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 10 parameters and only 50% schema coverage, the description adds meaning for maxBodyBytes (truncation) and followRedirects (default off), which the schema does not explain beyond a default value. It says nothing about body vs bodyBase64 selection, method, headers, insecure, or timeoutSeconds, so the remaining gaps are only partly compensated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ("Sends an HTTP(S) request") and adds the crucial scoping detail that it runs "from inside the profile's tunnel," plus what it returns. No sibling (status, connect, disconnect, list_profiles, refresh) performs HTTP requests, so the tool is unmistakably distinguishable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical "connecting first if needed" tells the agent it does not need to call connect beforehand, which is the main routing decision against the connect/disconnect siblings. It gives no explicit when-not guidance (e.g., when to prefer connect + something else) and no prerequisites, but the usage context is clear enough to act on.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.