@oobe-protocol-labs/sap-mcp-server 0.7.4 → 0.9.0

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.
Files changed (99) hide show
  1. package/CHANGELOG.md +140 -0
  2. package/README.md +14 -7
  3. package/USER_DOCS/00_START_HERE.md +45 -7
  4. package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +2 -0
  5. package/USER_DOCS/03_PAYMENTS_X402_PAYSH.md +24 -6
  6. package/USER_DOCS/04_CLIENT_CONFIGS.md +26 -15
  7. package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +44 -22
  8. package/assets/logos/drift.svg +12 -0
  9. package/assets/logos/jupiter.ico +0 -0
  10. package/assets/logos/mcp.svg +11 -0
  11. package/assets/logos/meteora.png +0 -0
  12. package/assets/logos/orca.ico +0 -0
  13. package/assets/logos/raydium.ico +0 -0
  14. package/assets/logos/smithery.svg +11 -0
  15. package/assets/oobe-logo.png +0 -0
  16. package/dist/config/mcp-client-injection.d.ts +26 -7
  17. package/dist/config/mcp-client-injection.d.ts.map +1 -1
  18. package/dist/config/mcp-client-injection.js +182 -58
  19. package/dist/config/mcp-client-injection.js.map +1 -1
  20. package/dist/config/paths.d.ts +6 -0
  21. package/dist/config/paths.d.ts.map +1 -1
  22. package/dist/config/paths.js +14 -0
  23. package/dist/config/paths.js.map +1 -1
  24. package/dist/config/wizard.d.ts.map +1 -1
  25. package/dist/config/wizard.js +92 -57
  26. package/dist/config/wizard.js.map +1 -1
  27. package/dist/core/constants.d.ts +1 -1
  28. package/dist/core/constants.js +1 -1
  29. package/dist/payments/pricing.d.ts.map +1 -1
  30. package/dist/payments/pricing.js +12 -0
  31. package/dist/payments/pricing.js.map +1 -1
  32. package/dist/payments/x402-paid-call.d.ts +181 -1
  33. package/dist/payments/x402-paid-call.d.ts.map +1 -1
  34. package/dist/payments/x402-paid-call.js +432 -6
  35. package/dist/payments/x402-paid-call.js.map +1 -1
  36. package/dist/prompts/context/sap-agent-context.prompt.js +7 -3
  37. package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
  38. package/dist/remote/public-home/escape.d.ts +11 -0
  39. package/dist/remote/public-home/escape.d.ts.map +1 -0
  40. package/dist/remote/public-home/escape.js +20 -0
  41. package/dist/remote/public-home/escape.js.map +1 -0
  42. package/dist/remote/public-home/index.d.ts +8 -0
  43. package/dist/remote/public-home/index.d.ts.map +1 -0
  44. package/dist/remote/public-home/index.js +57 -0
  45. package/dist/remote/public-home/index.js.map +1 -0
  46. package/dist/remote/public-home/scripts.d.ts +6 -0
  47. package/dist/remote/public-home/scripts.d.ts.map +1 -0
  48. package/dist/remote/public-home/scripts.js +106 -0
  49. package/dist/remote/public-home/scripts.js.map +1 -0
  50. package/dist/remote/public-home/sections.d.ts +67 -0
  51. package/dist/remote/public-home/sections.d.ts.map +1 -0
  52. package/dist/remote/public-home/sections.js +732 -0
  53. package/dist/remote/public-home/sections.js.map +1 -0
  54. package/dist/remote/public-home/styles.d.ts +6 -0
  55. package/dist/remote/public-home/styles.d.ts.map +1 -0
  56. package/dist/remote/public-home/styles.js +1534 -0
  57. package/dist/remote/public-home/styles.js.map +1 -0
  58. package/dist/remote/public-home/types.d.ts +97 -0
  59. package/dist/remote/public-home/types.d.ts.map +1 -0
  60. package/dist/remote/public-home/types.js +2 -0
  61. package/dist/remote/public-home/types.js.map +1 -0
  62. package/dist/remote/server.d.ts +3 -1
  63. package/dist/remote/server.d.ts.map +1 -1
  64. package/dist/remote/server.js +67 -282
  65. package/dist/remote/server.js.map +1 -1
  66. package/dist/security/tool-permissions.d.ts.map +1 -1
  67. package/dist/security/tool-permissions.js +5 -0
  68. package/dist/security/tool-permissions.js.map +1 -1
  69. package/dist/tools/magicblock-tools.js +6 -6
  70. package/dist/tools/magicblock-tools.js.map +1 -1
  71. package/dist/tools/profile-tools.d.ts.map +1 -1
  72. package/dist/tools/profile-tools.js +136 -33
  73. package/dist/tools/profile-tools.js.map +1 -1
  74. package/dist/tools/register-tools.d.ts.map +1 -1
  75. package/dist/tools/register-tools.js +5 -0
  76. package/dist/tools/register-tools.js.map +1 -1
  77. package/dist/tools/x402-paid-call-tool.d.ts +1 -1
  78. package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
  79. package/dist/tools/x402-paid-call-tool.js +360 -28
  80. package/dist/tools/x402-paid-call-tool.js.map +1 -1
  81. package/dist/tui/config-wizard.js +2 -2
  82. package/dist/tui/config-wizard.js.map +1 -1
  83. package/dist/tui/wizard-save.d.ts.map +1 -1
  84. package/dist/tui/wizard-save.js +7 -3
  85. package/dist/tui/wizard-save.js.map +1 -1
  86. package/dist/wizard-core/desktop-flow.d.ts +40 -1
  87. package/dist/wizard-core/desktop-flow.d.ts.map +1 -1
  88. package/dist/wizard-core/desktop-flow.js +207 -15
  89. package/dist/wizard-core/desktop-flow.js.map +1 -1
  90. package/docs/03_CONFIGURATION_AND_WIZARD.md +7 -2
  91. package/docs/06_PAYMENTS_X402_AND_PAYSH.md +30 -7
  92. package/docs/07_ENDPOINTS_AND_CLIENTS.md +1 -1
  93. package/docs/14_DESKTOP_WIZARD_RELEASE.md +25 -5
  94. package/docs/15_DASHBOARD_SCREENSHARE_SCRIPT.md +137 -0
  95. package/docs/README.md +23 -2
  96. package/package.json +1 -1
  97. package/server.json +3 -3
  98. package/skills/sap-mcp/SKILL.md +27 -7
  99. package/skills/sap-payments-x402/SKILL.md +37 -13
