Mahshar
Server Details
Free API discovery for AI agents; API execution may require USDC payments via x402 on Arc Mainnet.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2026-07-28
- URL
TDQS
Scored across 4 tools
Each tool maps to a distinct step in the buyer lifecycle: discovery (search_apis), contract inspection (get_api), paid execution (execute_api_call), and durable recovery (get_purchase_response). The two purchase-related tools are clearly separated by purpose (executing vs. recovering an already-paid call), so an agent should not confuse them.
All names use snake_case with a leading verb, giving a predictable verb_noun shape. Minor deviation: resource naming flips between plural and singular ('search_apis' vs. 'get_api'), and 'execute_api_call' adds an extra noun, but the pattern remains readable and consistent overall.
Four tools is intentionally lean but covers the essential agent-facing flow of discover, inspect, execute, and recover. It is slightly minimal—no purchase history or balance/wallet inspection—but each tool earns its place and the surface does not feel padded.
The core lifecycle (search listings, fetch a listing contract, execute a paid call, recover a durable response) is fully represented, including a recovery path for uncertain transport outcomes. Gaps are minor: no tool to list prior purchases or check account/balance state, but agents can still complete the primary workflow.
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 Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs113 npm55 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1618 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.