@oobe-protocol-labs/sap-mcp-server 0.7.4 → 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.
- package/CHANGELOG.md +123 -0
- package/README.md +14 -7
- package/USER_DOCS/00_START_HERE.md +45 -7
- package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +2 -0
- package/USER_DOCS/03_PAYMENTS_X402_PAYSH.md +13 -5
- package/USER_DOCS/04_CLIENT_CONFIGS.md +25 -15
- package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +36 -21
- package/assets/logos/drift.svg +12 -0
- package/assets/logos/jupiter.ico +0 -0
- package/assets/logos/mcp.svg +11 -0
- package/assets/logos/meteora.png +0 -0
- package/assets/logos/orca.ico +0 -0
- package/assets/logos/raydium.ico +0 -0
- package/assets/logos/smithery.svg +11 -0
- package/assets/oobe-logo.png +0 -0
- package/dist/config/mcp-client-injection.d.ts +26 -7
- package/dist/config/mcp-client-injection.d.ts.map +1 -1
- package/dist/config/mcp-client-injection.js +182 -58
- package/dist/config/mcp-client-injection.js.map +1 -1
- package/dist/config/wizard.d.ts.map +1 -1
- package/dist/config/wizard.js +92 -57
- package/dist/config/wizard.js.map +1 -1
- package/dist/core/constants.d.ts +1 -1
- package/dist/core/constants.js +1 -1
- package/dist/payments/pricing.d.ts.map +1 -1
- package/dist/payments/pricing.js +11 -0
- package/dist/payments/pricing.js.map +1 -1
- package/dist/payments/x402-paid-call.d.ts +85 -1
- package/dist/payments/x402-paid-call.d.ts.map +1 -1
- package/dist/payments/x402-paid-call.js +168 -4
- package/dist/payments/x402-paid-call.js.map +1 -1
- package/dist/prompts/context/sap-agent-context.prompt.js +6 -3
- package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
- package/dist/remote/public-home/escape.d.ts +11 -0
- package/dist/remote/public-home/escape.d.ts.map +1 -0
- package/dist/remote/public-home/escape.js +20 -0
- package/dist/remote/public-home/escape.js.map +1 -0
- package/dist/remote/public-home/index.d.ts +8 -0
- package/dist/remote/public-home/index.d.ts.map +1 -0
- package/dist/remote/public-home/index.js +57 -0
- package/dist/remote/public-home/index.js.map +1 -0
- package/dist/remote/public-home/scripts.d.ts +6 -0
- package/dist/remote/public-home/scripts.d.ts.map +1 -0
- package/dist/remote/public-home/scripts.js +106 -0
- package/dist/remote/public-home/scripts.js.map +1 -0
- package/dist/remote/public-home/sections.d.ts +67 -0
- package/dist/remote/public-home/sections.d.ts.map +1 -0
- package/dist/remote/public-home/sections.js +727 -0
- package/dist/remote/public-home/sections.js.map +1 -0
- package/dist/remote/public-home/styles.d.ts +6 -0
- package/dist/remote/public-home/styles.d.ts.map +1 -0
- package/dist/remote/public-home/styles.js +1534 -0
- package/dist/remote/public-home/styles.js.map +1 -0
- package/dist/remote/public-home/types.d.ts +95 -0
- package/dist/remote/public-home/types.d.ts.map +1 -0
- package/dist/remote/public-home/types.js +2 -0
- package/dist/remote/public-home/types.js.map +1 -0
- package/dist/remote/server.d.ts +1 -1
- package/dist/remote/server.d.ts.map +1 -1
- package/dist/remote/server.js +55 -282
- package/dist/remote/server.js.map +1 -1
- package/dist/security/tool-permissions.d.ts.map +1 -1
- package/dist/security/tool-permissions.js +5 -0
- package/dist/security/tool-permissions.js.map +1 -1
- package/dist/tools/magicblock-tools.js +6 -6
- package/dist/tools/magicblock-tools.js.map +1 -1
- package/dist/tools/profile-tools.d.ts.map +1 -1
- package/dist/tools/profile-tools.js +136 -33
- package/dist/tools/profile-tools.js.map +1 -1
- package/dist/tools/register-tools.d.ts.map +1 -1
- package/dist/tools/register-tools.js +5 -0
- package/dist/tools/register-tools.js.map +1 -1
- package/dist/tools/x402-paid-call-tool.d.ts +1 -1
- package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
- package/dist/tools/x402-paid-call-tool.js +314 -28
- package/dist/tools/x402-paid-call-tool.js.map +1 -1
- package/dist/wizard-core/desktop-flow.d.ts +40 -1
- package/dist/wizard-core/desktop-flow.d.ts.map +1 -1
- package/dist/wizard-core/desktop-flow.js +206 -15
- package/dist/wizard-core/desktop-flow.js.map +1 -1
- package/docs/03_CONFIGURATION_AND_WIZARD.md +6 -2
- package/docs/06_PAYMENTS_X402_AND_PAYSH.md +29 -7
- package/docs/07_ENDPOINTS_AND_CLIENTS.md +1 -1
- package/docs/14_DESKTOP_WIZARD_RELEASE.md +24 -5
- package/docs/15_DASHBOARD_SCREENSHARE_SCRIPT.md +137 -0
- package/docs/README.md +23 -2
- package/package.json +1 -1
- package/server.json +3 -3
- package/skills/sap-mcp/SKILL.md +23 -7
- 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
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
48
|
+
"value": "@oobe-protocol-labs/sap-mcp-server@0.8.0"
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
"type": "positional",
|
package/skills/sap-mcp/SKILL.md
CHANGED
|
@@ -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 `
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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 `
|
|
129
|
-
arguments, `confirm: true`, and `maxAttempts: 5` so a fresh payment payload
|
|
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,
|
|
62
|
-
|
|
63
|
-
instead of falling back to local stdio automatically.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
`
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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 `
|
|
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.
|