@@ -0,0 +1,137 @@
1
+ # SAP MCP Dashboard Screenshare Script
2
+
3
+ ## Purpose
4
+
5
+ Use this script for a 4-6 minute product walkthrough of <https://mcp.sap.oobeprotocol.ai/>. The tone should be direct, technical, and commercial: SAP MCP is not just another MCP server; it is a Solana-native operations gateway for agent runtimes.
6
+
7
+ ## 0. Opening Hook
8
+
9
+ **Screen:** Open <https://mcp.sap.oobeprotocol.ai/>.
10
+
11
+ **Say:**
12
+
13
+ Agent runtimes are moving from chat and retrieval into real execution. The missing piece is a clean operations layer: identity, wallet boundaries, payments, protocol tools, and a way to keep user keys under user control.
14
+
15
+ This is SAP MCP by OOBE Protocol: a hosted Solana-native MCP gateway for agents. It gives Claude, Codex, Hermes, OpenClaw, and custom agents one standard endpoint for Solana DeFi, Solana RPC, and Synapse Agent Protocol operations.
16
+
17
+ ## 1. Dashboard Overview
18
+
19
+ **Screen:** Point to the hero, hosted endpoint, payment counters, and public navigation.
20
+
21
+ **Say:**
22
+
23
+ The hosted MCP endpoint is `https://mcp.sap.oobeprotocol.ai/mcp`. Agents connect through standard Streamable HTTP MCP. The public dashboard gives builders the important operational signals without exposing secrets: endpoint metadata, docs, downloads, x402 discovery, pay.sh provider data, and live payment activity.
24
+
25
+ The model is remote tools, local signatures. The hosted server provides the tool surface and monetization rails, while the user's local SAP profile or external signer authorizes paid and value-moving calls.
26
+
27
+ ## 2. Three Protocol Buckets
28
+
29
+ **Screen:** Scroll to the protocol surface / bento grid section.
30
+
31
+ **Say:**
32
+
33
+ SAP MCP is organized around three core buckets.
34
+
35
+ First: Solana DeFi protocols. Agents can access integrations across Jupiter, Raydium, Orca, Meteora, Drift, market data, swaps, quotes, and related execution flows.
36
+
37
+ Second: Solana RPC and asset primitives. Balances, token accounts, DAS assets, NFT metadata, program reads, transactions, simulations, and chain inspection are exposed as MCP tools.
38
+
39
+ Third: Synapse Agent Protocol. This is the coordination layer: agent registry, reputation, tool registry, escrow, settlement, attestations, SNS identity, x402 flows, pay.sh metadata, skills, and proof-oriented agent operations.
40
+
41
+ The point is simple: one MCP gateway can turn a normal agent runtime into a protocol-aware on-chain operator.
42
+
43
+ ## 3. Installation Path
44
+
45
+ **Screen:** Scroll to the integration/install section and download cards.
46
+
47
+ **Say:**
48
+
49
+ There are two installation paths.
50
+
51
+ For most users, use the native desktop wizard. Download Windows, macOS, or Linux directly from the GitHub release. The wizard creates an isolated SAP MCP profile, wallet boundary, policy defaults, hosted MCP config, and the local `sap_payments` bridge for paid calls.
52
+
53
+ For developers and servers, use the TUI from npm:
54
+
55
+ ```bash
56
+ npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-config wizard
57
+ ```
58
+
59
+ The desktop GUI and the TUI both end in the same production model: hosted MCP at `/mcp`, plus local non-custodial signing and x402 payment handling.
60
+
61
+ ## 4. Wizard Walkthrough
62
+
63
+ **Screen:** Open the SAP MCP Wizard.
64
+
65
+ **Say:**
66
+
67
+ The wizard is built for both normal users and technical operators.
68
+
69
+ The default path is full hosted SAP MCP setup. It creates or repairs the local profile, configures the selected runtime, and installs the local payment bridge.
70
+
71
+ If a user already has a profile, they can choose the repair path. That fixes only the SAP MCP runtime entries, keeps other MCP servers intact, and updates only OOBE's own `sap` and `sap_payments` blocks.
72
+
73
+ The important security rule is that keypair bytes are never pasted into remote configs. The hosted server never custodies user keys. Paid and write tools require the user-controlled local profile or an external signer.
74
+
75
+ ## 5. Runtime Connection
76
+
77
+ **Screen:** Show Codex, Hermes, Claude, or another runtime with SAP MCP connected.
78
+
79
+ **Say:**
80
+
81
+ Once the runtime restarts, it gets two surfaces.
82
+
83
+ The remote SAP MCP namespace exposes the full hosted tool catalog. Read tools work immediately.
84
+
85
+ The local `sap_payments` bridge handles paid or write calls when the runtime cannot natively replay x402 challenges. It signs the payment proof locally, retries the hosted MCP call, and returns the receipt and tool output without sending private key material to OOBE.
86
+
87
+ That is the trust boundary: global hosted tools, local authorization.
88
+
89
+ ## 6. Payments And Monetization
90
+
91
+ **Screen:** Point to payment/x402/pay.sh cards and `.well-known/x402`.
92
+
93
+ **Say:**
94
+
95
+ SAP MCP supports x402 and pay.sh for agent-native monetization.
96
+
97
+ Paid tools return a standard HTTP 402 challenge. The local bridge or a native x402-capable runtime resolves the challenge, settles through the OOBE facilitator, and binds payment to the tool call.
98
+
99
+ This lets hosted MCP tools become revenue-generating APIs without bearer tokens, custodial wallets, or hardcoded runtime secrets.
100
+
101
+ For builders, this means paid discovery, premium analytics, transaction builders, registry operations, SNS checks, settlement flows, and future subscription-style products can all live behind one MCP interface.
102
+
103
+ ## 7. Solana Value Proposition
104
+
105
+ **Screen:** Return to the hero or protocol surface.
106
+
107
+ **Say:**
108
+
109
+ For Solana, SAP MCP is a distribution layer for protocols.
110
+
111
+ Instead of every agent integration being custom, protocols can be exposed as well-described MCP tools, enriched with skills and docs, and monetized with x402 or pay.sh.
112
+
113
+ For agents, it is a coordination layer. They can discover tools, inspect state, register identity, link SNS, handle payments, and execute operations through a standard interface.
114
+
115
+ For users, it is non-custodial by default. The remote server provides access; the local signer controls authorization.
116
+
117
+ ## 8. Closing CTA
118
+
119
+ **Screen:** Show install button and docs.
120
+
121
+ **Say:**
122
+
123
+ You can try SAP MCP today at `mcp.sap.oobeprotocol.ai`.
124
+
125
+ Download the native wizard, or run the TUI from npm. Connect your agent runtime, keep signing local, and start building Solana-native agent operations with SAP MCP.
126
+
127
+ This is the path from agent profiles to on-chain operators.
128
+
129
+ ## Short Social Cut
130
+
131
+ SAP MCP turns agent runtimes into Solana-native operators.
132
+
133
+ One hosted MCP endpoint gives agents access to Solana DeFi, Solana RPC, and Synapse Agent Protocol tools. The wizard creates the local profile, signer boundary, runtime config, and x402 payment bridge.
134
+
135
+ Remote tools. Local signatures. Smooth payments. No custodial key handling.
136
+
137
+ Try it at <https://mcp.sap.oobeprotocol.ai/>.
package/docs/README.md CHANGED
@@ -14,6 +14,13 @@ Use this documentation when you need to install the wizard, connect Claude/Herme
14
14
 
