agentpay-mcp 4.1.10 → 4.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -1
- package/dist/index.js +2 -2
- package/dist/utils/authorized-cybersecurity-scan-profile.d.ts +216 -0
- package/dist/utils/authorized-cybersecurity-scan-profile.d.ts.map +1 -0
- package/dist/utils/authorized-cybersecurity-scan-profile.js +130 -0
- package/dist/utils/authorized-cybersecurity-scan-profile.js.map +1 -0
- package/dist/utils/paid-provider-health-proof.d.ts +4 -4
- package/dist/utils/paid-tool-quality-threshold.d.ts +261 -0
- package/dist/utils/paid-tool-quality-threshold.d.ts.map +1 -0
- package/dist/utils/paid-tool-quality-threshold.js +155 -0
- package/dist/utils/paid-tool-quality-threshold.js.map +1 -0
- package/dist/utils/post-quantum-spend-envelope-compatibility.d.ts +22 -0
- package/dist/utils/post-quantum-spend-envelope-compatibility.d.ts.map +1 -0
- package/dist/utils/post-quantum-spend-envelope-compatibility.js +61 -0
- package/dist/utils/post-quantum-spend-envelope-compatibility.js.map +1 -0
- package/dist/utils/wallet-action-preflight-profile.d.ts +70 -0
- package/dist/utils/wallet-action-preflight-profile.d.ts.map +1 -0
- package/dist/utils/wallet-action-preflight-profile.js +151 -0
- package/dist/utils/wallet-action-preflight-profile.js.map +1 -0
- package/dist/utils/x402-chain-neutral-gateway-profile.d.ts +66 -0
- package/dist/utils/x402-chain-neutral-gateway-profile.d.ts.map +1 -0
- package/dist/utils/x402-chain-neutral-gateway-profile.js +145 -0
- package/dist/utils/x402-chain-neutral-gateway-profile.js.map +1 -0
- package/dist/utils/x402-dynamic-paid-mcp-manifest-drift.d.ts +82 -0
- package/dist/utils/x402-dynamic-paid-mcp-manifest-drift.d.ts.map +1 -0
- package/dist/utils/x402-dynamic-paid-mcp-manifest-drift.js +158 -0
- package/dist/utils/x402-dynamic-paid-mcp-manifest-drift.js.map +1 -0
- package/dist/utils/x402-multi-ledger-receipt.d.ts +64 -0
- package/dist/utils/x402-multi-ledger-receipt.d.ts.map +1 -0
- package/dist/utils/x402-multi-ledger-receipt.js +150 -0
- package/dist/utils/x402-multi-ledger-receipt.js.map +1 -0
- package/docs/agentpay-escrow-reputation-boundary.md +64 -0
- package/docs/agentpay-five-tool-parity-proof.json +56 -0
- package/docs/agentpay-five-tool-parity-proof.md +64 -0
- package/docs/agentpay-machine-payment-directory-listing-pack.md +101 -0
- package/docs/agentpay-machine-payment-directory-listing.json +41 -0
- package/docs/agentpay-paid-proxy-discovery-listing.json +42 -0
- package/docs/authorized-cybersecurity-scan-profile.md +56 -0
- package/docs/fixtures/authorized-cybersecurity-scan-profile-agentaegis-2026-05-04.json +43 -0
- package/docs/fixtures/chain-neutral-gateway-profile-rugmunch-2026-05-03.json +43 -0
- package/docs/fixtures/dynamic-paid-mcp-manifest-rugmunch-2026-05-04-baseline.json +67 -0
- package/docs/fixtures/dynamic-paid-mcp-manifest-rugmunch-2026-05-04.json +67 -0
- package/docs/fixtures/multi-ledger-receipt-xrpl-utilities-2026-05-04.json +35 -0
- package/docs/fixtures/paid-tool-quality-threshold-strale-2026-05-04.json +53 -0
- package/docs/fixtures/wallet-action-preflight-merx-2026-05-04.json +54 -0
- package/docs/paid-mcp-proxy-discovery-readiness.md +70 -0
- package/docs/paid-tool-quality-thresholds.md +47 -0
- package/docs/post-quantum-spend-envelope-compatibility.md +37 -0
- package/docs/smithery-paid-mcp-installation.md +180 -0
- package/docs/wallet-action-preflight-profile.md +57 -0
- package/docs/x402-chain-neutral-gateway-profile.md +65 -0
- package/docs/x402-chain-neutral-gateway-profile.schema.json +75 -0
- package/docs/x402-dynamic-paid-mcp-manifest-drift.md +41 -0
- package/docs/x402-dynamic-paid-mcp-manifest-drift.schema.json +193 -0
- package/docs/x402-multi-ledger-receipt-normalization.md +57 -0
- package/docs/x402-multi-ledger-receipt-normalization.schema.json +67 -0
- package/examples/smithery-paid-mcp-installation/README.md +63 -0
- package/llms.txt +4 -0
- package/package.json +2 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# AgentPay MCP authorized cybersecurity-scan payment profile
|
|
2
|
+
|
|
3
|
+
Paid cybersecurity MCP tools are different from normal paid APIs. A bad call can scan the wrong target, burn a budget, and create a compliance problem.
|
|
4
|
+
|
|
5
|
+
AgentPay's buyer-side profile requires proof before signing:
|
|
6
|
+
|
|
7
|
+
- target authorization attestation,
|
|
8
|
+
- allowed-domain binding,
|
|
9
|
+
- allowed scan category,
|
|
10
|
+
- per-target spend cap,
|
|
11
|
+
- scan-rate policy,
|
|
12
|
+
- explicit human approval,
|
|
13
|
+
- audit receipt language that keeps target authorization, spend cap, and x402 receipt metadata together.
|
|
14
|
+
|
|
15
|
+
## Proof shape
|
|
16
|
+
|
|
17
|
+
The fixture at `docs/fixtures/authorized-cybersecurity-scan-profile-agentaegis-2026-05-04.json` models an AgentAegis-style paid scan.
|
|
18
|
+
|
|
19
|
+
Important fields:
|
|
20
|
+
|
|
21
|
+
- `scan.target_domain`: the actual domain under test.
|
|
22
|
+
- `authorization.allowed_domains`: domains the owner authorized.
|
|
23
|
+
- `authorization.allowed_scan_categories`: categories permitted for that target.
|
|
24
|
+
- `spend_policy.per_target_cap_usd`: hard cap for the target.
|
|
25
|
+
- `spend_policy.spent_for_target_usd`: current spend for that target.
|
|
26
|
+
- `rate_limit.scans_used_in_window`: anti-abuse rate state.
|
|
27
|
+
- `approval_gate.approved`: human approval before x402 signing.
|
|
28
|
+
- `audit_receipt.language`: receipt text retained for audit.
|
|
29
|
+
|
|
30
|
+
## Failure rules
|
|
31
|
+
|
|
32
|
+
The helper in `src/utils/authorized-cybersecurity-scan-profile.ts` denies payment when:
|
|
33
|
+
|
|
34
|
+
- authorization is expired or not active yet,
|
|
35
|
+
- target domain is missing from the attestation,
|
|
36
|
+
- target domain is outside buyer policy,
|
|
37
|
+
- requested scan category is not authorized,
|
|
38
|
+
- requested cost exceeds buyer policy,
|
|
39
|
+
- the request would exceed the per-target cap,
|
|
40
|
+
- rate limit is exhausted,
|
|
41
|
+
- human approval is missing,
|
|
42
|
+
- audit retention is too short,
|
|
43
|
+
- receipt language does not mention authorized target, spend cap, and x402 receipt.
|
|
44
|
+
|
|
45
|
+
This keeps paid security tools usable without letting an agent turn x402 into an unauthorized scanner.
|
|
46
|
+
|
|
47
|
+
## Verification
|
|
48
|
+
|
|
49
|
+
Run:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm run typecheck
|
|
53
|
+
npm test -- authorized-cybersecurity-scan-profile
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Expected behavior: unauthorized targets, expired attestations, cap overruns, exhausted rate limits, and missing approvals all fail closed.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "agentpay-authorized-cybersecurity-scan-profile/v1",
|
|
3
|
+
"generated_at": "2026-05-04T21:25:00.000Z",
|
|
4
|
+
"scan": {
|
|
5
|
+
"tool_id": "paid.vulnerability.scan.basic",
|
|
6
|
+
"category": "vulnerability_scan",
|
|
7
|
+
"target": "https://example.com",
|
|
8
|
+
"target_domain": "example.com",
|
|
9
|
+
"requested_by_agent": "agentpay-demo-security-agent"
|
|
10
|
+
},
|
|
11
|
+
"authorization": {
|
|
12
|
+
"attestation_id": "authz-example-com-2026-05-04",
|
|
13
|
+
"granted_by": "security-owner@example.com",
|
|
14
|
+
"granted_at": "2026-05-04T21:00:00.000Z",
|
|
15
|
+
"expires_at": "2026-05-05T21:00:00.000Z",
|
|
16
|
+
"allowed_domains": ["example.com"],
|
|
17
|
+
"allowed_scan_categories": ["vulnerability_scan", "compliance_check"],
|
|
18
|
+
"proof_uri": "https://example.com/security/scan-authorization/authz-example-com-2026-05-04"
|
|
19
|
+
},
|
|
20
|
+
"spend_policy": {
|
|
21
|
+
"currency": "USD",
|
|
22
|
+
"per_target_cap_usd": 25,
|
|
23
|
+
"spent_for_target_usd": 8,
|
|
24
|
+
"requested_cost_usd": 4,
|
|
25
|
+
"x402_max_amount_required": "4000000"
|
|
26
|
+
},
|
|
27
|
+
"rate_limit": {
|
|
28
|
+
"window_seconds": 3600,
|
|
29
|
+
"max_scans_per_window": 3,
|
|
30
|
+
"scans_used_in_window": 1
|
|
31
|
+
},
|
|
32
|
+
"approval_gate": {
|
|
33
|
+
"fail_closed": true,
|
|
34
|
+
"requires_human_approval": true,
|
|
35
|
+
"approved": true,
|
|
36
|
+
"prompt": "Approve x402 payment for vulnerability scan against authorized target example.com with a 4 USD request and 25 USD per-target cap."
|
|
37
|
+
},
|
|
38
|
+
"audit_receipt": {
|
|
39
|
+
"receipt_id": "x402-scan-example-com-2026-05-04-001",
|
|
40
|
+
"retention_days": 365,
|
|
41
|
+
"language": "Paid cybersecurity scan executed for an authorized target with spend cap checks, x402 receipt metadata, rate-limit state, and target authorization retained for audit."
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"source": "https://x402-sol.cryptorugmuncher.workers.dev/.well-known/x402",
|
|
3
|
+
"checked_at": "2026-05-04T01:59:55Z",
|
|
4
|
+
"serviceName": "Rug Munch Intelligence",
|
|
5
|
+
"x402Version": 2,
|
|
6
|
+
"paymentHeader": "Payment-Signature",
|
|
7
|
+
"receiptHeader": "payment-response",
|
|
8
|
+
"networks": [
|
|
9
|
+
{
|
|
10
|
+
"network": "eip155:8453",
|
|
11
|
+
"name": "Base Mainnet",
|
|
12
|
+
"gateway": "https://x402-base.cryptorugmuncher.workers.dev",
|
|
13
|
+
"namespace": "eip155"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
|
|
17
|
+
"name": "Solana Mainnet",
|
|
18
|
+
"gateway": "https://x402-sol.cryptorugmuncher.workers.dev",
|
|
19
|
+
"namespace": "solana"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"facilitator": "https://facilitator.payai.network",
|
|
23
|
+
"settlement": {
|
|
24
|
+
"custody": "facilitator",
|
|
25
|
+
"description": "Live profile names PayAI facilitator and advertises Base plus Solana gateways. Buyer agents still need settlement, receipt, and refund consistency checks before signing."
|
|
26
|
+
},
|
|
27
|
+
"trial": {
|
|
28
|
+
"enabled": false,
|
|
29
|
+
"description": "Top-level profile says no free trials while endpoint rows mention one free call. Treat this as a policy consistency check before payment."
|
|
30
|
+
},
|
|
31
|
+
"refund": {
|
|
32
|
+
"supported": true,
|
|
33
|
+
"mode": "automatic",
|
|
34
|
+
"description": "Capability list advertises auto_refund. Buyers should require receipt-level refund state before relying on it."
|
|
35
|
+
},
|
|
36
|
+
"manifests": {
|
|
37
|
+
"wellKnownX402": "https://x402-sol.cryptorugmuncher.workers.dev/.well-known/x402",
|
|
38
|
+
"glama": "https://github.com/Rug-Munch-Media-LLC/x402-gateway-solana/blob/main/glama.json",
|
|
39
|
+
"smithery": "https://github.com/Rug-Munch-Media-LLC/x402-gateway-solana/blob/main/smithery.json",
|
|
40
|
+
"mcpCatalog": "https://x402-sol.cryptorugmuncher.workers.dev/mcp",
|
|
41
|
+
"openapi": "https://x402-sol.cryptorugmuncher.workers.dev/openapi.json"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"snapshotId": "rugmunch-x402-2026-05-04T01-38Z",
|
|
3
|
+
"sourceUrl": "https://x402-sol.cryptorugmuncher.workers.dev/.well-known/x402",
|
|
4
|
+
"capturedAt": "2026-05-04T01:45:00Z",
|
|
5
|
+
"commitSha": "c376c769fb0d3205ca9878691489e21ec87c78ff",
|
|
6
|
+
"x402Version": 2,
|
|
7
|
+
"organization": "Rug Munch Intelligence",
|
|
8
|
+
"primaryNetwork": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
|
|
9
|
+
"supportedNetworks": [
|
|
10
|
+
{
|
|
11
|
+
"network": "eip155:8453",
|
|
12
|
+
"name": "Base Mainnet",
|
|
13
|
+
"gateway": "https://x402-base.cryptorugmuncher.workers.dev"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
|
|
17
|
+
"name": "Solana Mainnet",
|
|
18
|
+
"gateway": "https://x402-sol.cryptorugmuncher.workers.dev"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"facilitator": "https://facilitator.payai.network",
|
|
22
|
+
"hasPayTo": true,
|
|
23
|
+
"capabilities": [
|
|
24
|
+
"crypto_data",
|
|
25
|
+
"mcp_tools",
|
|
26
|
+
"multi_chain",
|
|
27
|
+
"free_trial",
|
|
28
|
+
"no_api_key",
|
|
29
|
+
"instant_settlement",
|
|
30
|
+
"auto_refund"
|
|
31
|
+
],
|
|
32
|
+
"mcp": {
|
|
33
|
+
"totalTools": 175,
|
|
34
|
+
"totalServices": 28,
|
|
35
|
+
"protocol": "2025-03-26",
|
|
36
|
+
"catalog": "https://x402-sol.cryptorugmuncher.workers.dev/mcp"
|
|
37
|
+
},
|
|
38
|
+
"trial": {
|
|
39
|
+
"enabled": true,
|
|
40
|
+
"description": "One trial call available before paid calls"
|
|
41
|
+
},
|
|
42
|
+
"pricing": {
|
|
43
|
+
"endpointCount": 29,
|
|
44
|
+
"endpointsWithPrice": 29,
|
|
45
|
+
"endpointsWithPriceAtomic": 29,
|
|
46
|
+
"minimumPriceUsd": "$0.01",
|
|
47
|
+
"distinctPrices": [
|
|
48
|
+
"$0.01",
|
|
49
|
+
"$0.02",
|
|
50
|
+
"$0.03",
|
|
51
|
+
"$0.05"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"directories": {
|
|
55
|
+
"wellKnownX402": "https://x402-sol.cryptorugmuncher.workers.dev/.well-known/x402",
|
|
56
|
+
"openapi": "https://x402-sol.cryptorugmuncher.workers.dev/openapi.json",
|
|
57
|
+
"documentation": "https://x402-sol.cryptorugmuncher.workers.dev/docs",
|
|
58
|
+
"mcpCatalog": "https://x402-sol.cryptorugmuncher.workers.dev/mcp",
|
|
59
|
+
"frameworks": {
|
|
60
|
+
"openai": "https://x402-sol.cryptorugmuncher.workers.dev/openai-tools",
|
|
61
|
+
"anthropic": "https://x402-sol.cryptorugmuncher.workers.dev/anthropic-tools",
|
|
62
|
+
"gemini": "https://x402-sol.cryptorugmuncher.workers.dev/gemini-tools",
|
|
63
|
+
"langchain": "https://x402-sol.cryptorugmuncher.workers.dev/langchain-tools",
|
|
64
|
+
"mcp": "https://x402-sol.cryptorugmuncher.workers.dev/mcp-tools"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"snapshotId": "rugmunch-x402-2026-05-04T05-18Z",
|
|
3
|
+
"sourceUrl": "https://x402-sol.cryptorugmuncher.workers.dev/.well-known/x402",
|
|
4
|
+
"capturedAt": "2026-05-04T05:35:00Z",
|
|
5
|
+
"commitSha": "ab67483adb2585e475b5e2bcf37389a739e2ad97",
|
|
6
|
+
"x402Version": 2,
|
|
7
|
+
"organization": "Rug Munch Intelligence",
|
|
8
|
+
"primaryNetwork": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
|
|
9
|
+
"supportedNetworks": [
|
|
10
|
+
{
|
|
11
|
+
"network": "eip155:8453",
|
|
12
|
+
"name": "Base Mainnet",
|
|
13
|
+
"gateway": "https://x402-base.cryptorugmuncher.workers.dev"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
|
|
17
|
+
"name": "Solana Mainnet",
|
|
18
|
+
"gateway": "https://x402-sol.cryptorugmuncher.workers.dev"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"facilitator": "https://facilitator.payai.network",
|
|
22
|
+
"hasPayTo": true,
|
|
23
|
+
"capabilities": [
|
|
24
|
+
"crypto_data",
|
|
25
|
+
"mcp_tools",
|
|
26
|
+
"multi_chain",
|
|
27
|
+
"free_trial",
|
|
28
|
+
"no_api_key",
|
|
29
|
+
"instant_settlement",
|
|
30
|
+
"auto_refund"
|
|
31
|
+
],
|
|
32
|
+
"mcp": {
|
|
33
|
+
"totalTools": 184,
|
|
34
|
+
"totalServices": 28,
|
|
35
|
+
"protocol": "2025-03-26",
|
|
36
|
+
"catalog": "https://x402-sol.cryptorugmuncher.workers.dev/mcp"
|
|
37
|
+
},
|
|
38
|
+
"trial": {
|
|
39
|
+
"enabled": false,
|
|
40
|
+
"description": "No free trials - pay per call from $0.01 USDC"
|
|
41
|
+
},
|
|
42
|
+
"pricing": {
|
|
43
|
+
"endpointCount": 30,
|
|
44
|
+
"endpointsWithPrice": 30,
|
|
45
|
+
"endpointsWithPriceAtomic": 30,
|
|
46
|
+
"minimumPriceUsd": "$0.01",
|
|
47
|
+
"distinctPrices": [
|
|
48
|
+
"$0.01",
|
|
49
|
+
"$0.02",
|
|
50
|
+
"$0.03",
|
|
51
|
+
"$0.05"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"directories": {
|
|
55
|
+
"wellKnownX402": "https://x402-sol.cryptorugmuncher.workers.dev/.well-known/x402",
|
|
56
|
+
"openapi": "https://x402-sol.cryptorugmuncher.workers.dev/openapi.json",
|
|
57
|
+
"documentation": "https://x402-sol.cryptorugmuncher.workers.dev/docs",
|
|
58
|
+
"mcpCatalog": "https://x402-sol.cryptorugmuncher.workers.dev/mcp",
|
|
59
|
+
"frameworks": {
|
|
60
|
+
"openai": "https://x402-sol.cryptorugmuncher.workers.dev/openai-tools",
|
|
61
|
+
"anthropic": "https://x402-sol.cryptorugmuncher.workers.dev/anthropic-tools",
|
|
62
|
+
"gemini": "https://x402-sol.cryptorugmuncher.workers.dev/gemini-tools",
|
|
63
|
+
"langchain": "https://x402-sol.cryptorugmuncher.workers.dev/langchain-tools",
|
|
64
|
+
"mcp": "https://x402-sol.cryptorugmuncher.workers.dev/mcp-tools"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "agentpay-x402-multi-ledger-receipt/v1",
|
|
3
|
+
"observedAt": "2026-05-05T01:10:00.000Z",
|
|
4
|
+
"source": {
|
|
5
|
+
"name": "XRPL-Utilities MCP market signal",
|
|
6
|
+
"repo": "XRPL-Utilities/xrpl-utilities-mcp",
|
|
7
|
+
"evidenceUrl": "https://github.com/XRPL-Utilities/xrpl-utilities-mcp",
|
|
8
|
+
"pushedAt": "2026-05-05T01:02:00.000Z"
|
|
9
|
+
},
|
|
10
|
+
"payment": {
|
|
11
|
+
"x402Version": "2.x",
|
|
12
|
+
"paymentHeader": "Payment-Signature",
|
|
13
|
+
"receiptHeader": "payment-response"
|
|
14
|
+
},
|
|
15
|
+
"ledger": {
|
|
16
|
+
"label": "XRPL extension point",
|
|
17
|
+
"namespace": "xrpl",
|
|
18
|
+
"chainId": "xrpl-mainnet"
|
|
19
|
+
},
|
|
20
|
+
"settlement": {
|
|
21
|
+
"asset": "RLUSD or XRP, provider-declared",
|
|
22
|
+
"target": "unsupported-until-allowlisted"
|
|
23
|
+
},
|
|
24
|
+
"verification": {
|
|
25
|
+
"status": "unsupported_refused",
|
|
26
|
+
"verifier": "AgentPay buyer policy",
|
|
27
|
+
"checkedAt": "2026-05-05T01:10:00.000Z"
|
|
28
|
+
},
|
|
29
|
+
"boundary": {
|
|
30
|
+
"custody": "unknown",
|
|
31
|
+
"nonCustodial": false,
|
|
32
|
+
"description": "AgentPay does not sign XRPL settlement until signer, asset, target, facilitator, and receipt semantics are explicitly implemented."
|
|
33
|
+
},
|
|
34
|
+
"unsupportedLedgerRefusal": "Refused before signing: XRPL x402 rail is visible but not allowlisted. Add ledger namespace, asset parser, settlement target allowlist, verifier, receipt mapping, and non-custodial signer support before retrying."
|
|
35
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "agentpay-paid-tool-quality-proof/v1",
|
|
3
|
+
"generated_at": "2026-05-04T21:20:00.000Z",
|
|
4
|
+
"source": {
|
|
5
|
+
"name": "Strale-style scored paid MCP tool",
|
|
6
|
+
"url": "https://github.com/strale-io/strale",
|
|
7
|
+
"commit": "market-intel-2026-05-04",
|
|
8
|
+
"raw_score_field": "sqs"
|
|
9
|
+
},
|
|
10
|
+
"tool": {
|
|
11
|
+
"id": "web3.balance.lookup",
|
|
12
|
+
"name": "Web3 balance lookup",
|
|
13
|
+
"provider_id": "provider.strale.example",
|
|
14
|
+
"capability": "web3"
|
|
15
|
+
},
|
|
16
|
+
"score": {
|
|
17
|
+
"current": 92,
|
|
18
|
+
"maximum": 100,
|
|
19
|
+
"min_required": 85,
|
|
20
|
+
"measured_at": "2026-05-04T21:18:00.000Z",
|
|
21
|
+
"stale_after_seconds": 900,
|
|
22
|
+
"dimensions": {
|
|
23
|
+
"reliability": 94,
|
|
24
|
+
"availability": 91,
|
|
25
|
+
"receipt_integrity": 93,
|
|
26
|
+
"policy_fit": 89
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"provider_health": {
|
|
30
|
+
"status": "ok",
|
|
31
|
+
"success_rate_24h": 0.98,
|
|
32
|
+
"last_success_at": "2026-05-04T21:19:00.000Z",
|
|
33
|
+
"stale_streak": 0,
|
|
34
|
+
"receipt_state": "verified"
|
|
35
|
+
},
|
|
36
|
+
"x402_payment": {
|
|
37
|
+
"scheme": "exact",
|
|
38
|
+
"network": "base",
|
|
39
|
+
"asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
40
|
+
"payTo": "0x1111111111111111111111111111111111111111",
|
|
41
|
+
"maxAmountRequired": "50000"
|
|
42
|
+
},
|
|
43
|
+
"approval_gate": {
|
|
44
|
+
"fail_closed": true,
|
|
45
|
+
"requires_human_approval": true,
|
|
46
|
+
"decision": "allow",
|
|
47
|
+
"reason": [
|
|
48
|
+
"Quality score is current and above buyer threshold.",
|
|
49
|
+
"Provider health snapshot is fresh and receipt verified.",
|
|
50
|
+
"x402 payment metadata matches buyer allowlist."
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "agentpay-wallet-action-preflight/v1",
|
|
3
|
+
"source": {
|
|
4
|
+
"name": "merx-mcp market signal",
|
|
5
|
+
"repo": "nicosmall503/merx-mcp",
|
|
6
|
+
"evidenceUrl": "https://github.com/nicosmall503/merx-mcp",
|
|
7
|
+
"observedAt": "2026-05-05T01:10:00.000Z"
|
|
8
|
+
},
|
|
9
|
+
"action": {
|
|
10
|
+
"kind": "resource_purchase",
|
|
11
|
+
"chainNamespace": "tvm",
|
|
12
|
+
"chainId": "tron-mainnet",
|
|
13
|
+
"asset": "TRX",
|
|
14
|
+
"amount": "12.5",
|
|
15
|
+
"recipient": "TAllowlistedRecipient111111111111111111111",
|
|
16
|
+
"nonce": "simulation-required-before-nonce-lock",
|
|
17
|
+
"irreversible": true
|
|
18
|
+
},
|
|
19
|
+
"simulation": {
|
|
20
|
+
"required": true,
|
|
21
|
+
"status": "passed",
|
|
22
|
+
"simulationId": "merx-style-tron-resource-sim-2026-05-05",
|
|
23
|
+
"expectedOutcome": "Buy bandwidth or energy for one allowlisted wallet action without transferring custody.",
|
|
24
|
+
"resourceEstimate": {
|
|
25
|
+
"feeAsset": "TRX",
|
|
26
|
+
"maxNetworkFee": "1.0",
|
|
27
|
+
"energy": 25000,
|
|
28
|
+
"bandwidth": 600
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"policy": {
|
|
32
|
+
"perActionSpendCap": "25",
|
|
33
|
+
"dailyChainSpendCap": "100",
|
|
34
|
+
"allowedRecipients": ["TAllowlistedRecipient111111111111111111111"],
|
|
35
|
+
"allowedAssets": ["TRX", "USDT", "USDC", "USDD"],
|
|
36
|
+
"resourceCaps": {
|
|
37
|
+
"maxNetworkFee": "2.5",
|
|
38
|
+
"maxEnergy": 50000,
|
|
39
|
+
"maxBandwidth": 1000
|
|
40
|
+
},
|
|
41
|
+
"requireHumanApproval": true
|
|
42
|
+
},
|
|
43
|
+
"approvalCopy": {
|
|
44
|
+
"title": "Approve TRON wallet resource purchase?",
|
|
45
|
+
"summary": "AgentPay detected an irreversible wallet-action request. Simulation passed and policy caps are satisfied.",
|
|
46
|
+
"lineItems": [
|
|
47
|
+
"Recipient: TAllowlistedRecipient111111111111111111111",
|
|
48
|
+
"Amount: 12.5 TRX, cap 25 TRX per action",
|
|
49
|
+
"Simulation: merx-style-tron-resource-sim-2026-05-05 passed",
|
|
50
|
+
"Resource cost: max 1.0 TRX network fee, 25,000 energy, 600 bandwidth"
|
|
51
|
+
],
|
|
52
|
+
"irreversibleWarning": "Signing will authorize an irreversible TRON resource purchase. Decline if recipient, amount, or resource estimate differs from the intended task."
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Paid MCP proxy and discovery readiness pack
|
|
2
|
+
|
|
3
|
+
Toolstem and Cinderwright show the next buyer channel for paid tools: proxies that convert existing SaaS tools into x402-paid MCP endpoints, plus directories that compare paid services across x402, MPP, and L402.
|
|
4
|
+
|
|
5
|
+
AgentPay should be easy for those surfaces to list without giving them custody, overstating ledger support, or hiding buyer policy.
|
|
6
|
+
|
|
7
|
+
## Market signal
|
|
8
|
+
|
|
9
|
+
Sources fetched during the May 4 market-intel cycle:
|
|
10
|
+
|
|
11
|
+
- `toolstem/toolstem-proxy` describes an x402-paid proxy for Apify-backed MCP tools without Apify signup.
|
|
12
|
+
- `cinderwright-ai/cinderwright-api` describes discovery data across x402, MPP, and L402, with 1,551 services and paid market-intelligence endpoints.
|
|
13
|
+
|
|
14
|
+
## Paid-proxy recipe for tool authors
|
|
15
|
+
|
|
16
|
+
Use this pattern when wrapping an existing API, actor, or MCP server with x402:
|
|
17
|
+
|
|
18
|
+
1. Keep the upstream service token on the provider side. Do not ask buyer agents to hold pooled SaaS credentials.
|
|
19
|
+
2. Publish a fresh `.well-known/x402` offer with price, asset, network, `payTo`, terms, and refund policy.
|
|
20
|
+
3. Return typed 402 errors for unpaid, underpaid, wrong-network, stale-receipt, quota, and provider-health failures.
|
|
21
|
+
4. Charge only after the request is valid enough to execute. Validation failures should not bill.
|
|
22
|
+
5. Expose provider-health and quality fields before payment.
|
|
23
|
+
6. Include idempotency keys so retries do not double charge.
|
|
24
|
+
7. Make directory metadata crawlable without a private key.
|
|
25
|
+
8. Let buyers bring AgentPay for approval gates, caps, allowlists, and x402 receipt logging.
|
|
26
|
+
|
|
27
|
+
## AgentPay listing metadata
|
|
28
|
+
|
|
29
|
+
Directories can list AgentPay with these fields:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"name": "agentpay-mcp",
|
|
34
|
+
"role": "buyer-side x402 payment-control layer",
|
|
35
|
+
"package": "agentpay-mcp",
|
|
36
|
+
"mcp_name": "io.github.up2itnow0822/agentpay",
|
|
37
|
+
"settlement": "x402 with local non-custodial signing",
|
|
38
|
+
"supports": ["MCP", "x402", "human approval", "spend caps", "receipt logging"],
|
|
39
|
+
"does_not_provide": ["managed custody", "pooled SaaS token custody", "automatic non-EVM signing"],
|
|
40
|
+
"install": "npx agentpay-mcp",
|
|
41
|
+
"proofs": [
|
|
42
|
+
"docs/agentpay-five-tool-parity-proof.md",
|
|
43
|
+
"docs/agentpay-escrow-reputation-boundary.md",
|
|
44
|
+
"docs/agentpay-machine-payment-directory-listing.json",
|
|
45
|
+
"docs/x402-dynamic-paid-mcp-manifest-drift.md",
|
|
46
|
+
"docs/paid-provider-health-proof.md"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Discovery insertion checklist
|
|
52
|
+
|
|
53
|
+
Before submitting AgentPay to a paid-MCP or machine-payment directory, verify:
|
|
54
|
+
|
|
55
|
+
- npm package name and current version.
|
|
56
|
+
- GitHub repository URL.
|
|
57
|
+
- MCP package identity.
|
|
58
|
+
- Install command and required environment variables.
|
|
59
|
+
- No private key required for `initialize` or `tools/list`.
|
|
60
|
+
- x402-only wording is present.
|
|
61
|
+
- Base/USDC production signing is not broadened into unsupported non-EVM claims.
|
|
62
|
+
- Proof docs are linked for five-tool parity, manifest drift, provider health, quality gates, receipt normalization, and escrow boundary.
|
|
63
|
+
|
|
64
|
+
## Outreach posture
|
|
65
|
+
|
|
66
|
+
For Toolstem-style proxies, propose buyer-side approval and receipt guidance, not a partnership claim.
|
|
67
|
+
|
|
68
|
+
For Cinderwright-style directories, propose adding AgentPay as a buyer-control tool with exact metadata and proof links.
|
|
69
|
+
|
|
70
|
+
For Dexter-style five-tool flows, propose interoperability language: AgentPay can satisfy the same buyer sequence with local signing and explicit policy checks, while hosted session wallets remain a different trust model.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# AgentPay MCP paid-tool quality thresholds
|
|
2
|
+
|
|
3
|
+
Strale's May 4 launch signal is clear: paid MCP buyers are going to ask for score gates, not only catalog listings.
|
|
4
|
+
|
|
5
|
+
A paid tool directory can be useful and still be unsafe for wallet signing. The buyer needs four checks before any x402 call:
|
|
6
|
+
|
|
7
|
+
1. A fresh tool-quality score with the exact field used by the directory.
|
|
8
|
+
2. A provider-health snapshot for the provider that will receive payment.
|
|
9
|
+
3. A minimum-quality policy owned by the buyer, not the seller.
|
|
10
|
+
4. A fail-closed approval gate that blocks signing when the proof is stale, below threshold, or missing x402 metadata.
|
|
11
|
+
|
|
12
|
+
## Proof shape
|
|
13
|
+
|
|
14
|
+
The fixture at `docs/fixtures/paid-tool-quality-threshold-strale-2026-05-04.json` uses:
|
|
15
|
+
|
|
16
|
+
- `score.current`, `score.min_required`, `score.measured_at`, and `score.stale_after_seconds`.
|
|
17
|
+
- dimension scores for reliability, availability, receipt integrity, and policy fit.
|
|
18
|
+
- `provider_health.status`, `success_rate_24h`, `stale_streak`, and `receipt_state`.
|
|
19
|
+
- x402 payment metadata: network, asset, payTo, and max amount.
|
|
20
|
+
- `approval_gate.fail_closed=true` plus a buyer approval decision.
|
|
21
|
+
|
|
22
|
+
## Buyer policy
|
|
23
|
+
|
|
24
|
+
AgentPay treats the buyer policy as the final authority. If a directory says `min_required=75` and the buyer policy says `minimumScore=85`, the buyer policy wins.
|
|
25
|
+
|
|
26
|
+
The helper in `src/utils/paid-tool-quality-threshold.ts` denies payment when:
|
|
27
|
+
|
|
28
|
+
- the score or proof is older than the buyer's maximum age,
|
|
29
|
+
- the score is older than the proof's own stale window,
|
|
30
|
+
- the score falls below the buyer threshold,
|
|
31
|
+
- provider health is degraded or below the required success rate,
|
|
32
|
+
- receipt state is not verified when verified receipts are required,
|
|
33
|
+
- x402 network, asset, or payTo are outside the allowlist,
|
|
34
|
+
- human approval is required but missing.
|
|
35
|
+
|
|
36
|
+
That gives AgentPay parity with score-threshold catalogs while keeping signing authority on the buyer side.
|
|
37
|
+
|
|
38
|
+
## Verification
|
|
39
|
+
|
|
40
|
+
Run:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm run typecheck
|
|
44
|
+
npm test -- paid-tool-quality-threshold
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Expected behavior: stale or below-threshold proofs return `decision: "deny"` and never permit x402 signing.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# AgentPay MCP post-quantum spend-envelope compatibility assessment
|
|
2
|
+
|
|
3
|
+
PQSafe's May 4 signal pushes spend authorization into a post-quantum envelope frame: ML-DSA-65 signatures, AP2 and ACP compatibility language, MCP endpoints, audit ledgers, and x402 routing.
|
|
4
|
+
|
|
5
|
+
AgentPay should answer that without overclaiming. Current AgentPay artifacts map cleanly to envelope concepts at the policy and receipt layer, but this package does not claim post-quantum cryptography.
|
|
6
|
+
|
|
7
|
+
## Compatibility map
|
|
8
|
+
|
|
9
|
+
| AgentPay control | Envelope concept | Status |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| Spend limits | maximum authorized spend inside a signed envelope | Compatible |
|
|
12
|
+
| Network, asset, and recipient allowlists | route constraints attached to spend intent | Compatible |
|
|
13
|
+
| x402 receipts | receipt pointer for audit and reconciliation | Requires adapter |
|
|
14
|
+
| Approval gates | approval before spend execution | Compatible |
|
|
15
|
+
| agent_id, task_id, policy_version, receipt_id | audit ledger payload | Requires adapter |
|
|
16
|
+
|
|
17
|
+
## Explicit non-claims
|
|
18
|
+
|
|
19
|
+
AgentPay MCP does not claim any of the following from this assessment:
|
|
20
|
+
|
|
21
|
+
- ML-DSA-65 signing,
|
|
22
|
+
- post-quantum key lifecycle,
|
|
23
|
+
- AP2 envelope conformance,
|
|
24
|
+
- ACP envelope conformance,
|
|
25
|
+
- Arbitrum audit-ledger publication.
|
|
26
|
+
|
|
27
|
+
Those claims require implementation, fixtures, and cryptographic tests before they belong in product docs.
|
|
28
|
+
|
|
29
|
+
## Practical buyer response
|
|
30
|
+
|
|
31
|
+
If a buyer asks whether AgentPay can coexist with post-quantum spend envelopes, the current answer is:
|
|
32
|
+
|
|
33
|
+
- AgentPay spend policies, allowlists, approval gates, x402 receipts, and audit metadata are compatible inputs to an envelope adapter.
|
|
34
|
+
- AgentPay can preserve receipt IDs and policy versions so an envelope signer can bind payment approval to settlement evidence.
|
|
35
|
+
- AgentPay should not market ML-DSA or post-quantum signing until tests verify it.
|
|
36
|
+
|
|
37
|
+
The helper at `src/utils/post-quantum-spend-envelope-compatibility.ts` returns this assessment in code so docs and future adapter work start from the same boundaries.
|