Skip to main content
Glama

Fetch data

fetch_data
Read-only

Fetches one data response: GET data.forum.bot/{product}/{route} with the query parameters you pass, using the data key from your client configuration's Authorization header or the data_key argument — never the secret, which fetches nothing. A successful call is billed the product's price per call; a refused call costs nothing. The result carries the payload with the platform's meta block (licence and attribution) and the rate-limit headers; the balance is read with account_status, never from a data response. Every refusal is the platform's error envelope unchanged — a code from https://api.forum.bot/errors.json; 402 payment_required means the key is known but cannot pay for this product now, and 401 invalid_key means it is authorized for no product at all, most often because every credit is spent. Both carry an action_url: a human tops up there (get_topup_link returns the page) and the same key serves again within the engine's build interval plus the region's poll interval.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
routeYesa route from get_product, without the product prefix — e.g. current or timeline/1h
paramsNoquery parameters, sent as given; the parameters a route requires are in get_product
productYesa product slug from list_products
data_keyNoonly when the client cannot send an Authorization header — the data_key.key sign_up returned in this session; when both are present the argument wins

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNo
faultNo
usageNo
recordNo
statusNo
accountNo
headersNo
upstreamNo
body_textNo
configureNo
transportNo
key_sourceNo
request_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, indicating a safe read operation. The description adds significant behavioral context: it explains that successful calls are billed, refused calls cost nothing, and details the error envelope structure with specific HTTP status codes (402, 401) and their meanings. It also mentions the rate-limit headers. However, it doesn't delve into what happens on success in terms of data structure beyond 'meta block', but annotations cover safety.

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?

The description is a single dense paragraph, which is structured but lengthy. It front-loads the core action and endpoint, then explains billing, errors, and alternatives. Each sentence provides valuable information, but the density may make it less scannable. It's not overly verbose, but could be broken into shorter sentences for clarity.

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?

Given the tool's complexity (billing, authentication, error handling) and the rich output schema, the description covers critical details: billing per call, balance read via account_status, error envelope with action_url, and top-up flow. The output schema exists, so return values need not be detailed. The description is complete for an agent to call this tool correctly in various scenarios.

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 description coverage is 100%, so the schema already documents all parameters well. The description adds extra context for the 'data_key' parameter, explaining it's only when the client cannot send an Authorization header, and clarifies the precedence when both are present. It also gives hints about 'route' and 'params' referencing get_product, but doesn't add much beyond schema. Baseline 3 is appropriate as schema does the heavy lifting.

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?

The description clearly states that the tool fetches one data response via a GET request to a specific endpoint, with the product and route as key parameters. It distinguishes itself from siblings by mentioning account_status for balance and get_topup_link for top-up, but it doesn't explicitly differentiate from other fetch-related tools, though none are present. The verb 'fetches' and resource 'data response' are specific.

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

Usage Guidelines5/5

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

The description gives explicit guidance on when to use this tool: it explains that the balance is read with account_status (not from a data response), and that get_topup_link is used for top-up. It also explains how to handle errors, such as using the action_url for top-up. This clearly excludes alternatives and provides context for when to use this tool.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources