@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
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { existsSync, readdirSync, readFileSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
1
3
|
import { defaults } from '../config/defaults.js';
|
|
2
|
-
import { defaultGeneratedWalletPath } from '../config/paths.js';
|
|
4
|
+
import { defaultGeneratedWalletPath, getPreferredConfigDir } from '../config/paths.js';
|
|
3
5
|
import { saveWizardSetup } from '../config/setup.js';
|
|
4
|
-
import { discoverMcpClientTargets, installCodexHostedPaymentBridgeConfig, installHostedPaymentBridgeConfigs, installX402PaidCallAddon, } from '../config/mcp-client-injection.js';
|
|
6
|
+
import { discoverMcpClientTargets, installCodexHostedPaymentBridgeConfig, installHostedPaymentBridgeConfigs, installX402PaidCallAddon, validateHostedPaymentBridgeContent, } from '../config/mcp-client-injection.js';
|
|
5
7
|
/**
|
|
6
8
|
* @name normalizeDesktopProfileName
|
|
7
9
|
* @description Produces a safe suggested profile name while preserving validation in saveWizardSetup.
|
|
@@ -22,7 +24,7 @@ export function createDefaultDesktopWizardDraft() {
|
|
|
22
24
|
const profileName = 'my-sap-agent';
|
|
23
25
|
return {
|
|
24
26
|
profileName,
|
|
25
|
-
mode: '
|
|
27
|
+
mode: 'hosted-api',
|
|
26
28
|
rpcUrl: defaults.rpcUrl,
|
|
27
29
|
createNewWallet: true,
|
|
28
30
|
walletPath: defaultGeneratedWalletPath(profileName),
|
|
@@ -55,7 +57,7 @@ export function getDesktopRuntimeStatuses(homeDir) {
|
|
|
55
57
|
detected: Boolean(byRuntime.get('codex')?.length),
|
|
56
58
|
paths: byRuntime.get('codex')?.map((target) => target.path) ?? [],
|
|
57
59
|
autoConfigurable: true,
|
|
58
|
-
recommendation: 'Recommended:
|
|
60
|
+
recommendation: 'Recommended: hosted SAP MCP plus local sap_payments bridge.',
|
|
59
61
|
},
|
|
60
62
|
{
|
|
61
63
|
id: 'claude',
|
|
@@ -63,7 +65,7 @@ export function getDesktopRuntimeStatuses(homeDir) {
|
|
|
63
65
|
detected: Boolean(byRuntime.get('claude')?.length),
|
|
64
66
|
paths: byRuntime.get('claude')?.map((target) => target.path) ?? [],
|
|
65
67
|
autoConfigurable: true,
|
|
66
|
-
recommendation: '
|
|
68
|
+
recommendation: 'Hosted SAP MCP plus local sap_payments bridge in Claude Desktop JSON.',
|
|
67
69
|
},
|
|
68
70
|
{
|
|
69
71
|
id: 'hermes',
|
|
@@ -71,7 +73,7 @@ export function getDesktopRuntimeStatuses(homeDir) {
|
|
|
71
73
|
detected: Boolean(byRuntime.get('hermes')?.length),
|
|
72
74
|
paths: byRuntime.get('hermes')?.map((target) => target.path) ?? [],
|
|
73
75
|
autoConfigurable: true,
|
|
74
|
-
recommendation: '
|
|
76
|
+
recommendation: 'Hosted SAP MCP plus local sap_payments bridge in Hermes global/profile config.',
|
|
75
77
|
},
|
|
76
78
|
{
|
|
77
79
|
id: 'openclaw',
|
|
@@ -79,10 +81,136 @@ export function getDesktopRuntimeStatuses(homeDir) {
|
|
|
79
81
|
detected: Boolean(byRuntime.get('openclaw')?.length),
|
|
80
82
|
paths: byRuntime.get('openclaw')?.map((target) => target.path) ?? [],
|
|
81
83
|
autoConfigurable: true,
|
|
82
|
-
recommendation: '
|
|
84
|
+
recommendation: 'Hosted SAP MCP plus local sap_payments bridge in OpenClaw MCP JSON.',
|
|
83
85
|
},
|
|
84
86
|
];
|
|
85
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* @name getDesktopProfileStatuses
|
|
90
|
+
* @description Lists local SAP MCP config profiles without loading or exposing keypair material.
|
|
91
|
+
*/
|
|
92
|
+
export function getDesktopProfileStatuses(homeDir) {
|
|
93
|
+
const configDir = homeDir ? join(homeDir, '.config', 'mcp-sap') : getPreferredConfigDir();
|
|
94
|
+
if (!existsSync(configDir)) {
|
|
95
|
+
return [];
|
|
96
|
+
}
|
|
97
|
+
const activeProfile = readActiveDesktopProfile(configDir);
|
|
98
|
+
const profiles = [];
|
|
99
|
+
for (const file of readdirSync(configDir)) {
|
|
100
|
+
const profileName = profileNameFromConfigFile(file);
|
|
101
|
+
if (!profileName) {
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
const profilePath = join(configDir, file);
|
|
105
|
+
const config = readJsonObject(profilePath);
|
|
106
|
+
const walletPath = readStringField(config, 'walletPath');
|
|
107
|
+
const rpcUrl = readStringField(config, 'rpcUrl');
|
|
108
|
+
const mode = readModeField(config, 'mode');
|
|
109
|
+
const externalSignerConfigured = Boolean(readStringField(config, 'externalSignerUrl'));
|
|
110
|
+
const issues = buildProfileReadinessIssues({
|
|
111
|
+
name: profileName,
|
|
112
|
+
mode,
|
|
113
|
+
walletPath,
|
|
114
|
+
walletExists: Boolean(walletPath && existsSync(walletPath)),
|
|
115
|
+
externalSignerConfigured,
|
|
116
|
+
});
|
|
117
|
+
profiles.push({
|
|
118
|
+
name: profileName,
|
|
119
|
+
path: profilePath,
|
|
120
|
+
active: profileName === activeProfile,
|
|
121
|
+
mode,
|
|
122
|
+
rpcUrl,
|
|
123
|
+
network: networkFromRpcUrl(rpcUrl),
|
|
124
|
+
agentPubkey: readStringField(config, 'agentPubkey'),
|
|
125
|
+
walletPath,
|
|
126
|
+
walletExists: Boolean(walletPath && existsSync(walletPath)),
|
|
127
|
+
externalSignerConfigured,
|
|
128
|
+
readiness: issues.length === 0 ? 'ready' : 'needs-attention',
|
|
129
|
+
issues,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
profiles.sort((a, b) => {
|
|
133
|
+
if (a.active)
|
|
134
|
+
return -1;
|
|
135
|
+
if (b.active)
|
|
136
|
+
return 1;
|
|
137
|
+
return a.name.localeCompare(b.name);
|
|
138
|
+
});
|
|
139
|
+
return profiles;
|
|
140
|
+
}
|
|
141
|
+
function buildProfileReadinessIssues(input) {
|
|
142
|
+
const issues = [];
|
|
143
|
+
if (!input.mode) {
|
|
144
|
+
issues.push(`Profile "${input.name}" has no valid mode.`);
|
|
145
|
+
}
|
|
146
|
+
const needsSigner = input.mode === 'hosted-api'
|
|
147
|
+
|| input.mode === 'local-dev-keypair'
|
|
148
|
+
|| input.mode === 'delegated-session';
|
|
149
|
+
if (needsSigner && !input.walletPath && !input.externalSignerConfigured) {
|
|
150
|
+
issues.push(`Profile "${input.name}" needs a local wallet path or external signer for payments/write tools.`);
|
|
151
|
+
}
|
|
152
|
+
if (needsSigner && input.walletPath && !input.walletExists) {
|
|
153
|
+
issues.push(`Profile "${input.name}" points to a missing wallet file.`);
|
|
154
|
+
}
|
|
155
|
+
return issues;
|
|
156
|
+
}
|
|
157
|
+
function profileNameFromConfigFile(file) {
|
|
158
|
+
if (file === 'config.json') {
|
|
159
|
+
return 'default';
|
|
160
|
+
}
|
|
161
|
+
if (file.startsWith('config-') && file.endsWith('.json')) {
|
|
162
|
+
return file.slice('config-'.length, -'.json'.length);
|
|
163
|
+
}
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
function readActiveDesktopProfile(configDir) {
|
|
167
|
+
const activePath = join(configDir, '.active-profile');
|
|
168
|
+
if (!existsSync(activePath)) {
|
|
169
|
+
return 'default';
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
return readFileSync(activePath, 'utf-8').trim() || 'default';
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return 'default';
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function readJsonObject(path) {
|
|
179
|
+
try {
|
|
180
|
+
const parsed = JSON.parse(readFileSync(path, 'utf-8'));
|
|
181
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
return {};
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function readStringField(record, field) {
|
|
188
|
+
const value = record[field];
|
|
189
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
190
|
+
}
|
|
191
|
+
function readModeField(record, field) {
|
|
192
|
+
const value = readStringField(record, field);
|
|
193
|
+
if (value === 'readonly'
|
|
194
|
+
|| value === 'local-dev-keypair'
|
|
195
|
+
|| value === 'external-signer'
|
|
196
|
+
|| value === 'delegated-session'
|
|
197
|
+
|| value === 'hosted-api') {
|
|
198
|
+
return value;
|
|
199
|
+
}
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
function networkFromRpcUrl(rpcUrl) {
|
|
203
|
+
if (!rpcUrl) {
|
|
204
|
+
return undefined;
|
|
205
|
+
}
|
|
206
|
+
if (rpcUrl.includes('devnet')) {
|
|
207
|
+
return 'devnet';
|
|
208
|
+
}
|
|
209
|
+
if (rpcUrl.includes('testnet')) {
|
|
210
|
+
return 'testnet';
|
|
211
|
+
}
|
|
212
|
+
return 'mainnet-beta';
|
|
213
|
+
}
|
|
86
214
|
/**
|
|
87
215
|
* @name validateDesktopWizardDraft
|
|
88
216
|
* @description Returns actionable validation errors before persistence.
|
|
@@ -91,7 +219,7 @@ export function validateDesktopWizardDraft(draft) {
|
|
|
91
219
|
const errors = [];
|
|
92
220
|
if (draft.setupMode === 'payments-only') {
|
|
93
221
|
if (draft.configureRuntimes.length === 0 && !draft.configureCodex && !draft.installAddonBundle) {
|
|
94
|
-
errors.push('Choose at least one runtime or install the local
|
|
222
|
+
errors.push('Choose at least one runtime or install the local bridge reference bundle.');
|
|
95
223
|
}
|
|
96
224
|
return errors;
|
|
97
225
|
}
|
|
@@ -120,7 +248,7 @@ export function validateDesktopWizardDraft(draft) {
|
|
|
120
248
|
* @name saveDesktopWizardDraft
|
|
121
249
|
* @description Persists a desktop wizard draft and installs selected runtime integrations.
|
|
122
250
|
*/
|
|
123
|
-
export async function saveDesktopWizardDraft(draft) {
|
|
251
|
+
export async function saveDesktopWizardDraft(draft, homeDir, platform = process.platform) {
|
|
124
252
|
const errors = validateDesktopWizardDraft(draft);
|
|
125
253
|
if (errors.length > 0) {
|
|
126
254
|
throw new Error(errors.join('\n'));
|
|
@@ -148,7 +276,7 @@ export async function saveDesktopWizardDraft(draft) {
|
|
|
148
276
|
if (draft.configureCodex) {
|
|
149
277
|
selectedRuntimes.add('codex');
|
|
150
278
|
}
|
|
151
|
-
for (const result of installHostedPaymentBridgeConfigs(Array.from(selectedRuntimes))) {
|
|
279
|
+
for (const result of installHostedPaymentBridgeConfigs(Array.from(selectedRuntimes), homeDir, platform)) {
|
|
152
280
|
runtimeActions.push({
|
|
153
281
|
runtime: result.target.label,
|
|
154
282
|
status: 'configured',
|
|
@@ -158,7 +286,7 @@ export async function saveDesktopWizardDraft(draft) {
|
|
|
158
286
|
});
|
|
159
287
|
}
|
|
160
288
|
if (runtimeActions.length === 0 && draft.setupMode === 'full') {
|
|
161
|
-
const codex = installCodexHostedPaymentBridgeConfig();
|
|
289
|
+
const codex = installCodexHostedPaymentBridgeConfig(homeDir, platform);
|
|
162
290
|
runtimeActions.push({
|
|
163
291
|
runtime: 'Codex',
|
|
164
292
|
status: 'configured',
|
|
@@ -168,14 +296,77 @@ export async function saveDesktopWizardDraft(draft) {
|
|
|
168
296
|
});
|
|
169
297
|
}
|
|
170
298
|
if (draft.installAddonBundle) {
|
|
171
|
-
const addon = installX402PaidCallAddon();
|
|
299
|
+
const addon = installX402PaidCallAddon(homeDir ? join(homeDir, '.config', 'mcp-sap', 'addons', 'x402-paid-call') : undefined);
|
|
172
300
|
runtimeActions.push({
|
|
173
|
-
runtime: '
|
|
301
|
+
runtime: 'SAP MCP payment bridge bundle',
|
|
174
302
|
status: 'installed',
|
|
175
303
|
path: addon.targetDir,
|
|
176
|
-
message: `Installed ${addon.addonId}
|
|
304
|
+
message: `Installed ${addon.addonId} reference bundle.`,
|
|
177
305
|
});
|
|
178
306
|
}
|
|
179
|
-
|
|
307
|
+
const readiness = buildDesktopReadiness({
|
|
308
|
+
profileName: draft.setupMode === 'full' ? profileName : undefined,
|
|
309
|
+
selectedRuntimes: Array.from(selectedRuntimes),
|
|
310
|
+
runtimeActions,
|
|
311
|
+
homeDir,
|
|
312
|
+
platform,
|
|
313
|
+
});
|
|
314
|
+
return { setup, setupMode: draft.setupMode, readiness, runtimeActions };
|
|
315
|
+
}
|
|
316
|
+
function buildDesktopReadiness(input) {
|
|
317
|
+
const profiles = getDesktopProfileStatuses(input.homeDir);
|
|
318
|
+
const activeProfile = input.profileName
|
|
319
|
+
? profiles.find((profile) => profile.name === input.profileName)
|
|
320
|
+
: profiles.find((profile) => profile.active);
|
|
321
|
+
const profileIssues = activeProfile
|
|
322
|
+
? activeProfile.issues
|
|
323
|
+
: ['No active local SAP MCP profile was found.'];
|
|
324
|
+
const runtimeIssues = collectRuntimeReadinessIssues(input);
|
|
325
|
+
const nextSteps = buildReadinessNextSteps(profileIssues, runtimeIssues);
|
|
326
|
+
return {
|
|
327
|
+
status: profileIssues.length === 0 && runtimeIssues.length === 0 ? 'ready' : 'needs-attention',
|
|
328
|
+
profileName: activeProfile?.name,
|
|
329
|
+
profileIssues,
|
|
330
|
+
runtimeIssues,
|
|
331
|
+
nextSteps,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
function collectRuntimeReadinessIssues(input) {
|
|
335
|
+
const targets = discoverMcpClientTargets(input.homeDir, input.platform);
|
|
336
|
+
const selected = new Set(input.selectedRuntimes.length > 0 ? input.selectedRuntimes : ['codex']);
|
|
337
|
+
const configuredPaths = new Set(input.runtimeActions.map((action) => action.path).filter((path) => Boolean(path)));
|
|
338
|
+
const runtimeIssues = [];
|
|
339
|
+
for (const target of targets) {
|
|
340
|
+
const runtimeId = target.id;
|
|
341
|
+
if (!selected.has(runtimeId) || !configuredPaths.has(target.path) || !existsSync(target.path)) {
|
|
342
|
+
continue;
|
|
343
|
+
}
|
|
344
|
+
const content = readFileSync(target.path, 'utf-8');
|
|
345
|
+
const issues = validateHostedPaymentBridgeContent(target, content, input.platform);
|
|
346
|
+
if (issues.length > 0) {
|
|
347
|
+
runtimeIssues.push({
|
|
348
|
+
runtime: target.label,
|
|
349
|
+
path: target.path,
|
|
350
|
+
issues,
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
return runtimeIssues;
|
|
355
|
+
}
|
|
356
|
+
function buildReadinessNextSteps(profileIssues, runtimeIssues) {
|
|
357
|
+
const nextSteps = [];
|
|
358
|
+
if (profileIssues.some((issue) => issue.includes('missing wallet file'))) {
|
|
359
|
+
nextSteps.push('Open Full hosted SAP MCP setup and create a new dedicated wallet, or update the profile to an existing wallet/external signer.');
|
|
360
|
+
}
|
|
361
|
+
if (profileIssues.some((issue) => issue.includes('No active local SAP MCP profile'))) {
|
|
362
|
+
nextSteps.push('Create a named SAP MCP profile with the wizard before using hosted paid/write tools.');
|
|
363
|
+
}
|
|
364
|
+
if (runtimeIssues.length > 0) {
|
|
365
|
+
nextSteps.push('Run Repair payment bridge only for the affected runtimes, then fully restart the agent runtime.');
|
|
366
|
+
}
|
|
367
|
+
if (nextSteps.length === 0) {
|
|
368
|
+
nextSteps.push('Restart the selected agent runtime so it reloads hosted sap plus local sap_payments.');
|
|
369
|
+
}
|
|
370
|
+
return nextSteps;
|
|
180
371
|
}
|
|
181
372
|
//# sourceMappingURL=desktop-flow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop-flow.js","sourceRoot":"","sources":["../../src/wizard-core/desktop-flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"desktop-flow.js","sourceRoot":"","sources":["../../src/wizard-core/desktop-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,7 +74,7 @@ Desktop flow:
|
|
|
74
74
|
2. Create or import a dedicated SAP MCP wallet.
|
|
75
75
|
3. Set policy limits and optional Bento Guard metadata.
|
|
76
76
|
4. Detect local agent runtimes.
|
|
77
|
-
5. Configure hosted MCP and the local
|
|
77
|
+
5. Configure hosted MCP and the local SAP MCP `sap_payments` bridge where supported.
|
|
78
78
|
6. Show a final review before writing files.
|
|
79
79
|
|
|
80
80
|
Release artifacts are produced as macOS DMG/ZIP, Windows NSIS EXE, and Linux tar.gz. See [14. Desktop Wizard Release](14_DESKTOP_WIZARD_RELEASE.md).
|
|
@@ -106,12 +106,16 @@ Do not inject keypair bytes, hard-coded legacy wallet paths, or stale RPC overri
|
|
|
106
106
|
For hosted paid/write tools, clients may also need a local `sap_payments` bridge that exposes only:
|
|
107
107
|
|
|
108
108
|
```txt
|
|
109
|
+
sap_payments_call_paid_tool
|
|
110
|
+
sap_payments_prepare_challenge
|
|
111
|
+
sap_payments_sign_challenge
|
|
112
|
+
sap_payments_verify_receipt
|
|
109
113
|
sap_x402_paid_call
|
|
110
114
|
sap_profile_current
|
|
111
115
|
sap_x402_estimate_cost
|
|
112
116
|
```
|
|
113
117
|
|
|
114
|
-
This bridge
|
|
118
|
+
This bridge obtains x402 challenges, signs payment proofs locally with the active SAP MCP profile, retries hosted tool calls, and inspects receipts.
|
|
115
119
|
|
|
116
120
|
## 03.7 Config CLI
|
|
117
121
|
|
|
@@ -46,10 +46,22 @@ The retry must preserve the initialized `mcp-session-id` and the same MCP method
|
|
|
46
46
|
and params that produced the challenge. JSON-RPC `id` is not part of the
|
|
47
47
|
canonical paid request hash.
|
|
48
48
|
|
|
49
|
-
## 06.4 Local x402
|
|
49
|
+
## 06.4 Local x402 Challenge Toolchain
|
|
50
50
|
|
|
51
51
|
Some clients can connect to hosted Streamable HTTP MCP but cannot yet sign and
|
|
52
|
-
replay x402 challenges natively. SAP MCP ships a local
|
|
52
|
+
replay x402 challenges natively. SAP MCP ships a local challenge toolchain for
|
|
53
|
+
that case. The recommended high-level MCP tool is:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
sap_payments_call_paid_tool
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
It obtains the hosted x402 challenge, validates the price and payment
|
|
60
|
+
coordinates, signs locally, retries the exact hosted MCP request, and returns
|
|
61
|
+
the tool result plus receipt. The legacy alias `sap_x402_paid_call` remains for
|
|
62
|
+
existing runtimes.
|
|
63
|
+
|
|
64
|
+
CLI equivalent:
|
|
53
65
|
|
|
54
66
|
```bash
|
|
55
67
|
npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-x402-paid-call \
|
|
@@ -60,8 +72,8 @@ npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-x402-paid
|
|
|
60
72
|
--confirm
|
|
61
73
|
```
|
|
62
74
|
|
|
63
|
-
The wizard can install
|
|
64
|
-
OpenClaw, or custom runtimes:
|
|
75
|
+
The wizard can install local bridge reference metadata and snippets for Hermes,
|
|
76
|
+
Claude, Codex, OpenClaw, or custom runtimes:
|
|
65
77
|
|
|
66
78
|
```text
|
|
67
79
|
~/.config/mcp-sap/addons/x402-paid-call
|
|
@@ -73,9 +85,19 @@ the hosted call, and prints the settlement receipt. It does not send keypair
|
|
|
73
85
|
bytes to the hosted server. It fails closed when the active profile has no
|
|
74
86
|
supported local payment signer.
|
|
75
87
|
|
|
76
|
-
Local stdio SAP MCP may expose
|
|
77
|
-
user-controlled wallet profile
|
|
78
|
-
|
|
88
|
+
Local stdio SAP MCP may expose these free payment bridge tools when the process
|
|
89
|
+
has a user-controlled wallet profile:
|
|
90
|
+
|
|
91
|
+
| Tool | Purpose |
|
|
92
|
+
| --- | --- |
|
|
93
|
+
| `sap_payments_call_paid_tool` | End-to-end paid hosted tool execution; preferred for agents. |
|
|
94
|
+
| `sap_payments_prepare_challenge` | Fetch and parse a hosted x402 challenge without signing. |
|
|
95
|
+
| `sap_payments_sign_challenge` | Sign a parsed challenge with the local SAP profile signer. |
|
|
96
|
+
| `sap_payments_verify_receipt` | Decode a payment response/receipt header for inspection. |
|
|
97
|
+
| `sap_x402_paid_call` | Backward-compatible alias for the high-level paid-call tool. |
|
|
98
|
+
|
|
99
|
+
The public hosted server should not advertise the signing helpers in
|
|
100
|
+
non-custodial mode because signing belongs on the user's machine.
|
|
79
101
|
|
|
80
102
|
Transient settlement errors such as `BlockhashNotFound`,
|
|
81
103
|
`transaction_simulation_failed`, `smart_wallet_simulation_failed`, `node is
|
|
@@ -131,7 +131,7 @@ Codex supports Streamable HTTP MCP servers with URL-based TOML entries. Use loca
|
|
|
131
131
|
```toml
|
|
132
132
|
[mcp_servers.sap]
|
|
133
133
|
command = "npx"
|
|
134
|
-
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server", "sap-mcp-server"]
|
|
134
|
+
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server@0.8.0", "sap-mcp-server"]
|
|
135
135
|
|
|
136
136
|
[mcp_servers.sap.env]
|
|
137
137
|
SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE = "false"
|
|
@@ -45,10 +45,10 @@ The desktop wizard supports two setup modes:
|
|
|
45
45
|
|
|
46
46
|
| Mode | Behavior |
|
|
47
47
|
| --- | --- |
|
|
48
|
-
| Full SAP MCP setup | Creates or updates the local SAP MCP profile, wallet boundary, policy limits, hosted MCP runtime entries, and
|
|
49
|
-
|
|
|
48
|
+
| Full SAP MCP setup | Creates or updates the local SAP MCP profile, wallet boundary, policy limits, hosted MCP runtime entries, and native local payment bridge. |
|
|
49
|
+
| Payment bridge repair | Skips profile/wallet writes and only installs or repairs hosted MCP plus local `sap_payments` runtime entries. |
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Payment bridge repair mode is for users who already ran a wizard, can see hosted SAP MCP tools, but cannot execute paid/write calls because their runtime does not yet attach payment proofs.
|
|
52
52
|
|
|
53
53
|
### 14.4.1 Codex
|
|
54
54
|
|
|
@@ -66,9 +66,15 @@ url = "https://mcp.sap.oobeprotocol.ai/mcp"
|
|
|
66
66
|
```toml
|
|
67
67
|
[mcp_servers.sap_payments]
|
|
68
68
|
command = "npx"
|
|
69
|
-
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server", "sap-mcp-server"]
|
|
70
|
-
|
|
69
|
+
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server@0.8.0", "sap-mcp-server"]
|
|
70
|
+
startup_timeout_sec = 300
|
|
71
71
|
tool_timeout_sec = 300
|
|
72
|
+
|
|
73
|
+
[mcp_servers.sap_payments.env]
|
|
74
|
+
SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE = "false"
|
|
75
|
+
SAP_MCP_PAYMENTS_BRIDGE_ONLY = "true"
|
|
76
|
+
SAP_ALLOWED_TOOLS = "all"
|
|
77
|
+
SAP_LOG_LEVEL = "info"
|
|
72
78
|
```
|
|
73
79
|
|
|
74
80
|
On Windows, use `npx.cmd`.
|
|
@@ -120,6 +126,10 @@ OpenClaw receives root `mcpServers` JSON when `~/.openclaw/mcp.json` is selected
|
|
|
120
126
|
Every supported runtime may also receive a local `sap_payments` server with only these enabled tools:
|
|
121
127
|
|
|
122
128
|
```txt
|
|
129
|
+
sap_payments_call_paid_tool
|
|
130
|
+
sap_payments_prepare_challenge
|
|
131
|
+
sap_payments_sign_challenge
|
|
132
|
+
sap_payments_verify_receipt
|
|
123
133
|
sap_x402_paid_call
|
|
124
134
|
sap_profile_current
|
|
125
135
|
sap_x402_estimate_cost
|
|
@@ -202,6 +212,15 @@ For signed tagged GitHub release builds, the macOS job uses these secrets when t
|
|
|
202
212
|
| `APPLE_APP_SPECIFIC_PASSWORD` | App-specific password for notarization. |
|
|
203
213
|
| `APPLE_TEAM_ID` | Apple Developer Team ID. |
|
|
204
214
|
|
|
215
|
+
For signed Windows tagged release builds, the Windows job uses these secrets when they are configured:
|
|
216
|
+
|
|
217
|
+
| Secret | Purpose |
|
|
218
|
+
| --- | --- |
|
|
219
|
+
| `WINDOWS_CSC_LINK` or `WIN_CSC_LINK` | Base64-encoded `.pfx/.p12` Authenticode certificate, or a secure URL supported by Electron Builder. |
|
|
220
|
+
| `WINDOWS_CSC_KEY_PASSWORD` or `WIN_CSC_KEY_PASSWORD` | Password for the Windows code signing certificate bundle. |
|
|
221
|
+
|
|
222
|
+
Every desktop build publishes `SHA256SUMS.txt` next to the DMG/ZIP/EXE/tar.gz artifacts.
|
|
223
|
+
|
|
205
224
|
The Electron Builder macOS config uses:
|
|
206
225
|
|
|
207
226
|
1. hardened runtime;
|
|
@@ -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/>.
|