15
15
  Most users should connect agents to the hosted remote MCP server while keeping signing local and user-controlled.
16
16
 
17
+ Choose one integration path:
18
+
19
+ | Path | Best For | Steps |
20
+ | --- | --- | --- |
21
+ | Native Desktop Wizard | Non-technical users and first-time setup | Download the app, choose **Full hosted SAP MCP setup**, select detected runtimes, then restart the agent. |
22
+ | CLI Wizard | Developers and terminal users | Run the npm command, accept hosted `hosted-api`, and let the wizard install hosted `sap` plus local `sap_payments`. |
23
+
17
24
  ```bash
18
25
  npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-config wizard
19
26
  ```
@@ -24,7 +31,13 @@ Users who prefer a GUI can download the Desktop Wizard from GitHub releases:
24
31
  https://github.com/OOBE-PROTOCOL/sap-mcp/releases
25
32
  ```
26
33
 
27
- The desktop wizard creates the same local SAP MCP profile, signer boundary, hosted MCP client config, and optional x402 paid-call bridge as the CLI wizard.
34
+ The desktop wizard creates the same local SAP MCP profile, signer boundary, hosted MCP client config, and local `sap_payments` bridge as the CLI wizard.
35
+
36
+ Native download metadata:
37
+
38
+ ```txt
39
+ https://mcp.sap.oobeprotocol.ai/wizard/downloads.json
40
+ ```
28
41
 
29
42
  The wizard creates an isolated SAP MCP profile under:
30
43
 
@@ -45,6 +58,12 @@ Then configure your MCP client with:
45
58
  }
46
59
  ```
