MCP server for Safe4 payment authorization decisions, enabling agents to request authorization decisions through the Model Context Protocol with x402 v2 payment support
Both tools have minimal schema definition and weak descriptions. safe4_price has an empty input schema ({}), violating the requirement that parameters must have types and descriptions. safe4_authorize has a complex input schema with 10 parameters, but descriptions are generic and lack actionable guidance. Neither tool documents output schemas. Descriptions are under 100 chars and lack context on when/why to use each tool. No error handling guidance, no parameter constraints (enums, ranges), and no indication of idempotency or side effects. Tool names lack clear verb-noun structure (safe4_authorize is vague about what authorization means).
Request a Safe4 authorization decision for a purchase, optionally with x402 v2 payment signature
Fetch the x402 v2 price list for Safe4 authorization decisions without payment
safe4_price has empty input schema ({}). Tool accepts no documented parameters but likely requires configuration (endpoint, network, rail preference). Undocumented parameters force LLMs to guess.
safe4_authorize parameters lack descriptions and constraints. 'amount' and 'currency' have generic descriptions but no format guidance (e.g., decimal places, ISO 4217 codes). 'allowed_service_categories' is an array with no item type or enum. LLMs cannot validate inputs without explicit constraints.
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract required fields (e.g., does safe4_price return a price list structure? Does safe4_authorize return a decision + signature?). Breaks tool chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2025-06-18+ | v2 |
Tool descriptions do not indicate side effects or idempotency. safe4_authorize 'Request a Safe4 authorization decision', does this charge the user? Is it idempotent? Can it be retried safely? Agents need this to plan error recovery.
No error handling guidance. If authorization fails (insufficient funds, invalid signature, network mismatch), what should the LLM do? Retry? Ask user? Call safe4_price first? Silent failures block agent recovery.