@oobe-protocol-labs/sap-mcp-server 0.9.7 → 0.9.9

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 (48) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/USER_DOCS/03_PAYMENTS_X402_PAYSH.md +6 -0
  3. package/USER_DOCS/04_CLIENT_CONFIGS.md +3 -3
  4. package/USER_DOCS/05_SKILLS_AND_TOOLS.md +17 -4
  5. package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +5 -5
  6. package/dist/core/constants.d.ts +1 -1
  7. package/dist/core/constants.js +1 -1
  8. package/dist/payments/hosted-tool-eligibility.d.ts +21 -0
  9. package/dist/payments/hosted-tool-eligibility.d.ts.map +1 -0
  10. package/dist/payments/hosted-tool-eligibility.js +167 -0
  11. package/dist/payments/hosted-tool-eligibility.js.map +1 -0
  12. package/dist/payments/monetization-gate.d.ts.map +1 -1
  13. package/dist/payments/monetization-gate.js +6 -0
  14. package/dist/payments/monetization-gate.js.map +1 -1
  15. package/dist/payments/pricing.d.ts.map +1 -1
  16. package/dist/payments/pricing.js +2 -1
  17. package/dist/payments/pricing.js.map +1 -1
  18. package/dist/prompts/context/sap-agent-context.prompt.js +13 -8
  19. package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
  20. package/dist/prompts/context/sap-agent-start.prompt.js +1 -0
  21. package/dist/prompts/context/sap-agent-start.prompt.js.map +1 -1
  22. package/dist/prompts/registry/register-sap-agent.prompt.js +2 -2
  23. package/dist/prompts/registry/register-sap-agent.prompt.js.map +1 -1
  24. package/dist/schemas/registry.schema.d.ts +2 -2
  25. package/dist/tools/agent-start-tool.js +3 -1
  26. package/dist/tools/agent-start-tool.js.map +1 -1
  27. package/dist/tools/client-sdk-tools.js +2 -2
  28. package/dist/tools/client-sdk-tools.js.map +1 -1
  29. package/dist/tools/sap-sdk-tools.d.ts.map +1 -1
  30. package/dist/tools/sap-sdk-tools.js +318 -89
  31. package/dist/tools/sap-sdk-tools.js.map +1 -1
  32. package/dist/tools/sap-sns-tools.d.ts +2 -2
  33. package/dist/tools/sap-sns-tools.js +6 -6
  34. package/dist/tools/sap-sns-tools.js.map +1 -1
  35. package/docs/06_PAYMENTS_X402_AND_PAYSH.md +7 -0
  36. package/docs/07_ENDPOINTS_AND_CLIENTS.md +1 -1
  37. package/docs/09_TOOLS_SKILLS_AND_AGENT_GUIDE.md +7 -0
  38. package/docs/14_DESKTOP_WIZARD_RELEASE.md +1 -1
  39. package/package.json +1 -1
  40. package/server.json +3 -3
  41. package/skills/README.md +4 -2
  42. package/skills/sap-agent-registry/SKILL.md +15 -2
  43. package/skills/sap-defi/SKILL.md +8 -4
  44. package/skills/sap-discovery-indexing/SKILL.md +15 -4
  45. package/skills/sap-mcp/SKILL.md +15 -3
  46. package/skills/sap-mcp/TOOL_REFERENCE.md +11 -5
  47. package/skills/sap-operations/SKILL.md +4 -3
  48. package/skills/sap-sns/SKILL.md +16 -11
@@ -7,7 +7,10 @@ state, global directory listing, and agent profile inspection.
7
7
 
8
8
  1. Call `sap_profile_current`.
9
9
  2. Call `sap_get_network_overview` for ecosystem counters when needed.
10
- 3. Use `sap_list_all_agents` for global current agent lists.
10
+ 3. Use `sap_discover_agents` with `query`, `wallet`, `protocol`, or
11
+ `capability` for targeted paid hosted directory reads.
12
+ 4. Use `sap_list_all_agents` for global current agent lists and follow
13
+ `pagination.nextCursor` for additional pages.
11
14
 
12
15
  ## Tools
13
16
 
@@ -28,7 +31,17 @@ state, global directory listing, and agent profile inspection.
28
31
 