47
60
 
61
+ For paid/write hosted tools, also configure the local `sap_payments` bridge. The wizard does this automatically for supported runtimes. See:
62
+
63
+ - [Desktop GUI Wizard](user/06_DESKTOP_GUI_WIZARD.md)
64
+ - [Client Configs](user/04_CLIENT_CONFIGS.md)
65
+ - [Payments: x402 And pay.sh](user/03_PAYMENTS_X402_PAYSH.md)
66
+
48
67
  ## What The Hosted Server Provides
49
68
 
50
69
  SAP MCP groups tools into three practical buckets:
@@ -70,7 +89,9 @@ Hosted paid tools use x402 and pay.sh:
70
89
  - builders: batch/domain/enriched operations
71
90
  - value flows: fixed or percentage pricing only where it is operationally appropriate
72
91
 
73
- For agents that cannot replay x402 challenges natively, install the optional paid-call helper:
92
+ For agents that cannot replay x402 challenges natively, configure the local
93
+ `sap_payments` MCP bridge and call `sap_payments_call_paid_tool`. The standalone
94
+ helper remains available as a terminal/custom-wrapper fallback:
74
95
 
75
96
  ```bash
76
97
  npx --yes --package @oobe-protocol-labs/sap-mcp-server sap-mcp-x402-paid-call \
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oobe-protocol-labs/sap-mcp-server",
3
- "version": "0.7.4",
3
+ "version": "0.9.0",
4
4
  "mcpName": "ai.oobeprotocol.sap.mcp/sap-mcp",
5
5
  "description": "Official MCP gateway for OOBE Protocol SAP — AI agents can interact with SAP identity, registry, reputation, tools, memory, payments, settlement, and proof-of-execution on Solana",
6
6
  "type": "module",
package/server.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "ai.oobeprotocol.sap.mcp/sap-mcp",
4
4
  "title": "SAP MCP Server | OOBE Protocol",
5
5
  "description": "Solana-native MCP gateway for SAP tools, DeFi, SNS identity, x402/pay.sh, and agent operations.",
6
- "version": "0.7.4",
6
+ "version": "0.9.0",
7
7
  "websiteUrl": "https://mcp.sap.oobeprotocol.ai/",
8
8
  "repository": {
9
9
  "url": "https://github.com/OOBE-PROTOCOL/sap-mcp",
@@ -29,7 +29,7 @@
29
29
  {
30
30
  "registryType": "npm",
31
31
  "identifier": "@oobe-protocol-labs/sap-mcp-server",
32
- "version": "0.7.4",
32
+ "version": "0.9.0",
33
33
  "transport": {
34
34
  "type": "stdio"
35
35
  },
@@ -45,7 +45,7 @@
45
45
  },
46
46
  {
47
47
  "type": "positional",
48
- "value": "@oobe-protocol-labs/sap-mcp-server@0.7.4"
48
+ "value": "@oobe-protocol-labs/sap-mcp-server@0.9.0"
49
49
  },
50
50
  {
51
51
  "type": "positional",
@@ -107,10 +107,15 @@ payments, SAP transactions, Solana transactions, SNS operations, or settlement
107
107
  actions. The hosted MCP server is not a wallet custodian.
108
108
 
109
109
  For hosted paid tools, use the native x402 flow. If the client runtime cannot
110
- attach `PAYMENT-SIGNATURE` itself, use the local `x402_paid_call` addon installed
111
- by the wizard or the local MCP helper `sap_x402_paid_call`. That helper signs
112
- payment payloads with the user's local SAP MCP profile and retries the hosted
113
- tool call. It must not be treated as a remote hosted signing service.
110
+ attach `PAYMENT-SIGNATURE` itself, use the local SAP MCP `sap_payments` bridge.
111
+ Call `sap_payments_readiness` first to verify the active profile, signer,
112
+ SOL/USDC balance, policy limits, and bridge status. Then call
113
+ `sap_payments_call_paid_tool` for the hosted paid tool. This is not a separate
114
+ hosted signing plugin: it is the local SAP MCP process using the user's
115
+ configured SAP profile wallet or external signer to sign the x402 payment
116
+ payload, retry the hosted tool call, and return the receipt.
117
+ `sap_x402_paid_call` is a backward-compatible alias only for older runtime
118
+ snippets. Neither helper must be treated as a remote hosted signing service.
114
119
 
115
120
  When connected to hosted SAP MCP, `signerConfigured: false` on the remote
116
121
  server means the hosted server is non-custodial. It does not mean the remote
@@ -119,15 +124,30 @@ a hosted call requires x402 payment or because the hosted server does not hold
119
124
  the user's signer. Use the hosted x402 flow first; ask the user before using a
120
125
  local stdio fallback.
121
126
 
127
+ Hosted remote is accountless. If `sap_profile_current` returns
128
+ `accountModel: hosted-remote-accountless`, do not describe `default` as the
129
+ user's profile and do not infer the user's wallet from the hosted server. To
130
+ inspect the local user profile, wallet, signer status, and payment policy, call
131
+ the local `sap_payments.sap_payments_readiness` bridge when it is configured.
132
+ Use `sap_payments.sap_payments_profile_current` only as a narrower compatibility
133
+ profile check.
134
+
135
+ Basic wallet reads are free on hosted SAP MCP. Call `sol_get_balance`,
136
+ `spl-token_getBalance`, and `spl-token_getTokenAccounts` directly on the hosted
137
+ server. Do not send these balance checks through `sap_payments_call_paid_tool`,
138
+ and do not summarize a balance read as a facilitator `BlockhashNotFound`
139
+ problem unless a paid tool actually returned that error.
140
+
122
141
  If a hosted paid tool returns `BlockhashNotFound`,
123
142
  `transaction_simulation_failed`, `smart_wallet_simulation_failed`, `node is
