@oobe-protocol-labs/sap-mcp-server 0.7.3 → 0.8.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 (90) hide show
  1. package/CHANGELOG.md +139 -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 +13 -5
  6. package/USER_DOCS/04_CLIENT_CONFIGS.md +25 -15
  7. package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +36 -21
  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/wizard.d.ts.map +1 -1
  21. package/dist/config/wizard.js +92 -57
  22. package/dist/config/wizard.js.map +1 -1
  23. package/dist/core/constants.d.ts +1 -1
  24. package/dist/core/constants.js +1 -1
  25. package/dist/payments/pricing.d.ts.map +1 -1
  26. package/dist/payments/pricing.js +11 -0
  27. package/dist/payments/pricing.js.map +1 -1
  28. package/dist/payments/x402-paid-call.d.ts +85 -1
  29. package/dist/payments/x402-paid-call.d.ts.map +1 -1
  30. package/dist/payments/x402-paid-call.js +168 -4
  31. package/dist/payments/x402-paid-call.js.map +1 -1
  32. package/dist/prompts/context/sap-agent-context.prompt.js +6 -3
  33. package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
  34. package/dist/remote/public-home/escape.d.ts +11 -0
  35. package/dist/remote/public-home/escape.d.ts.map +1 -0
  36. package/dist/remote/public-home/escape.js +20 -0
  37. package/dist/remote/public-home/escape.js.map +1 -0
  38. package/dist/remote/public-home/index.d.ts +8 -0
  39. package/dist/remote/public-home/index.d.ts.map +1 -0
  40. package/dist/remote/public-home/index.js +57 -0
  41. package/dist/remote/public-home/index.js.map +1 -0
  42. package/dist/remote/public-home/scripts.d.ts +6 -0
  43. package/dist/remote/public-home/scripts.d.ts.map +1 -0
  44. package/dist/remote/public-home/scripts.js +106 -0
  45. package/dist/remote/public-home/scripts.js.map +1 -0
  46. package/dist/remote/public-home/sections.d.ts +67 -0
  47. package/dist/remote/public-home/sections.d.ts.map +1 -0
  48. package/dist/remote/public-home/sections.js +727 -0
  49. package/dist/remote/public-home/sections.js.map +1 -0
  50. package/dist/remote/public-home/styles.d.ts +6 -0
  51. package/dist/remote/public-home/styles.d.ts.map +1 -0
  52. package/dist/remote/public-home/styles.js +1534 -0
  53. package/dist/remote/public-home/styles.js.map +1 -0
  54. package/dist/remote/public-home/types.d.ts +95 -0
  55. package/dist/remote/public-home/types.d.ts.map +1 -0
  56. package/dist/remote/public-home/types.js +2 -0
  57. package/dist/remote/public-home/types.js.map +1 -0
  58. package/dist/remote/server.d.ts +41 -1
  59. package/dist/remote/server.d.ts.map +1 -1
  60. package/dist/remote/server.js +109 -292
  61. package/dist/remote/server.js.map +1 -1
  62. package/dist/security/tool-permissions.d.ts.map +1 -1
  63. package/dist/security/tool-permissions.js +5 -0
  64. package/dist/security/tool-permissions.js.map +1 -1
  65. package/dist/tools/magicblock-tools.js +6 -6
  66. package/dist/tools/magicblock-tools.js.map +1 -1
  67. package/dist/tools/profile-tools.d.ts.map +1 -1
  68. package/dist/tools/profile-tools.js +136 -33
  69. package/dist/tools/profile-tools.js.map +1 -1
  70. package/dist/tools/register-tools.d.ts.map +1 -1
  71. package/dist/tools/register-tools.js +5 -0
  72. package/dist/tools/register-tools.js.map +1 -1
  73. package/dist/tools/x402-paid-call-tool.d.ts +1 -1
  74. package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
  75. package/dist/tools/x402-paid-call-tool.js +314 -28
  76. package/dist/tools/x402-paid-call-tool.js.map +1 -1
  77. package/dist/wizard-core/desktop-flow.d.ts +40 -1
  78. package/dist/wizard-core/desktop-flow.d.ts.map +1 -1
  79. package/dist/wizard-core/desktop-flow.js +206 -15
  80. package/dist/wizard-core/desktop-flow.js.map +1 -1
  81. package/docs/03_CONFIGURATION_AND_WIZARD.md +6 -2
  82. package/docs/06_PAYMENTS_X402_AND_PAYSH.md +29 -7
  83. package/docs/07_ENDPOINTS_AND_CLIENTS.md +1 -1
  84. package/docs/14_DESKTOP_WIZARD_RELEASE.md +24 -5
  85. package/docs/15_DASHBOARD_SCREENSHARE_SCRIPT.md +137 -0
  86. package/docs/README.md +23 -2
  87. package/package.json +1 -1
  88. package/server.json +3 -3
  89. package/skills/sap-mcp/SKILL.md +23 -7
  90. package/skills/sap-payments-x402/SKILL.md +37 -13
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.3",
3
+ "version": "0.8.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.3",
6
+ "version": "0.8.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.3",
32
+ "version": "0.8.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.3"
48
+ "value": "@oobe-protocol-labs/sap-mcp-server@0.8.0"
49
49
  },
