Replies: 8 comments 11 replies
|
This fiscal-safety proposal matches a producer-side experiment we have been running in ASM. Two boundaries from that work may help here:
Rather than asking the Registry to standardize these fields immediately, would a smaller producer-coverage experiment be useful: willing producers publish an optional namespaced ASM block under existing publisher-provided |
|
I built something for exactly this question, a small MCP server called capacity-attest. It doesn't answer where this belongs (registry metadata vs doc convention), but it does give a concrete shape for what the evidence itself could look like: after a paid call settles, the paying agent signs a small record (delivered: yes/no/partial, what was promised, evidence hash, the settlement reference) and it goes into a public append-only history keyed by the seller. Anyone can verify the signature offline, no registry involvement needed. Whether that belongs inline in registry metadata or as a separate, queryable thing (which is what I went with) is a real open question, I don't have a strong opinion on which is better for the registry itself. But if a concrete worked example helps: I ran this against a real live paid endpoint today, a real $0.001 USDC payment on Base, real signed claim recorded and read back. Happy to share the actual transaction and claim if useful. |
|
This is exactly the gap we hit shipping a paid MCP server, so a concrete data point in case it's useful. We built Two places payment info lives today, which is relevant to the metadata question here:
That #2 is the gap this proposal would fill. What we'd have loved as a server author: an optional Happy to share how the x402 side works if it helps ground the schema, refs: |
|
Coming back to this since it maps directly onto |
|
Thanks — let’s keep the design here so the boundary stays public and reviewable. I’m in for one narrow fixture. One correction to my earlier sketch: because the capacity claim exists only after execution, it should not be referenced directly by the pre-call DecisionReceipt. The chain should be:
For the fixture, ASM would retain only the stable claim URI, claimId, verifier profile/version, settlement reference, and verification result. The raw claim remains with capacity-attest. The test should establish content addressing, payer-signature recovery, and settlement linkage; it must not treat Could you provide one stable raw-claim URL plus the exact capacity-attest package/version or command that should verify it? Once that is available, I’ll draft the linkage fixture and tests without changing either protocol core. |
|
Thanks, this was enough to make the fixture concrete. I opened YE-YI7/asm-spec#18. It names and links capacity-attest, keeps the raw claim in tokenizen, pins The fixture explicitly leaves |
|
Merged #18: YE-YI7/asm-spec#18 @holistis, thank you for cloning and running it independently — that is much stronger evidence than a self-authored fixture alone. @EmbryoSpace, a separate BSV fixture/adapter PR against main is welcome. The boundary you described is the one to preserve: reuse the content-addressed claim shape, isolate BSV-specific signature recovery/address encoding behind the rail adapter, link to a pinned real settlement, and keep delivery, the evidenceHash preimage, task correctness, and historical ASM use as explicit non-claims unless independently proven. The Base fixture remains live by design for now; if endpoint reliability becomes a CI problem, we can add an RPC override without replacing the live-verification path. |
|
Reviewed this the same way as #18: cloned the repo and ran the test suite myself rather than reading it. 18/20 pass offline (FIXTURE_OFFLINE=1). The 2 remaining are the live WhatsOnChain settlement checks, which hit a 429 rate limit in my run, not a real failure. I queried the tx directly to confirm: Checked the adapter against capacity-attest's actual source, not just the README's claim: Good to merge from my side. |
Uh oh!
There was an error while loading. Please reload this page.
MCP server discovery is moving toward an app-store-like registry. As paid MCP servers and agent-accessible commercial tools appear, clients may need a small non-secret fiscal-safety layer before an agent is allowed to call a paid tool.
Possible optional metadata/checklist fields:
paid_action_surface— what action can create cost or settlement?approval_source— human approval, policy engine, allowance, budget rule, or none.spend_cap— per-call, per-session, daily, or monthly cap.charge_evidence— what non-secret receipt/event proves a charge happened?audit_trail— where a client/operator can verify calls and charges.revocation_path— how access is disabled or reduced.next_safe_threshold— what evidence would justify raising the cap.The goal is not to collect secrets or payment credentials in the registry. It is to help agent clients distinguish a free/tooling MCP server from one that can trigger bounded paid actions, and to make revocation/audit expectations explicit.
Question for maintainers/builders: would this fit better as optional registry metadata, a convention in server docs, or a separate checklist linked from paid-server entries?
All reactions