29
32
  ## Routing
30
33
 
31
- - "List all agents" means `sap_list_all_agents`.
34
+ - Hosted accountless SAP MCP cannot sign user-owned registry writes. If
35
+ `sap_register_agent`, `sap_update_agent`, or another registry write returns
36
+ `hosted_local_signer_required`, no x402 payment was charged; run the write on
37
+ the local SAP MCP profile or use a production unsigned builder/finalizer flow
38
+ when available.
39
+ - "Find XONA Agent" or "find an agent by name" means `sap_discover_agents` with
40
+ `query`.
41
+ - "Find x402 agents" means `sap_discover_agents` with
42
+ `hasX402Endpoint: true`.
43
+ - "List all agents" means `sap_list_all_agents` with a small `limit`, then
44
+ `pagination.nextCursor` if the user wants more.
32
45
  - "Agent by wallet" means `sap_get_agent` or `sap_get_agent_profile`.
33
46
  - "Is this agent live?" means `sap_is_agent_active`.
34
47
  - "Network totals" means `sap_get_network_overview`.
@@ -40,12 +40,16 @@ staking protocols.
40
40
  ## Flow
41
41
 
42
42
  1. Use quote/read tools first.
43
- 2. For swaps, prefer `jupiter_getQuote` then `jupiter_smartSwap` or
44
- `jupiter_swapInstructions`.
43
+ 2. In hosted mode, prefer quote/read tools and unsigned builders such as
44
+ `jupiter_getOrder`, `jupiter_swapInstructions`, or supported private swap
45
+ builders. Direct signer tools such as `jupiter_swap`, `jupiter_smartSwap`,
46
+ and `jupiter_executeOrder` require a local SAP MCP profile or external
47
+ signer and are rejected before x402 payment on hosted accountless servers.
45
48
  3. Explain slippage, route, token mints, amount units, and expected output.
46
49
  4. Preview and policy-check before signing.
47
- 5. For any unsigned or partially signed transaction returned by Jupiter, use
48
- `sap_preview_transaction`, `sap_sign_transaction`, and
50
+ 5. For any unsigned or partially signed transaction returned by hosted SAP MCP,
51
+ use `sap_payments_finalize_transaction`. For local SAP MCP stdio builders,
52
+ use `sap_preview_transaction`, `sap_sign_transaction`, and
49
53
  `sap_submit_signed_transaction`. Do not write ad-hoc signing scripts.
50
54
 
51
55
  ## Safety
@@ -18,16 +18,27 @@ indexes, and filtered agent discovery.
18
18
 
19
19
  ## Rules
20
20
 
21
- - Use `sap_list_all_agents` for global directory requests.
22
- - Use `sap_discover_agents` only with `protocol`, `capability`, or
23
- `capabilities`.
21
+ - Use `sap_discover_agents` for paid hosted agent directory search. It supports
22
+ `query`, `wallet`, `agentPda`, `protocol`, `capability`, `capabilities`,
23
+ `capabilityMode`, `hasX402Endpoint`, `limit`, `cursor`, and `view`.
24
+ - Use `sap_list_all_agents` for global directory requests or when the user asks
25
+ for the whole SAP ecosystem. Keep the first page small and follow
26
+ `pagination.nextCursor` only when the previous page is useful.
27
+ - Prefer exact filters before broad scans: `wallet` when a wallet is known,
28
+ `query` for an agent name such as `XONA`, and `capability` for one exact
29
+ capability such as `creative:imageGeneration`.
24
30
  - Use `sap_fetch_protocol_index` when the protocol ID is known.
25
31
  - Use `sap_fetch_capability_index` when the capability ID is known.
32
+ - If a capability-filtered lookup returns zero results, retry with `query` or
33
+ `wallet` before claiming the agent does not exist; capability indexes can lag
34
+ the canonical AgentAccount directory.
26
35
  - Do not guess that global enumeration is impossible; try `sap_list_all_agents`
27
- first.
36
+ first and report the exact failure if it fails.
28
37
 
29
38
  ## Common Inputs
30
39
 
31
40
  - Protocol IDs: `sap`, `jupiter`, `pyth`, `sns`, `mcp-v1`, or the exact