124
143
  behind`, `minimum context slot`, `fetch failed`, `gateway timeout`, or a
125
144
  response marked `retryable: true`, treat it as a transient x402/Solana RPC
126
145
  settlement error. Do not claim that SAP MCP is down unless `/health` also
127
146
  fails. Do not bypass the paid hosted path with terminal/direct RPC. Retry
128
- through the local `sap_x402_paid_call` bridge with the same tool name and
129
- arguments, `confirm: true`, and `maxAttempts: 5` so a fresh payment payload is
130
- created.
147
+ through the local `sap_payments_call_paid_tool` bridge with the same tool name
148
+ and arguments, `confirm: true`, and `maxAttempts: 5` so a fresh payment payload
149
+ is created. Use `sap_x402_paid_call` only when a runtime still exposes the
150
+ legacy alias.
131
151
 
132
152
  When summarizing a hosted connection, use language like:
133
153
  "server is non-custodial; user signatures come from the local SAP profile or
@@ -7,6 +7,11 @@ workflows, and hosted SAP MCP x402/pay.sh monetization.
7
7
 
8
8
  - `sap_x402_prepare_payment`
9
9
  - `sap_x402_get_balance`
10
+ - `sap_payments_profile_current`
11
+ - `sap_payments_call_paid_tool`
12
+ - `sap_payments_prepare_challenge`
13
+ - `sap_payments_sign_challenge`
14
+ - `sap_payments_verify_receipt`
10
15
  - `sap_x402_paid_call`
11
16
  - `sap_create_subscription`
12
17
  - `sap_fund_subscription`
@@ -36,7 +41,8 @@ hosted calls still proceed through x402/pay.sh plus the user's local SAP profile
36
41
  or external signer.
37
42
 
38
43
  - Free: `tools/list`, `prompts/list`, `resources/list`, `sap_profile_current`,
39
- `sap_get_network_overview`.
44
+ `sap_get_network_overview`, `sol_get_balance`, `spl-token_getBalance`, and
45
+ `spl-token_getTokenAccounts`.
40
46
  - Read premium: `sap_list_all_agents`, indexed discovery, network stats,
41
47
  protocol/capability indexes.
42
48
  - Builder: batch SNS/domain checks, analytics, transaction builders.
@@ -58,16 +64,34 @@ For fast x402 execution:
58
64
  4. Cache free `tools/list`, `prompts/list`, and `resources/list` locally rather
59
65
  than paying or re-fetching repeatedly.
60
66
  5. Treat `PAYMENT-RESPONSE` as the receipt bound to the tool output.
61
- 6. If the client runtime cannot sign or attach x402 payment headers, ask the
62
- user to run the SAP MCP wizard and install the local `x402_paid_call` addon
63
- instead of falling back to local stdio automatically.
64
-
65
- When available locally, call `sap_x402_paid_call` with `toolName`, `arguments`,
66
- `maxPriceUsd`, and `confirm: true`. It initializes the hosted MCP session,
67
- signs the x402 payment with the user SAP MCP profile wallet, retries the hosted
68
- tool call, and returns the settlement receipt. The OOBE hosted server should
69
- not expose this helper when it has no local user wallet because payment signing
70
- belongs on the user's machine.
67
+ 6. If the client runtime cannot sign or attach x402 payment headers itself, use
68
+ the local SAP MCP `sap_payments_call_paid_tool` bridge configured by the SAP
69
+ MCP wizard instead of falling back to local stdio automatically.
70
+
71
+ Do not use x402 for basic balance reads. `sol_get_balance`,
72
+ `spl-token_getBalance`, and `spl-token_getTokenAccounts` are free hosted tools
73
+ and should be called directly through the remote SAP MCP connection.
74
+
75
+ When available locally, call `sap_payments_call_paid_tool` with `toolName`,
76
+ `arguments`, `maxPriceUsd`, and `confirm: true`. It initializes the hosted MCP
77
+ session, obtains the x402 challenge, signs with the user SAP MCP profile wallet
78
+ or external signer, retries the hosted tool call, and returns the settlement
79
+ receipt. Do not ask the user to install a separate x402 plugin when the local
80
+ SAP MCP `sap_payments` bridge is already configured. The legacy
81
+ `sap_x402_paid_call` alias is acceptable only when a runtime has not refreshed
82
+ to the new tool name.
83
+
84
+ Use low-level helpers only for custom clients:
85
+
86
+ - `sap_payments_prepare_challenge` returns the parsed hosted x402 challenge
87
+ without signing.
88
+ - `sap_payments_sign_challenge` signs a parsed challenge and returns a one-time
89
+ payment header. Treat that header as authorization material.
90
+ - `sap_payments_verify_receipt` decodes a `PAYMENT-RESPONSE` or
91
+ `X-PAYMENT-RESPONSE` receipt.
92
+
93
+ The OOBE hosted server should not expose local signing helpers when it has no
94
+ local user wallet because payment signing belongs on the user's machine.
71
95
 
72
96
  ## Transient Settlement Errors
73
97
 
@@ -81,8 +105,8 @@ reuse the old signed payment payload.
81
105
 
82
106
  Correct recovery:
83
107
 
84
- 1. Call the local `sap_x402_paid_call` bridge again with the same `toolName`
85
- and `arguments`.
108
+ 1. Call the local `sap_payments_call_paid_tool` bridge again with the same
109
+ `toolName` and `arguments`.
86
110
  2. Set `maxAttempts: 5` when the runtime supports it.
87
111
  3. Let the helper create a fresh x402 challenge and payment payload for each
88
112
  attempt.