An MCP server that enables agents to search for and pay for x402 resources and MCP tools on the Stellar Bazaar, with payment settlement and discovery capabilities.
Three tools with mixed quality. bazaar_search and bazaar_pay_and_call have detailed schemas and descriptions (150-200 chars), but summarize_text is trivial (11 chars). All tools have proper input schemas with types and descriptions. bazaar_pay_and_call uses nested object schemas (expected.properties) which is correct but complex. No error handling guidance, no output schemas documented, and no tool annotations (readOnlyHint/destructiveHint). bazaar_pay_and_call is a WRITE operation that modifies blockchain state but lacks confirmation/dry-run pattern.
Pay for a discovered MCP tool on Stellar and invoke it. Re-fetches live payment requirements first and refuses to pay if they differ from what was discovered, or if the price exceeds maxAmount. Returns the tool output plus payment evidence.
Search the Stellar Bazaar for paid x402 resources and MCP tools by natural-language intent. Returns payment terms and input schemas so a caller can decide whether a result is worth paying for. Returns an abstention with a reason when nothing is relevant enough to recommend.
Summarize a block of text into a single short line.
summarize_text has trivial description (11 chars: 'Summarize a block of text into a single short line.'). LLM cannot determine when to use this tool vs alternatives.
bazaar_pay_and_call performs irreversible blockchain payment (WRITE risk) but lacks confirmation/dry-run pattern. No error guidance on payment failures, insufficient funds, or price mismatches. Agents cannot safely retry.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., what does bazaar_search return? Is it a list? Does it include payment terms?). Breaks tool chaining.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). bazaar_search is READ_ONLY and bazaar_pay_and_call is WRITE, but this is not declared in schema. Agents cannot reason about safety or retry semantics.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
bazaar_pay_and_call 'expected' parameter uses nested object schema (properties: {network, scheme, asset, payTo, amount}). No guidance on what happens if live terms differ. Error message should be: 'Price mismatch: expected X, got Y, refusing payment.'