32
41
  protocol ID returned by protocol indexes.
33
42
  - Capability IDs usually use namespaced form such as `jupiter:swap`.
43
+ - For x402-enabled agents, set `hasX402Endpoint: true` and use `view:
44
+ "compact"` until the user selects one row.
@@ -36,11 +36,17 @@ and error strings unchanged.
36
36
  ## Discovery Rules
37
37
 
38
38
  - Use `sap_get_network_overview` for live ecosystem counters.
39
+ - Use `sap_discover_agents` for targeted paid hosted discovery. Prefer
40
+ `query`, `wallet`, `agentPda`, `protocol`, `capability`, `capabilities`,
41
+ `hasX402Endpoint`, and small `limit` values before broad scans.
39
42
  - Use `sap_list_all_agents` when the user asks for all current SAP ecosystem
40
- agents. It performs global on-chain `AgentAccount` enumeration.
41
- - Use `sap_discover_agents` or `sap_list_agents` only for filtered lookups by
42
- `protocol`, `capability`, or `capabilities`.
43
+ agents. It performs global on-chain `AgentAccount` enumeration and returns
44
+ `pagination.nextCursor` when more pages are available.
45
+ - Use `sap_list_agents` as a compatibility alias for `sap_discover_agents`.
43
46
  - Use `sap_fetch_protocol_index` when a specific protocol ID is known.
47
+ - If a capability lookup returns zero results, retry with `query` or `wallet`
48
+ before saying an agent is absent. AgentAccount rows are canonical; indexes can
49
+ lag.
44
50
  - Do not tell the user that all-agent enumeration is impossible unless
45
51
  `sap_list_all_agents` fails and you report the exact failure.
46
52
 
@@ -169,6 +175,12 @@ another unsigned Solana transaction payload, finalize it locally with
169
175
  for a user-owned signer, do not create `.js`/`.mjs` signing scripts, and do not
170
176
  read keypair JSON.
171
177
 
178
+ If hosted SAP MCP returns `hosted_local_signer_required`, no x402 payment was
179
+ charged. The tool requires a local user signature or has no hosted unsigned
180
+ builder yet. Do not retry the same hosted direct write; use the local SAP MCP
181
+ profile or an unsigned hosted builder plus `sap_payments_finalize_transaction`
182
+ when one exists.
183
+
172
184
  When summarizing a hosted connection, use language like:
173
185
  "server is non-custodial; user signatures come from the local SAP profile or
174
186
  external signer." Avoid saying "signer not configured", "read-only only",
@@ -49,9 +49,12 @@ SAP registry and discovery:
49
49
  `sap_deactivate_tool`, `sap_reactivate_tool`,
50
50
  `sap_report_tool_invocations`, `sap_report_calls`.
51
51
 
52
- Use `sap_list_all_agents` for user requests such as "give me a list of all
53
- agents in the SAP ecosystem rn". Use `sap_discover_agents` only when the user
54
- provides a protocol or capability filter.
52
+ Use `sap_discover_agents` for targeted paid hosted agent search by `query`,
53
+ `wallet`, `agentPda`, `protocol`, `capability`, `capabilities`, or
54
+ `hasX402Endpoint`. Use `sap_list_all_agents` for user requests such as "give me
55
+ a list of all agents in the SAP ecosystem rn"; start with a small `limit` and
56
+ continue with `pagination.nextCursor`. If a capability lookup returns zero,
57
+ retry with `query` or `wallet` before reporting that the agent is absent.
55
58
 
56
59
  SAP memory and sessions:
57
60
 
@@ -92,13 +95,16 @@ SAP SNS and direct SNS domain workflows:
92
95
  `sap_sns_get_domain_records`, `sap_sns_get_record`,
93
96
  `sap_sns_resolve_wallet`, `sap_sns_check_ownership`,
94
97
  `sap_sns_get_domain_pda`, `sap_sns_get_record_pda`,
95
- `sap_sns_build_register_domain_transaction`,
96
98
  `sap_sns_build_manage_record_transaction`,
97
- `sap_sns_build_set_primary_domain_transaction`,
98
99
  `sap_sns_register_agent_domain`, `sns_registerDomain`, `sns_resolveDomain`,
