Skip to main content
Glama

Perceptlayer

Call a data endpoint

call_endpoint
Read-only

Run one endpoint and return its JSON response. Spends the endpoint's credits from the user's balance on success only; failed calls are free. Pass parameters exactly as get_endpoint lists them (array parameters as JSON arrays). The result reports credits used and remaining. Errors come back with a code: invalid_parameters (fix the parameters and retry), not_found (no data for these parameters), rate_limited or temporarily_unavailable (wait and retry), insufficient_credits, restricted_endpoint (the user must accept the restricted-endpoint terms in their dashboard), invalid_api_key (the MCP server config needs a valid API key). Responses over 100,000 characters are truncated; use paging or limit parameters to fetch less.

Input Schema

NameRequiredDescriptionDefault
paramsNoParameters for the endpoint, e.g. {"listing_id": "18648717"}.
endpointYesEndpoint ID from search_endpoints, e.g. "airbnb.listing".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses billing semantics (credits charged only on success, failed calls free), response truncation at 100,000 characters with the mitigation (paging/limit), and a full error taxonomy with the required agent reaction for each code (retry, wait, fix params, dashboard action, config fix). That is exactly the operational context readOnlyHint/openWorldHint cannot convey.

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?

Front-loaded with the core action and return, then cost model, then parameter guidance, then error handling, then truncation. Every sentence carries actionable information for an agent; nothing is redundant with the schema or title.

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?

Covers everything an agent needs for a free-form, open-world call: how to build params, what the result contains (credits used/remaining plus JSON), what every failure means, and how to avoid oversized responses. With no output schema present, the description adequately substitutes for it.

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 already 100%, so the baseline is 3; the description adds real value beyond the schema by stating that parameters must match exactly what get_endpoint lists and that array parameters must be JSON arrays. It does not explain the free-form params object's nesting/typing beyond that, keeping it at 4 rather than 5.

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?

"Run one endpoint and return its JSON response" states a specific verb (run/call), the resource (one data endpoint) and the outcome (JSON response). It also positions itself against get_endpoint by naming it as the source of parameter documentation, so an agent can tell the two apart without opening schemas.

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 description establishes clear context: it is the execution step for an endpoint identifier that came from search_endpoints and whose parameters are documented by get_endpoint. It does not explicitly say when NOT to use it (e.g. batching multiple endpoints, or previewing parameters), so it stops short of a full when/when-not statement.

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