Skip to main content
Glama

http_request

Destructive

Send RESTful HTTP requests with automatic credential and cookie injection from the active environment. Evaluate assertions and log request/response details to the history database.

Instructions

Send a RESTful HTTP request. Automatically injects credentials and cookies from the active environment. Evaluates assertions and logs request/response details to history database.

Input Schema

NameRequiredDescriptionDefault
urlYesRequest path or full URL
bodyNoRequest payload (string or stringified JSON)
methodNoHTTP method (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, or any custom method)GET
paramsNo
headersNo
timeoutNoRequest timeout in ms (overrides environment default)
bodyTypeNojson
cacheTtlNoCache TTL in ms for GET/HEAD requests. Same URL within TTL returns cached response. Saves network calls.
assertionsNo
fileFieldsNoFile uploads: {"fieldName": "/path/to/file"} for form-data body type
retryCountNoAuto-retry count on network errors or 5xx (default: 0)
retryDelayNoDelay between retries in ms (default: 1000)
returnBodyNoSet false to skip response body (silent mode). Returns only status + duration. Saves tokens.
assertBeforeNoConditional request: only return full response if condition is met (saves tokens on failures)
jsonpathFilterNoExtract specific parts of response payload
confirmFileAccessNoMust be true when fileFields reads local files
maxResponseLengthNoMax response body length in chars (default: 15000). Set higher for full responses, lower to save tokens.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.4

TDQS

A3.7/5.0
Behavior4/5

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

Despite annotations covering the risk profile (destructive=true, openWorld=true, idempotent=false), the description adds genuinely useful behavior: credentials and cookies are auto-injected from the active environment, assertions run automatically, and every request/response is persisted to the history database. It does not warn that non-GET methods can mutate remote state, which is the main residual gap.

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 short sentences, front-loaded with the core action, then the two behaviors an agent most needs to know. No filler or repetition of schema content.

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

Completeness3/5

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

For a 17-parameter, nested-object, destructive, open-world tool with no output schema, the description covers environment injection and history logging but says nothing about the response shape or token-saving controls (returnBody, maxResponseLength, jsonpathFilter) that materially affect how the tool should be called.

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?

Schema coverage is 76% across 17 parameters, so the schema itself documents most fields. The description adds nothing parameter-specific — it only alludes to assertions and history logging, without clarifying bodyType, returnBody, jsonpathFilter, or confirmFileAccess semantics beyond what the schema says.

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

Purpose4/5

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

States a specific verb+resource ("Send a RESTful HTTP request") and adds two distinctive behaviors: credential/cookie injection and assertion evaluation. It doesn't explicitly name sibling alternatives like graphql_request or the ws_* tools, so an agent must infer which transport to use, but the purpose itself is unambiguous.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: this is the generic HTTP transport, while graphql_request and ws_connect exist in the sibling set for other protocols. The description never says when to pick this over those, and offers no exclusions or prerequisites beyond the credential-injection note.

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