99
100
  `sns_reverseLookup`, `alldomains_getOwnedDomains`,
100
101
  `alldomains_registerDomain`, `alldomains_resolveDomain`.
101
102
 
103
+ `sap_sns_register_agent_domain` is local-signer-only. Hosted accountless SAP MCP
104
+ rejects that direct write before x402 payment. For hosted record changes, use
105
+ `sap_sns_build_manage_record_transaction` and finalize the unsigned transaction
106
+ locally with `sap_payments_finalize_transaction`.
107
+
102
108
  ## `sap-agentkit`
103
109
 
104
110
  Solana RPC, SPL token, pricing, DAS:
@@ -30,9 +30,10 @@ Use:
30
30
  - `sap_list_agents`
31
31
  - `sap_list_all_agents`
32
32
 
33
- Use `sap_list_all_agents` for global current ecosystem requests. Use
34
- `sap_discover_agents` and `sap_list_agents` only when the user provides a
35
- protocol or capability filter.
33
+ Use `sap_discover_agents` for targeted hosted directory reads by `query`,
34
+ `wallet`, `agentPda`, `protocol`, `capability`, `capabilities`, or
35
+ `hasX402Endpoint`. Use `sap_list_all_agents` for global current ecosystem
36
+ requests, keep pages small, and continue with `pagination.nextCursor`.
36
37
 
37
38
  ## Memory
38
39
 
@@ -9,15 +9,19 @@ This skill is adapted from upstream `sns-skill` plus SAP MCP's
9
9
  ## Safe Flow
10
10
 
11
11
  1. Check the loaded profile with `sap_profile_current`.
12
- 2. Check domain availability with `sap_sns_check_domain`.
12
+ 2. Check one domain availability for free with `sap_sns_check_domain`.
13
13
  3. Validate records with `sap_sns_validate_records`.
14
- 4. Build unsigned transactions when possible:
15
- - `sap_sns_build_register_domain_transaction`
16
- - `sap_sns_build_manage_record_transaction`
17
- - `sap_sns_build_set_primary_domain_transaction`
18
- 5. Preview transaction with `sap_preview_transaction`.
19
- 6. Sign only through `sap_sign_transaction` or the direct tool
20
- `sap_sns_register_agent_domain` when policy allows it.
14
+ 4. For hosted record updates, build an unsigned transaction with
15
+ `sap_sns_build_manage_record_transaction`.
16
+ 5. Preview and finalize hosted builder transactions locally with
17
+ `sap_payments_finalize_transaction`.
18
+ 6. Register domains directly only from a local SAP MCP profile using
19
+ `sap_sns_register_agent_domain` after explicit user confirmation.
20
+
21
+ Hosted accountless SAP MCP cannot register a .sol domain directly because the
22
+ purchase requires the user wallet signature. If a hosted direct registration is
23
+ rejected with `hosted_local_signer_required`, no x402 payment was charged; switch
24
+ to the local profile flow instead of retrying the hosted write.
21
25
 
22
26
  ## Tools
23
27
 
@@ -31,9 +35,7 @@ This skill is adapted from upstream `sns-skill` plus SAP MCP's
31
35
  - `sap_sns_check_ownership`
32
36
  - `sap_sns_get_domain_pda`
33
37
  - `sap_sns_get_record_pda`
34
- - `sap_sns_build_register_domain_transaction`
35
38
  - `sap_sns_build_manage_record_transaction`
36
- - `sap_sns_build_set_primary_domain_transaction`
37
39
  - `sap_sns_register_agent_domain`
38
40
  - `sns_registerDomain`
39
41
  - `sns_resolveDomain`
@@ -48,4 +50,7 @@ This skill is adapted from upstream `sns-skill` plus SAP MCP's
48
50
  - Never read the local wallet file.
49
51
  - Prefer build/preview/sign flows over direct register flows when the user
50
52
  needs to review transaction details.
51
-
53
+ - Do not claim `sap_sns_build_register_domain_transaction` exists unless it is
54
+ returned by `tools/list`.
55
+ - Do not route hosted direct registration through x402; hosted accountless
56
+ servers reject local-signer writes before payment.