Pay-per-request governance APIs for AI agents using x402. Check budgets, log payments, classify invoices, and generate audit-ready spending records. Built for autonomous agents, USDC/Base payments, and JPY/JPYC reporting workflows. Also supports duplicate lookup prevention and market data budget control for AI agents using paid data APIs.
Server exposes 5 tools with HTTP transport and x402 payment integration. All tools have descriptions and input schemas visible in main.py. However, critical gaps undermine quality: (1) Parameter descriptions are sparse or missing context, e.g., 'agent_id' lacks guidance on format/resolution; (2) No output schemas documented, LLMs cannot predict response structure; (3) Alias parameters (requested_amount/amount, target_api/api_url) create ambiguity and violate single-responsibility naming; (4) Error handling is absent, no recovery guidance or actionable error messages; (5) Tool names lack clear verb-noun structure (budget_check, budget_record, record_payment are vague about side effects). Baseline: 549 production tools average 194-char descriptions; these average ~80 chars with minimal context. No tool reaches A-grade quality.
Check budget and approve/deny AI agent spending with x402 payment verification
Record a budget transaction for an AI agent
Generate detailed spending report for agent
Classify an invoice or payment record for tax/accounting purposes
Log a completed x402 payment
No output schemas documented. LLMs cannot predict response structure, forcing them to guess field names and types. This breaks tool chaining and increases hallucination risk.
Alias parameters (requested_amount/amount, target_api/api_url) violate single-responsibility principle. LLMs must reason about which to use, increasing errors. Consolidate to one canonical name per parameter.
Parameter descriptions lack actionable context. 'agent_id' has no guidance on format (UUID? alphanumeric? max length?). 'currency' lists options but no default behavior if unsupported. Descriptions average 80 chars; baseline is 194 chars.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If budget_check denies a request, the tool provides no next steps. If a transaction fails, no actionable error message guides the LLM to retry or escalate.
Tool names lack clear verb-noun structure. 'budget_check' is ambiguous (check what? approve? deny?). 'budget_record' does not clarify whether it records a transaction or a policy. Rename to verify_budget_approval, log_transaction, etc.