Skip to main content
Glama

Mahshar

Execute a Mahshar API call

execute_api_call
Destructive

Paid execution uses two calls to this same tool. First call without payment_signature and without prepared_call_token; the result returns status payment_required, the live payment challenge, a prepared_call_token, and normalized prepared-call arguments. Sign only that returned challenge externally with the caller's own wallet. Then call this same tool again with identical API/call arguments plus the exact returned prepared_call_token and the externally generated payment_signature; do not change any call argument between calls. Mahshar never accepts private keys, never signs on behalf of the caller, and never custodies buyer funds. If a signed submission returns transport_outcome_unknown, do not create a fresh authorization. Use get_purchase_response with the returned purchase capability for durable response recovery.

Input Schema

NameRequiredDescriptionDefault
bodyNo
api_idYes
path_valuesNo
buyer_walletYes
query_valuesNo
payment_signatureNoSensitive Payment-Signature generated externally by the caller wallet from the returned live challenge. Supply it only with the exact prepared_call_token; never provide a private key, and do not log or share this value.
prepared_call_tokenNoSensitive bearer value returned by the unsigned call. Supply this exact value only with payment_signature and identical API/call arguments; do not log or share it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true; the description adds genuinely new behavioral facts beyond them: the tool never accepts private keys, never signs on the caller's behalf, never custodies funds, and returns a specific payment_required status with a live challenge and prepared_call_token. What it does not add is any sense of what the destructive/open-world behavior means in practice (e.g. whether a paid call can be reversed or what a successful response contains).

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

Conciseness3/5

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

The text is dense with no obvious filler and every sentence carries operational content, but it is not front-loaded: it opens mid-mechanism ('Paid execution uses two calls to this same tool') rather than with a one-line statement of what the tool does, and the multi-clause sentences force the reader to unpack the sequencing.

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 7-parameter, nested-object, destructive, open-world tool with no output schema, the description covers the failure/retry path and the payment handshake well but leaves the success path opaque — an agent cannot tell what a completed call returns or how the API's own response is surfaced. The result is adequate on the hard parts and silent on the common case.

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 only 29%, so the description must compensate, and it does so only for the two sensitive parameters (payment_signature and prepared_call_token) by explaining their origin and the constraint that arguments must not change between calls. The five remaining parameters — api_id, buyer_wallet, body, path_values, query_values — get no semantic treatment beyond the phrase 'identical API/call arguments'.

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 title plus the opening sentence establish that this tool executes a Mahshar API call, and the description distinguishes it from get_purchase_response by assigning that sibling the recovery role. However, the description never plainly states the primary operation (invoke the API identified by api_id with path/query/body arguments) before diving into payment mechanics, so the core purpose must be inferred from the mechanics.

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?

It gives an explicit two-call protocol with the exact conditions for each call (first without payment_signature/prepared_call_token, second with identical arguments plus both), plus an explicit negative instruction: on transport_outcome_unknown, do not create a fresh authorization, use get_purchase_response instead. That is when-to-use, when-not-to-do-something, and the named alternative all in one place.

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