50
50
  {
51
51
  "type": "positional",
@@ -107,10 +107,13 @@ 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
+ and call `sap_payments_call_paid_tool`. This is not a separate hosted signing
112
+ plugin: it is the local SAP MCP process using the user's configured SAP profile
113
+ wallet or external signer to sign the x402 payment payload, retry the hosted
114
+ tool call, and return the receipt. `sap_x402_paid_call` is a backward-compatible
115
+ alias only for older runtime snippets. Neither helper must be treated as a
116
+ remote hosted signing service.
114
117
 
115
118
  When connected to hosted SAP MCP, `signerConfigured: false` on the remote
116
119
  server means the hosted server is non-custodial. It does not mean the remote
@@ -119,15 +122,28 @@ a hosted call requires x402 payment or because the hosted server does not hold
119
122
  the user's signer. Use the hosted x402 flow first; ask the user before using a
120
123
  local stdio fallback.
121
124
 
125
+ Hosted remote is accountless. If `sap_profile_current` returns
126
+ `accountModel: hosted-remote-accountless`, do not describe `default` as the
127
+ user's profile and do not infer the user's wallet from the hosted server. To
128
+ inspect the local user profile, wallet, or signer status, call the local
129
+ `sap_payments.sap_payments_profile_current` bridge when it is configured.
130
+
131
+ Basic wallet reads are free on hosted SAP MCP. Call `sol_get_balance`,
132
+ `spl-token_getBalance`, and `spl-token_getTokenAccounts` directly on the hosted
133
+ server. Do not send these balance checks through `sap_payments_call_paid_tool`,
134
+ and do not summarize a balance read as a facilitator `BlockhashNotFound`
135
+ problem unless a paid tool actually returned that error.
136
+
122
137
  If a hosted paid tool returns `BlockhashNotFound`,
123
138
  `transaction_simulation_failed`, `smart_wallet_simulation_failed`, `node is
124
139
  behind`, `minimum context slot`, `fetch failed`, `gateway timeout`, or a
125
140
  response marked `retryable: true`, treat it as a transient x402/Solana RPC
126
141
  settlement error. Do not claim that SAP MCP is down unless `/health` also
127
142
  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.
143
+ through the local `sap_payments_call_paid_tool` bridge with the same tool name
144
+ and arguments, `confirm: true`, and `maxAttempts: 5` so a fresh payment payload
145
+ is created. Use `sap_x402_paid_call` only when a runtime still exposes the
146
+ legacy alias.
131
147
 
132
148
  When summarizing a hosted connection, use language like:
133
149
  "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.