Skip to main content
Glama
ShellFrameAI

AgentSecure Community

Official

agentsecure.http.request

Send credential-bearing HTTP(S) requests using ${ENV_NAME} placeholders, enforcing destination policies and redacting secrets from responses.

Instructions

Send one HTTP(S) request that needs a configured secret, using ${ENV_NAME} placeholders instead of raw credentials. Checks project destination policy before resolving secrets and applies configured vault-alias host restrictions; calls without placeholders are blocked (use ordinary network tools for those). Performs the requested remote operation, does not follow redirects, and revokes temporary alias grants afterward. Returns blocked=false, status, reason, headers, and a UTF-8 body, with response body/header values sanitized for known secrets; HTTP error statuses are still responses. Blocked calls return blocked=true, reason, rule_id, and sometimes allow_command; configuration errors may instead be MCP errors. This is not a sandbox for other network tools. Example: {"url": "https://api.example.com/me", "headers": {"Authorization": "Bearer ${API_KEY}"}} requires that host and API_KEY to be configured and approved.

Input Schema

NameRequiredDescriptionDefault
ttlNoLifetime of temporary vault-alias grants; defaults to 2h. Positive integer plus optional s, m, h, or d (bare number means seconds), at most 24h, e.g. 30m. Grants are revoked after the request; this is not the HTTP timeout.
urlYesAbsolute http:// or https:// URL with a host approved by project policy. Placeholders may appear in the path/query, never the host or port. Prefer HTTPS.
bodyNoUTF-8 text request body, optionally containing placeholders; defaults to empty. Ignored when a non-null json payload is supplied.
jsonNoJSON-serializable request payload. When supplied and non-null, overrides body and sets the exact Content-Type header key to application/json unless already provided. Placeholders are replaced in string values, not object keys.
queryNoQuery name/value map appended to any URL query; defaults to {}. Values are stringified and URL-encoded; string values may contain placeholders. Arrays are not expanded into repeated parameters.
methodNoHTTP method, e.g. GET or POST; defaults to GET and is uppercased. Choose a method appropriate for the authorized operation.
headersNoHeader name/value map; defaults to {} and values are converted to strings. Put secret placeholders in values, e.g. {"Authorization": "Bearer ${API_KEY}"}.
verify_tlsNoWhether to verify HTTPS certificates; defaults to true. False disables verification and weakens protection; leave enabled for normal use. Has no effect on HTTP.
timeout_secondsNoConnection/socket timeout in seconds, not an overall task deadline. Use a positive number; omission or 0 uses 30 seconds.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • addedInput schema / properties / body / description
      Added value: +"UTF-8 text request body, optionally containing placeholders; defaults to empty. Ignored when a non-null json payload is supplied."
    • addedInput schema / properties / headers / description
      Added value: +"Header name/value map; defaults to {} and values are converted to strings. Put secret placeholders in values, e.g. {\"Authorization\": \"Bearer ${API_KEY}\"}."
    • addedInput schema / properties / json / description
      Added value: +"JSON-serializable request payload. When supplied and non-null, overrides body and sets the exact Content-Type header key to application/json unless already provided. Placeholders are replaced in string values, not object keys."
    • addedInput schema / properties / method / description
      Added value: +"HTTP method, e.g. GET or POST; defaults to GET and is uppercased. Choose a method appropriate for the authorized operation."
    • addedInput schema / properties / query / description
      Added value: +"Query name/value map appended to any URL query; defaults to {}. Values are stringified and URL-encoded; string values may contain placeholders. Arrays are not expanded into repeated parameters."
    • addedInput schema / properties / timeout_seconds / description
      Added value: +"Connection/socket timeout in seconds, not an overall task deadline. Use a positive number; omission or 0 uses 30 seconds."
    • addedInput schema / properties / ttl / description
      Added value: +"Lifetime of temporary vault-alias grants; defaults to 2h. Positive integer plus optional s, m, h, or d (bare number means seconds), at most 24h, e.g. 30m. Grants are revoked after the request; this is not the HTTP timeout."
    • addedInput schema / properties / url / description
      Added value: +"Absolute http:// or https:// URL with a host approved by project policy. Placeholders may appear in the path/query, never the host or port. Prefer HTTPS."
    • addedInput schema / properties / verify_tls / description
      Added value: +"Whether to verify HTTPS certificates; defaults to true. False disables verification and weakens protection; leave enabled for normal use. Has no effect on HTTP."
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With zero annotations the description fully carries the behavioral burden: destination-policy check ordering, vault-alias host restrictions, no redirect following, temporary grant revocation, secret sanitization of response bodies and headers, and the crucial semantic that HTTP error statuses are still returned as responses while config errors may surface as MCP errors. That is exactly the disclosure a mutation-capable network tool needs.

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

Conciseness4/5

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

Front-loaded with purpose and the blocking rule, and every clause carries distinct information (policy check, redirects, revocation, return shape, error semantics). It is a dense run-on paragraph that could be split for scanability, but little is genuinely wasteful for a 9-parameter tool.

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

Completeness5/5

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

No output schema exists, yet the description enumerates both success (blocked=false, status, reason, headers, UTF-8 body) and blocked (blocked=true, reason, rule_id, allow_command) return shapes plus sanitization behavior. Combined with 100% schema coverage and a worked example, an agent has everything needed to call it and interpret results.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description goes beyond it by demonstrating placeholder placement in headers with a concrete example and stating the approval requirement for both host and secret name. It adds interpretation (the operation is authorized only if host and secret are approved) rather than merely restating field types.

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?

States a specific verb+resource (send one HTTP(S) request) plus the defining constraint that distinguishes it from any other HTTP tool: it requires ${ENV_NAME} secret placeholders. The final clause explicitly disclaims being a sandbox for other network tools, so an agent can immediately tell this apart from ordinary fetch tools and the agentsecure.* siblings.

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?

Gives an explicit when-not rule ("calls without placeholders are blocked (use ordinary network tools for those)") and prerequisites (host and secret must be configured and approved). It does not route to a named sibling such as request_approval when a call comes back blocked, though the mention of allow_command hints at that path without stating it.

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