Mahshar
Server Details
Free API discovery for AI agents; execution may require USDC/x402 payments on Arc Mainnet.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2026-07-28
- URL
- Repository
- sharken3948/Mahshar
- GitHub Stars
- 3
TDQS
Scored across 4 tools
Each tool maps to a distinct stage of the marketplace workflow: discovery (search_apis), inspection (get_api), paid execution (execute_api_call), and durable recovery (get_purchase_response). The descriptions explicitly delineate the boundary between execute_api_call and get_purchase_response so an agent knows which to use after an unknown transport outcome.
All names are snake_case with a leading verb (search_, get_, get_, execute_), which is consistent and predictable. The only minor wrinkle is that 'get_api' and 'get_purchase_response' use the same verb for very different objects, making one slightly vaguer than the rest.
Four tools is compact and each one earns its place in the buyer-side flow, with the two-phase paid call intentionally folded into one tool rather than split. It sits near the thin end but is not under-scoped for a focused execution client.
Discovery, contract inspection, paid execution, and response recovery are covered, so the core purchase lifecycle is closed. However there is no way to list prior purchases or check purchase status other than recovery, and no seller-side or wallet/funds visibility, leaving noticeable gaps for broader use.
Available Tools
4 toolsexecute_api_callExecute a Mahshar API callADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| api_id | Yes | ||
| path_values | No | ||
| buyer_wallet | Yes | ||
| query_values | No | ||
| payment_signature | No | Sensitive 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_token | No | Sensitive 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. |
TDQS
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.
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.
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.
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.
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.
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.
get_apiGet Mahshar APIBRead-onlyIdempotentInspect
Return the public Mahshar agent execution contract for one active listing.
| Name | Required | Description | Default |
|---|---|---|---|
| api_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is fully covered. The description adds two useful non-annotation facts: the contract is the 'public' variant, and the listing must be 'active' (implying inactive ids fail). It omits return shape and error behavior, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, and the resource being returned is front-loaded. Nothing needs trimming or reordering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with rich annotations this is close to sufficient, but with no output schema the agent gets no idea what the 'execution contract' contains. A brief note on the returned payload or the active-listing failure mode would close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the schema documents only that api_id is a uuid. The description partly compensates by framing it as identifying 'one active listing', which constrains valid values, but it does not restate the uuid format or explain what to do with a non-active or unknown id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and a specific resource ('the public Mahshar agent execution contract') scoped to 'one active listing'. An agent can tell this is a single-resource fetch rather than a search or execution call, though it does not explicitly name which sibling to use instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement and no mention of alternatives such as search_apis to find an id first or execute_api_call to act on the contract. The only usage signal is the implicit constraint that the target must be an 'active listing', which is a precondition rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_purchase_responseRecover a paid Mahshar API responseBRead-onlyIdempotentInspect
Retrieve the exact durable response for one paid purchase using the purchase capability returned by paid execution. Recovery uses that bearer capability only and never falls back to a browser session. The capability is sensitive: do not log or share it.
| Name | Required | Description | Default |
|---|---|---|---|
| api_id | Yes | ||
| buyer_wallet | Yes | ||
| purchase_access_token | Yes | Bearer-sensitive purchase capability returned by paid execution. It authorizes recovery of that exact purchase response; do not log or share it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds real value beyond that by disclosing the auth model (bearer capability only, no session fallback) and the sensitivity constraint (do not log or share the token), plus that the stored response is durable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action front-loaded and the security warning placed last. No filler, though the final sensitivity note is partly redundant with the schema's description of the token.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the trigger, auth model, and sensitivity for a three-parameter read tool with no output schema. It falls short on parameter meaning and says nothing about what the recovered response contains or how errors (e.g., invalid or expired capability) are surfaced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and only purchase_access_token carries a schema description. The description does not explain what api_id or buyer_wallet mean or why the wallet must be supplied alongside the capability, so the two undocumented parameters are left ambiguous in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("retrieve the exact durable response for one paid purchase") and scopes it to purchases made via paid execution. It distinguishes this from a session-based retrieval path, though it never names the sibling tools that could be confused with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the prerequisite (the purchase capability returned by paid execution) and the exclusion (never falls back to a browser session), which implies when to use it. However, it gives no explicit guidance on when an agent should call this versus execute_api_call or get_api.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_apisSearch Mahshar APIsBRead-onlyIdempotentInspect
Search or page public active Mahshar API listing summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds meaningful scope ('public active' only) and return type ('listing summaries'), but does not disclose pagination behavior, result ordering, or that no search-query parameter exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It is efficient, though its extreme brevity leaves some useful context unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with rich safety annotations and no output schema, the description covers the basic purpose and scope. However, it leaves gaps around what a 'summary' contains, how pagination works, and the absence of a search-query parameter, which could confuse an agent expecting keyword search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for limit and offset, so the description must compensate. It only uses the word 'page' without explaining what limit/offset control, their defaults, or their allowed ranges; an agent still lacks semantic detail beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Search or page') and resource ('public active Mahshar API listing summaries'), making it clear this is a discovery/list tool rather than a detail or execution tool. It implicitly distinguishes from siblings like get_api and execute_api_call by focusing on listing summaries, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Search or page' suggests browsing available APIs, but the description offers no explicit guidance on when to use this versus get_api (for details) or execute_api_call (to invoke). There are no exclusions or alternative routing instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
execute_api_call - First observed
get_api - First observed
get_purchase_response - First observed
search_apis
Related MCP Connectors
API discovery and x402 paid execution via MCP. Search by natural-language, call with USDC payment on Arbitrum, Base, BNB, Solana, SEI
AI agents on Arc: search paid x402 APIs, ERC-8004 reputation, Argus launch data paid in USDC.
Search settlement-verified x402 APIs for free. Pay providers in USDC on Base, Solana or Algorand.
Pay-per-use tool API for AI agents. Free tier, x402 USDC micropayments, or API key.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceDiscovers and queries x402-payable APIs at runtime — enables autonomous agents to find, evaluate, and pay for services via USDC micropayments on Base without API keys or subscriptions.MIT

@1ly/mcp-serverofficial
AlicenseNot gradedqualityFmaintenanceEnables AI agents to discover, pay for, and sell APIs using crypto on Solana and Base networks, with support for automated x402 payments.97 npm3MIT- AlicenseAqualityDmaintenanceEnables AI agents to discover and pay per call in USDC over x402 for Arc market search, token intelligence, price candles, wallet and trade data, swap quotes, and routed third-party agents, with spending caps and budget limits. Paid tools reserve their price in a local ledger before signing, return unsigned transactions, and refund automatically when a routed seller fails.8282 npmMIT
- AlicenseBqualityBmaintenanceDiscover, pay for, execute, and publish monetized APIs directly from your agent, settled per call in USDC over x402, through the Model Context Protocol.4218 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.