Merchant-side MCP server for U.CASH Pay: create checkouts, verify webhooks, read settings/integrations. Non-custodial.
Server has 4 tools with basic descriptions and partial schemas. All tools have descriptions (10-100 chars), but parameter schemas lack type information and descriptions. create_checkout has the most complete schema with 4 parameters, but none have descriptions. verify_webhook, get_integrations, and get_settings have minimal or no input schemas. Output is JSON strings, not structured objects. No error handling guidance, no pagination, no idempotent hints. Naming is verb-forward (create_, verify_, get_) but descriptions are terse and lack context on when/why to use each tool.
Create a hosted U.CASH Pay checkout (crypto + cards). Returns payment_url + transaction_id.
Read the merchant's integration credentials (Discord/Telegram/BigCommerce/Ecwid/Wix) from /v1/integrations.
Read the merchant's safe agent settings (/v1/settings).
Verify a U.CASH Pay settlement webhook (X-Webhook-Signature: t=..,v1=..). Returns {verified, error}.
Parameter descriptions missing. create_checkout params (amount, currency, title, external_reference) have no descriptions explaining format, constraints, or purpose. LLMs cannot infer whether 'amount' is a string like '100.50' or '100', or what currency codes are valid.
No input schemas for get_integrations and get_settings. Both tools accept empty input but have no explicit schema definition.
Output is raw JSON strings, not structured objects. All tools return json.dumps() of dicts, forcing LLMs to parse strings. Should return structured responses with typed fields (e.g. {ok: bool, payment_url: string, transaction_id: int}).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
No error recovery guidance. create_checkout returns {ok: false} with no explanation of why or what to do next. verify_webhook returns {verified: false, error: '...'} but errors are terse ('missing t or v1', 'timestamp expired'). LLMs need actionable next steps.
Tool descriptions lack context on when/why to use. 'Create a hosted U.CASH Pay checkout' does not explain prerequisites (e.g. UCASH_CLOUD_TOKEN must be set), what happens on success, or when to call verify_webhook vs get_settings. Descriptions should be 50-200 chars with clear intent.