@oobe-protocol-labs/sap-mcp-server 0.9.15 → 0.9.20
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/.env.example +8 -7
- package/CHANGELOG.md +227 -0
- package/README.md +3 -3
- package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +1 -1
- package/USER_DOCS/04_CLIENT_CONFIGS.md +3 -3
- package/USER_DOCS/05_SKILLS_AND_TOOLS.md +16 -8
- package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +5 -5
- package/config.example.json +5 -4
- package/config.schema.json +7 -2
- package/config.secure-example.json +5 -4
- package/dist/adapters/index.d.ts +7 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +7 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/mcp/errors.d.ts +13 -1
- package/dist/adapters/mcp/errors.d.ts.map +1 -1
- package/dist/adapters/mcp/errors.js +13 -1
- package/dist/adapters/mcp/errors.js.map +1 -1
- package/dist/adapters/mcp/index.d.ts +7 -1
- package/dist/adapters/mcp/index.d.ts.map +1 -1
- package/dist/adapters/mcp/index.js +7 -1
- package/dist/adapters/mcp/index.js.map +1 -1
- package/dist/adapters/mcp/prompt-response.d.ts +13 -1
- package/dist/adapters/mcp/prompt-response.d.ts.map +1 -1
- package/dist/adapters/mcp/prompt-response.js +13 -1
- package/dist/adapters/mcp/prompt-response.js.map +1 -1
- package/dist/adapters/mcp/resource-response.d.ts +14 -1
- package/dist/adapters/mcp/resource-response.d.ts.map +1 -1
- package/dist/adapters/mcp/resource-response.js +14 -1
- package/dist/adapters/mcp/resource-response.js.map +1 -1
- package/dist/adapters/mcp/sdk-compat.d.ts +11 -3
- package/dist/adapters/mcp/sdk-compat.d.ts.map +1 -1
- package/dist/adapters/mcp/sdk-compat.js +213 -24
- package/dist/adapters/mcp/sdk-compat.js.map +1 -1
- package/dist/adapters/mcp/tool-response.d.ts +39 -4
- package/dist/adapters/mcp/tool-response.d.ts.map +1 -1
- package/dist/adapters/mcp/tool-response.js +39 -4
- package/dist/adapters/mcp/tool-response.js.map +1 -1
- package/dist/adapters/solana/commitment.d.ts +14 -2
- package/dist/adapters/solana/commitment.d.ts.map +1 -1
- package/dist/adapters/solana/commitment.js +14 -2
- package/dist/adapters/solana/commitment.js.map +1 -1
- package/dist/adapters/solana/connection.d.ts +11 -2
- package/dist/adapters/solana/connection.d.ts.map +1 -1
- package/dist/adapters/solana/connection.js +11 -2
- package/dist/adapters/solana/connection.js.map +1 -1
- package/dist/adapters/solana/index.d.ts +7 -1
- package/dist/adapters/solana/index.d.ts.map +1 -1
- package/dist/adapters/solana/index.js +7 -1
- package/dist/adapters/solana/index.js.map +1 -1
- package/dist/adapters/solana/public-key.d.ts +11 -2
- package/dist/adapters/solana/public-key.d.ts.map +1 -1
- package/dist/adapters/solana/public-key.js +11 -2
- package/dist/adapters/solana/public-key.js.map +1 -1
- package/dist/config/defaults.d.ts +5 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +5 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/env.d.ts +4 -0
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +11 -6
- package/dist/config/env.js.map +1 -1
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/mcp-client-injection.d.ts.map +1 -1
- package/dist/config/mcp-client-injection.js +97 -1
- package/dist/config/mcp-client-injection.js.map +1 -1
- package/dist/config/paths.d.ts +5 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +5 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/profiles.d.ts +3 -10
- package/dist/config/profiles.d.ts.map +1 -1
- package/dist/config/profiles.js +5 -0
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/schema.d.ts +5 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +5 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/config/secure-config.d.ts +5 -0
- package/dist/config/secure-config.d.ts.map +1 -1
- package/dist/config/secure-config.js +5 -0
- package/dist/config/secure-config.js.map +1 -1
- package/dist/config/setup.d.ts +5 -0
- package/dist/config/setup.d.ts.map +1 -1
- package/dist/config/setup.js +5 -0
- package/dist/config/setup.js.map +1 -1
- package/dist/config-cli.d.ts +3 -13
- package/dist/config-cli.d.ts.map +1 -1
- package/dist/config-cli.js +5 -0
- package/dist/config-cli.js.map +1 -1
- package/dist/core/constants.d.ts +25 -6
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +27 -8
- package/dist/core/constants.js.map +1 -1
- package/dist/core/errors.d.ts +5 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +5 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/guards.d.ts +5 -0
- package/dist/core/guards.d.ts.map +1 -1
- package/dist/core/guards.js +3 -1
- package/dist/core/guards.js.map +1 -1
- package/dist/core/index.d.ts +7 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/logger.js +1 -1
- package/dist/core/logger.js.map +1 -1
- package/dist/core/result.d.ts +77 -9
- package/dist/core/result.d.ts.map +1 -1
- package/dist/core/result.js +68 -9
- package/dist/core/result.js.map +1 -1
- package/dist/core/types.d.ts +5 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +3 -4
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/payments/facilitator-rpc-fallback.d.ts.map +1 -1
- package/dist/payments/facilitator-rpc-fallback.js +95 -0
- package/dist/payments/facilitator-rpc-fallback.js.map +1 -1
- package/dist/payments/hosted-tool-eligibility.d.ts +1 -0
- package/dist/payments/hosted-tool-eligibility.d.ts.map +1 -1
- package/dist/payments/hosted-tool-eligibility.js +1 -0
- package/dist/payments/hosted-tool-eligibility.js.map +1 -1
- package/dist/payments/mcp-session-cache.d.ts +35 -0
- package/dist/payments/mcp-session-cache.d.ts.map +1 -0
- package/dist/payments/mcp-session-cache.js +83 -0
- package/dist/payments/mcp-session-cache.js.map +1 -0
- package/dist/payments/monetization-gate.d.ts +5 -0
- package/dist/payments/monetization-gate.d.ts.map +1 -1
- package/dist/payments/monetization-gate.js +24 -1
- package/dist/payments/monetization-gate.js.map +1 -1
- package/dist/payments/pricing.d.ts +2 -0
- package/dist/payments/pricing.d.ts.map +1 -1
- package/dist/payments/pricing.js +126 -10
- package/dist/payments/pricing.js.map +1 -1
- package/dist/payments/usage-ledger.d.ts +36 -2
- package/dist/payments/usage-ledger.d.ts.map +1 -1
- package/dist/payments/usage-ledger.js +121 -4
- package/dist/payments/usage-ledger.js.map +1 -1
- package/dist/payments/x402-paid-call.d.ts +50 -0
- package/dist/payments/x402-paid-call.d.ts.map +1 -1
- package/dist/payments/x402-paid-call.js +171 -0
- package/dist/payments/x402-paid-call.js.map +1 -1
- package/dist/policy/default-policies.d.ts +18 -2
- package/dist/policy/default-policies.d.ts.map +1 -1
- package/dist/policy/default-policies.js +18 -2
- package/dist/policy/default-policies.js.map +1 -1
- package/dist/policy/index.d.ts +6 -3
- package/dist/policy/index.d.ts.map +1 -1
- package/dist/policy/index.js +6 -3
- package/dist/policy/index.js.map +1 -1
- package/dist/policy/local-policy-engine.d.ts +71 -13
- package/dist/policy/local-policy-engine.d.ts.map +1 -1
- package/dist/policy/local-policy-engine.js +33 -11
- package/dist/policy/local-policy-engine.js.map +1 -1
- package/dist/policy/permission-checks.d.ts +29 -3
- package/dist/policy/permission-checks.d.ts.map +1 -1
- package/dist/policy/permission-checks.js +29 -3
- package/dist/policy/permission-checks.js.map +1 -1
- package/dist/policy/policy-engine.d.ts +22 -2
- package/dist/policy/policy-engine.d.ts.map +1 -1
- package/dist/policy/policy-engine.js +22 -2
- package/dist/policy/policy-engine.js.map +1 -1
- package/dist/policy/policy-types.d.ts +55 -5
- package/dist/policy/policy-types.d.ts.map +1 -1
- package/dist/policy/policy-types.js +8 -1
- package/dist/policy/policy-types.js.map +1 -1
- package/dist/policy/risk-level.d.ts +32 -3
- package/dist/policy/risk-level.d.ts.map +1 -1
- package/dist/policy/risk-level.js +32 -3
- package/dist/policy/risk-level.js.map +1 -1
- package/dist/policy/spending-limits.d.ts +29 -3
- package/dist/policy/spending-limits.d.ts.map +1 -1
- package/dist/policy/spending-limits.js +29 -3
- package/dist/policy/spending-limits.js.map +1 -1
- package/dist/premium/activation-manager.d.ts +43 -0
- package/dist/premium/activation-manager.d.ts.map +1 -0
- package/dist/premium/activation-manager.js +131 -0
- package/dist/premium/activation-manager.js.map +1 -0
- package/dist/premium/builtin-plugins.d.ts +143 -0
- package/dist/premium/builtin-plugins.d.ts.map +1 -0
- package/dist/premium/builtin-plugins.js +394 -0
- package/dist/premium/builtin-plugins.js.map +1 -0
- package/dist/premium/event-store.d.ts +61 -0
- package/dist/premium/event-store.d.ts.map +1 -0
- package/dist/premium/event-store.js +130 -0
- package/dist/premium/event-store.js.map +1 -0
- package/dist/premium/index.d.ts +54 -0
- package/dist/premium/index.d.ts.map +1 -0
- package/dist/premium/index.js +54 -0
- package/dist/premium/index.js.map +1 -0
- package/dist/premium/manifest-builder.d.ts +65 -0
- package/dist/premium/manifest-builder.d.ts.map +1 -0
- package/dist/premium/manifest-builder.js +182 -0
- package/dist/premium/manifest-builder.js.map +1 -0
- package/dist/premium/meme-radar-capabilities.d.ts +38 -0
- package/dist/premium/meme-radar-capabilities.d.ts.map +1 -0
- package/dist/premium/meme-radar-capabilities.js +306 -0
- package/dist/premium/meme-radar-capabilities.js.map +1 -0
- package/dist/premium/metrics.d.ts +27 -0
- package/dist/premium/metrics.d.ts.map +1 -0
- package/dist/premium/metrics.js +65 -0
- package/dist/premium/metrics.js.map +1 -0
- package/dist/premium/plugin-validator.d.ts +39 -0
- package/dist/premium/plugin-validator.d.ts.map +1 -0
- package/dist/premium/plugin-validator.js +325 -0
- package/dist/premium/plugin-validator.js.map +1 -0
- package/dist/premium/private-manifest-loader.d.ts +111 -0
- package/dist/premium/private-manifest-loader.d.ts.map +1 -0
- package/dist/premium/private-manifest-loader.js +285 -0
- package/dist/premium/private-manifest-loader.js.map +1 -0
- package/dist/premium/provider-bridge.d.ts +109 -0
- package/dist/premium/provider-bridge.d.ts.map +1 -0
- package/dist/premium/provider-bridge.js +239 -0
- package/dist/premium/provider-bridge.js.map +1 -0
- package/dist/premium/session-manager.d.ts +125 -0
- package/dist/premium/session-manager.d.ts.map +1 -0
- package/dist/premium/session-manager.js +337 -0
- package/dist/premium/session-manager.js.map +1 -0
- package/dist/premium/stream-broker.d.ts +98 -0
- package/dist/premium/stream-broker.d.ts.map +1 -0
- package/dist/premium/stream-broker.js +199 -0
- package/dist/premium/stream-broker.js.map +1 -0
- package/dist/premium/tech-fundamentals-capabilities.d.ts +37 -0
- package/dist/premium/tech-fundamentals-capabilities.d.ts.map +1 -0
- package/dist/premium/tech-fundamentals-capabilities.js +283 -0
- package/dist/premium/tech-fundamentals-capabilities.js.map +1 -0
- package/dist/premium/trading-capabilities.d.ts +36 -0
- package/dist/premium/trading-capabilities.d.ts.map +1 -0
- package/dist/premium/trading-capabilities.js +205 -0
- package/dist/premium/trading-capabilities.js.map +1 -0
- package/dist/premium/types.d.ts +518 -0
- package/dist/premium/types.d.ts.map +1 -0
- package/dist/premium/types.js +23 -0
- package/dist/premium/types.js.map +1 -0
- package/dist/premium/webhook-engine.d.ts +102 -0
- package/dist/premium/webhook-engine.d.ts.map +1 -0
- package/dist/premium/webhook-engine.js +382 -0
- package/dist/premium/webhook-engine.js.map +1 -0
- package/dist/prompts/context/sap-agent-context.prompt.d.ts +5 -0
- package/dist/prompts/context/sap-agent-context.prompt.d.ts.map +1 -1
- package/dist/prompts/context/sap-agent-context.prompt.js +2 -8
- package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
- package/dist/prompts/context/sap-agent-intent-router.prompt.d.ts +14 -0
- package/dist/prompts/context/sap-agent-intent-router.prompt.d.ts.map +1 -0
- package/dist/prompts/context/sap-agent-intent-router.prompt.js +155 -0
- package/dist/prompts/context/sap-agent-intent-router.prompt.js.map +1 -0
- package/dist/prompts/context/sap-agent-start.prompt.js +1 -0
- package/dist/prompts/context/sap-agent-start.prompt.js.map +1 -1
- package/dist/prompts/developer/debug-sap-error.prompt.d.ts +5 -0
- package/dist/prompts/developer/debug-sap-error.prompt.d.ts.map +1 -1
- package/dist/prompts/developer/debug-sap-error.prompt.js +3 -4
- package/dist/prompts/developer/debug-sap-error.prompt.js.map +1 -1
- package/dist/prompts/developer/generate-sap-integration.prompt.d.ts +5 -0
- package/dist/prompts/developer/generate-sap-integration.prompt.d.ts.map +1 -1
- package/dist/prompts/developer/generate-sap-integration.prompt.js +3 -4
- package/dist/prompts/developer/generate-sap-integration.prompt.js.map +1 -1
- package/dist/prompts/developer/index.d.ts +4 -1
- package/dist/prompts/developer/index.d.ts.map +1 -1
- package/dist/prompts/developer/index.js +4 -1
- package/dist/prompts/developer/index.js.map +1 -1
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts +5 -0
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts.map +1 -1
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js +3 -4
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js.map +1 -1
- package/dist/prompts/execution-proof/index.d.ts +4 -1
- package/dist/prompts/execution-proof/index.d.ts.map +1 -1
- package/dist/prompts/execution-proof/index.js +4 -1
- package/dist/prompts/execution-proof/index.js.map +1 -1
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts +5 -0
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts.map +1 -1
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.js +3 -4
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.js.map +1 -1
- package/dist/prompts/index.d.ts +4 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +4 -1
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/payments/create-paid-api.prompt.d.ts +5 -0
- package/dist/prompts/payments/create-paid-api.prompt.d.ts.map +1 -1
- package/dist/prompts/payments/create-paid-api.prompt.js +3 -4
- package/dist/prompts/payments/create-paid-api.prompt.js.map +1 -1
- package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts +5 -0
- package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts.map +1 -1
- package/dist/prompts/payments/explain-x402-settlement.prompt.js +3 -4
- package/dist/prompts/payments/explain-x402-settlement.prompt.js.map +1 -1
- package/dist/prompts/payments/index.d.ts +4 -1
- package/dist/prompts/payments/index.d.ts.map +1 -1
- package/dist/prompts/payments/index.js +4 -1
- package/dist/prompts/payments/index.js.map +1 -1
- package/dist/prompts/register-prompts.d.ts +18 -2
- package/dist/prompts/register-prompts.d.ts.map +1 -1
- package/dist/prompts/register-prompts.js +21 -3
- package/dist/prompts/register-prompts.js.map +1 -1
- package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts +5 -0
- package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts.map +1 -1
- package/dist/prompts/registry/analyze-sap-agent.prompt.js +3 -4
- package/dist/prompts/registry/analyze-sap-agent.prompt.js.map +1 -1
- package/dist/prompts/registry/index.d.ts +4 -1
- package/dist/prompts/registry/index.d.ts.map +1 -1
- package/dist/prompts/registry/index.js +4 -1
- package/dist/prompts/registry/index.js.map +1 -1
- package/dist/prompts/registry/register-sap-agent.prompt.d.ts +5 -0
- package/dist/prompts/registry/register-sap-agent.prompt.d.ts.map +1 -1
- package/dist/prompts/registry/register-sap-agent.prompt.js +3 -4
- package/dist/prompts/registry/register-sap-agent.prompt.js.map +1 -1
- package/dist/remote/premium-memory.d.ts +90 -0
- package/dist/remote/premium-memory.d.ts.map +1 -0
- package/dist/remote/premium-memory.js +161 -0
- package/dist/remote/premium-memory.js.map +1 -0
- package/dist/remote/premium-routes.d.ts +99 -0
- package/dist/remote/premium-routes.d.ts.map +1 -0
- package/dist/remote/premium-routes.js +346 -0
- package/dist/remote/premium-routes.js.map +1 -0
- package/dist/remote/public-home/sections.d.ts.map +1 -1
- package/dist/remote/public-home/sections.js +7 -1
- package/dist/remote/public-home/sections.js.map +1 -1
- package/dist/remote/public-home/types.d.ts +6 -0
- package/dist/remote/public-home/types.d.ts.map +1 -1
- package/dist/remote/server.d.ts +18 -0
- package/dist/remote/server.d.ts.map +1 -1
- package/dist/remote/server.js +298 -116
- package/dist/remote/server.js.map +1 -1
- package/dist/remote/tx-relay.d.ts +42 -0
- package/dist/remote/tx-relay.d.ts.map +1 -0
- package/dist/remote/tx-relay.js +118 -0
- package/dist/remote/tx-relay.js.map +1 -0
- package/dist/resources/current/sap-current-config.resource.d.ts +5 -0
- package/dist/resources/current/sap-current-config.resource.d.ts.map +1 -1
- package/dist/resources/current/sap-current-config.resource.js +2 -5
- package/dist/resources/current/sap-current-config.resource.js.map +1 -1
- package/dist/resources/execution-proof/index.d.ts +5 -0
- package/dist/resources/execution-proof/index.d.ts.map +1 -1
- package/dist/resources/execution-proof/index.js +5 -0
- package/dist/resources/execution-proof/index.js.map +1 -1
- package/dist/resources/execution-proof/sap-execution-record.resource.d.ts +5 -0
- package/dist/resources/execution-proof/sap-execution-record.resource.d.ts.map +1 -1
- package/dist/resources/execution-proof/sap-execution-record.resource.js +3 -4
- package/dist/resources/execution-proof/sap-execution-record.resource.js.map +1 -1
- package/dist/resources/index.d.ts +5 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +5 -0
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/memory/index.d.ts +5 -0
- package/dist/resources/memory/index.d.ts.map +1 -1
- package/dist/resources/memory/index.js +5 -0
- package/dist/resources/memory/index.js.map +1 -1
- package/dist/resources/memory/sap-memory.resource.d.ts +5 -0
- package/dist/resources/memory/sap-memory.resource.d.ts.map +1 -1
- package/dist/resources/memory/sap-memory.resource.js +3 -4
- package/dist/resources/memory/sap-memory.resource.js.map +1 -1
- package/dist/resources/profile/sap-active-profile.resource.d.ts +5 -0
- package/dist/resources/profile/sap-active-profile.resource.d.ts.map +1 -1
- package/dist/resources/profile/sap-active-profile.resource.js +2 -5
- package/dist/resources/profile/sap-active-profile.resource.js.map +1 -1
- package/dist/resources/register-resources.d.ts +5 -0
- package/dist/resources/register-resources.d.ts.map +1 -1
- package/dist/resources/register-resources.js +3 -1
- package/dist/resources/register-resources.js.map +1 -1
- package/dist/resources/registry/index.d.ts +5 -0
- package/dist/resources/registry/index.d.ts.map +1 -1
- package/dist/resources/registry/index.js +5 -0
- package/dist/resources/registry/index.js.map +1 -1
- package/dist/resources/registry/sap-agent.resource.d.ts +5 -0
- package/dist/resources/registry/sap-agent.resource.d.ts.map +1 -1
- package/dist/resources/registry/sap-agent.resource.js +3 -4
- package/dist/resources/registry/sap-agent.resource.js.map +1 -1
- package/dist/resources/registry/sap-global-registry.resource.d.ts +18 -4
- package/dist/resources/registry/sap-global-registry.resource.d.ts.map +1 -1
- package/dist/resources/registry/sap-global-registry.resource.js +18 -4
- package/dist/resources/registry/sap-global-registry.resource.js.map +1 -1
- package/dist/resources/reputation/index.d.ts +4 -1
- package/dist/resources/reputation/index.d.ts.map +1 -1
- package/dist/resources/reputation/index.js +4 -1
- package/dist/resources/reputation/index.js.map +1 -1
- package/dist/resources/reputation/sap-reputation.resource.d.ts +18 -4
- package/dist/resources/reputation/sap-reputation.resource.d.ts.map +1 -1
- package/dist/resources/reputation/sap-reputation.resource.js +18 -4
- package/dist/resources/reputation/sap-reputation.resource.js.map +1 -1
- package/dist/resources/tool-schema/index.d.ts +4 -1
- package/dist/resources/tool-schema/index.d.ts.map +1 -1
- package/dist/resources/tool-schema/index.js +4 -1
- package/dist/resources/tool-schema/index.js.map +1 -1
- package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts +18 -4
- package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts.map +1 -1
- package/dist/resources/tool-schema/sap-tool-schema.resource.js +18 -4
- package/dist/resources/tool-schema/sap-tool-schema.resource.js.map +1 -1
- package/dist/sap/index.d.ts +7 -1
- package/dist/sap/index.d.ts.map +1 -1
- package/dist/sap/index.js +7 -1
- package/dist/sap/index.js.map +1 -1
- package/dist/sap/sap-client-manager.d.ts +80 -13
- package/dist/sap/sap-client-manager.d.ts.map +1 -1
- package/dist/sap/sap-client-manager.js +80 -13
- package/dist/sap/sap-client-manager.js.map +1 -1
- package/dist/sap/sap-errors.d.ts +22 -3
- package/dist/sap/sap-errors.d.ts.map +1 -1
- package/dist/sap/sap-errors.js +22 -3
- package/dist/sap/sap-errors.js.map +1 -1
- package/dist/sap/sap-types.d.ts +75 -6
- package/dist/sap/sap-types.d.ts.map +1 -1
- package/dist/sap/sap-types.js +11 -1
- package/dist/sap/sap-types.js.map +1 -1
- package/dist/schemas/common.schema.d.ts +45 -8
- package/dist/schemas/common.schema.d.ts.map +1 -1
- package/dist/schemas/common.schema.js +45 -8
- package/dist/schemas/common.schema.js.map +1 -1
- package/dist/schemas/developer.schema.d.ts +22 -3
- package/dist/schemas/developer.schema.d.ts.map +1 -1
- package/dist/schemas/developer.schema.js +22 -3
- package/dist/schemas/developer.schema.js.map +1 -1
- package/dist/schemas/execution-proof.schema.d.ts +29 -4
- package/dist/schemas/execution-proof.schema.d.ts.map +1 -1
- package/dist/schemas/execution-proof.schema.js +29 -4
- package/dist/schemas/execution-proof.schema.js.map +1 -1
- package/dist/schemas/identity.schema.d.ts +23 -3
- package/dist/schemas/identity.schema.d.ts.map +1 -1
- package/dist/schemas/identity.schema.js +23 -3
- package/dist/schemas/identity.schema.js.map +1 -1
- package/dist/schemas/index.d.ts +11 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +11 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/memory.schema.d.ts +23 -3
- package/dist/schemas/memory.schema.d.ts.map +1 -1
- package/dist/schemas/memory.schema.js +23 -3
- package/dist/schemas/memory.schema.js.map +1 -1
- package/dist/schemas/payments.schema.d.ts +24 -3
- package/dist/schemas/payments.schema.d.ts.map +1 -1
- package/dist/schemas/payments.schema.js +24 -3
- package/dist/schemas/payments.schema.js.map +1 -1
- package/dist/schemas/registry.schema.d.ts +36 -4
- package/dist/schemas/registry.schema.d.ts.map +1 -1
- package/dist/schemas/registry.schema.js +36 -4
- package/dist/schemas/registry.schema.js.map +1 -1
- package/dist/schemas/reputation.schema.d.ts +22 -3
- package/dist/schemas/reputation.schema.d.ts.map +1 -1
- package/dist/schemas/reputation.schema.js +22 -3
- package/dist/schemas/reputation.schema.js.map +1 -1
- package/dist/schemas/settlement.schema.d.ts +31 -4
- package/dist/schemas/settlement.schema.d.ts.map +1 -1
- package/dist/schemas/settlement.schema.js +31 -4
- package/dist/schemas/settlement.schema.js.map +1 -1
- package/dist/schemas/tool-schema.schema.d.ts +29 -3
- package/dist/schemas/tool-schema.schema.d.ts.map +1 -1
- package/dist/schemas/tool-schema.schema.js +29 -3
- package/dist/schemas/tool-schema.schema.js.map +1 -1
- package/dist/schemas/transaction.schema.d.ts +23 -3
- package/dist/schemas/transaction.schema.d.ts.map +1 -1
- package/dist/schemas/transaction.schema.js +23 -3
- package/dist/schemas/transaction.schema.js.map +1 -1
- package/dist/security/approval-required.d.ts +19 -2
- package/dist/security/approval-required.d.ts.map +1 -1
- package/dist/security/approval-required.js +19 -2
- package/dist/security/approval-required.js.map +1 -1
- package/dist/security/index.d.ts +7 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +7 -1
- package/dist/security/index.js.map +1 -1
- package/dist/security/private-key-guard.d.ts +18 -2
- package/dist/security/private-key-guard.d.ts.map +1 -1
- package/dist/security/private-key-guard.js +19 -2
- package/dist/security/private-key-guard.js.map +1 -1
- package/dist/security/prompt-injection-notes.d.ts +10 -1
- package/dist/security/prompt-injection-notes.d.ts.map +1 -1
- package/dist/security/prompt-injection-notes.js +10 -1
- package/dist/security/prompt-injection-notes.js.map +1 -1
- package/dist/security/unsafe-action-guard.d.ts +36 -10
- package/dist/security/unsafe-action-guard.d.ts.map +1 -1
- package/dist/security/unsafe-action-guard.js +67 -15
- package/dist/security/unsafe-action-guard.js.map +1 -1
- package/dist/server/create-server.d.ts +18 -3
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +18 -3
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/index.d.ts +6 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +6 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/register-capabilities.d.ts +17 -2
- package/dist/server/register-capabilities.d.ts.map +1 -1
- package/dist/server/register-capabilities.js +17 -2
- package/dist/server/register-capabilities.js.map +1 -1
- package/dist/server/server-metadata.d.ts +34 -1
- package/dist/server/server-metadata.d.ts.map +1 -1
- package/dist/server/server-metadata.js +35 -2
- package/dist/server/server-metadata.js.map +1 -1
- package/dist/session/agent-session.d.ts +35 -4
- package/dist/session/agent-session.d.ts.map +1 -1
- package/dist/session/agent-session.js +35 -4
- package/dist/session/agent-session.js.map +1 -1
- package/dist/session/delegated-session.d.ts +31 -3
- package/dist/session/delegated-session.d.ts.map +1 -1
- package/dist/session/delegated-session.js +31 -3
- package/dist/session/delegated-session.js.map +1 -1
- package/dist/session/index.d.ts +7 -1
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +7 -1
- package/dist/session/index.js.map +1 -1
- package/dist/session/redis-session-store.d.ts +94 -21
- package/dist/session/redis-session-store.d.ts.map +1 -1
- package/dist/session/redis-session-store.js +87 -20
- package/dist/session/redis-session-store.js.map +1 -1
- package/dist/session/session-limits.d.ts +34 -4
- package/dist/session/session-limits.d.ts.map +1 -1
- package/dist/session/session-limits.js +34 -4
- package/dist/session/session-limits.js.map +1 -1
- package/dist/session/session-permissions.d.ts +57 -7
- package/dist/session/session-permissions.d.ts.map +1 -1
- package/dist/session/session-permissions.js +57 -7
- package/dist/session/session-permissions.js.map +1 -1
- package/dist/session/session-store.d.ts +9 -1
- package/dist/session/session-store.d.ts.map +1 -1
- package/dist/session/session-store.js +18 -3
- package/dist/session/session-store.js.map +1 -1
- package/dist/session/session-types.d.ts +33 -4
- package/dist/session/session-types.d.ts.map +1 -1
- package/dist/session/session-types.js +9 -1
- package/dist/session/session-types.js.map +1 -1
- package/dist/signer/index.d.ts +7 -1
- package/dist/signer/index.d.ts.map +1 -1
- package/dist/signer/index.js +7 -1
- package/dist/signer/index.js.map +1 -1
- package/dist/signer/load-keypair.d.ts +25 -4
- package/dist/signer/load-keypair.d.ts.map +1 -1
- package/dist/signer/load-keypair.js +25 -4
- package/dist/signer/load-keypair.js.map +1 -1
- package/dist/signer/local-keypair-signer.d.ts +16 -2
- package/dist/signer/local-keypair-signer.d.ts.map +1 -1
- package/dist/signer/local-keypair-signer.js +16 -2
- package/dist/signer/local-keypair-signer.js.map +1 -1
- package/dist/signer/signer-resolver.d.ts +19 -2
- package/dist/signer/signer-resolver.d.ts.map +1 -1
- package/dist/signer/signer-resolver.js +26 -3
- package/dist/signer/signer-resolver.js.map +1 -1
- package/dist/signer/signer-types.d.ts +47 -5
- package/dist/signer/signer-types.d.ts.map +1 -1
- package/dist/signer/signer-types.js +13 -1
- package/dist/signer/signer-types.js.map +1 -1
- package/dist/tools/agent-start-tool.d.ts.map +1 -1
- package/dist/tools/agent-start-tool.js +210 -2
- package/dist/tools/agent-start-tool.js.map +1 -1
- package/dist/tools/client-sdk-tools.d.ts.map +1 -1
- package/dist/tools/client-sdk-tools.js +27 -2
- package/dist/tools/client-sdk-tools.js.map +1 -1
- package/dist/tools/estimate-tool-cost.d.ts +13 -0
- package/dist/tools/estimate-tool-cost.d.ts.map +1 -0
- package/dist/tools/estimate-tool-cost.js +139 -0
- package/dist/tools/estimate-tool-cost.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +7 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/magicblock-tools.d.ts +25 -0
- package/dist/tools/magicblock-tools.d.ts.map +1 -1
- package/dist/tools/magicblock-tools.js +116 -8
- package/dist/tools/magicblock-tools.js.map +1 -1
- package/dist/tools/perp-tools.d.ts +39 -0
- package/dist/tools/perp-tools.d.ts.map +1 -0
- package/dist/tools/perp-tools.js +1110 -0
- package/dist/tools/perp-tools.js.map +1 -0
- package/dist/tools/premium-tools.d.ts +8 -0
- package/dist/tools/premium-tools.d.ts.map +1 -0
- package/dist/tools/premium-tools.js +732 -0
- package/dist/tools/premium-tools.js.map +1 -0
- package/dist/tools/register-tools.d.ts.map +1 -1
- package/dist/tools/register-tools.js +9 -0
- package/dist/tools/register-tools.js.map +1 -1
- package/dist/tools/sap-sdk-tools.d.ts.map +1 -1
- package/dist/tools/sap-sdk-tools.js +191 -13
- package/dist/tools/sap-sdk-tools.js.map +1 -1
- package/dist/tools/x402-paid-call-tool.js +2 -2
- package/dist/tools/x402-paid-call-tool.js.map +1 -1
- package/dist/transports/index.d.ts +6 -1
- package/dist/transports/index.d.ts.map +1 -1
- package/dist/transports/index.js +6 -1
- package/dist/transports/index.js.map +1 -1
- package/dist/transports/stdio.d.ts +17 -5
- package/dist/transports/stdio.d.ts.map +1 -1
- package/dist/transports/stdio.js +17 -5
- package/dist/transports/stdio.js.map +1 -1
- package/dist/tui/wizard-save.d.ts +88 -8
- package/dist/tui/wizard-save.d.ts.map +1 -1
- package/dist/tui/wizard-save.js +77 -8
- package/dist/tui/wizard-save.js.map +1 -1
- package/docs/06_PAYMENTS_X402_AND_PAYSH.md +20 -4
- package/docs/07_ENDPOINTS_AND_CLIENTS.md +4 -1
- package/docs/09_TOOLS_SKILLS_AND_AGENT_GUIDE.md +16 -5
- package/docs/14_DESKTOP_WIZARD_RELEASE.md +3 -3
- package/docs/16_SAP_AGENT_IDENTITY_PIPELINE.md +6 -0
- package/docs/18_PREMIUM_PLUGIN_RUNTIME.md +108 -0
- package/docs/README.md +12 -0
- package/package.json +8 -6
- package/server.json +3 -3
- package/skills/README.md +10 -2
- package/skills/sap-agent-registry/SKILL.md +27 -6
- package/skills/sap-discovery-indexing/SKILL.md +11 -0
- package/skills/sap-mcp/SKILL.md +49 -16
- package/skills/sap-mcp/TOOL_REFERENCE.md +20 -7
- package/skills/sap-operations/SKILL.md +11 -0
- package/skills/sap-payments-x402/SKILL.md +30 -8
|
@@ -10,6 +10,9 @@
|
|
|
10
10
|
| `GET` | `/server.json` | Machine-readable public server metadata. | Public. |
|
|
11
11
|
| `GET` | `/pricing.json` | Machine-readable x402/pay.sh pricing catalog generated from the hosted pricing registry. | Public. |
|
|
12
12
|
| `GET` | `/openapi.json` | OpenAPI 3.1 discovery document for the hosted MCP endpoint, x402 metadata, and pay.sh catalog link. | Public. |
|
|
13
|
+
| `GET` | `/premium/catalog.json` | Secret-free premium plugin contracts, schemas, pricing models, and provider readiness. | Public. |
|
|
14
|
+
| `GET` | `/premium/streams.json` | Secret-free premium stream contracts for future x402/pay.sh real-time delivery rails. | Public. |
|
|
15
|
+
| `GET` | `/premium/webhooks.json` | Secret-free premium webhook contracts with signed delivery expectations. | Public. |
|
|
13
16
|
| `GET` | `/.well-known/x402` | x402 discovery document for paid hosted MCP resources. | Public. |
|
|
14
17
|
| `GET` | `/pay/provider.yml` | Secret-free pay.sh provider YAML for the hosted SAP MCP catalog/proxy workflow. | Public. |
|
|
15
18
|
| `GET` | `/favicon.png` | SAP MCP favicon/social preview asset. | Public. |
|
|
@@ -132,7 +135,7 @@ Codex supports Streamable HTTP MCP servers with URL-based TOML entries. Use loca
|
|
|
132
135
|
```toml
|
|
133
136
|
[mcp_servers.sap]
|
|
134
137
|
command = "npx"
|
|
135
|
-
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server@0.9.
|
|
138
|
+
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server@0.9.20", "sap-mcp-server"]
|
|
136
139
|
|
|
137
140
|
[mcp_servers.sap.env]
|
|
138
141
|
SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE = "false"
|
|
@@ -26,13 +26,21 @@ Agents should:
|
|
|
26
26
|
8. Answer in the user's language unless the user asks otherwise.
|
|
27
27
|
9. Avoid showing internal thinking, keypair bytes, raw request secrets, or private config.
|
|
28
28
|
10. Ask for approval before signing or value-moving operations when required by policy.
|
|
29
|
-
11.
|
|
29
|
+
11. Use free exact/base SAP reads before paid discovery when possible:
|
|
30
|
+
`sap_agent_context`, `sap_get_agent`, `sap_get_agent_profile`,
|
|
31
|
+
`sap_get_agent_stats`, `sap_is_agent_active`, `sap_get_global_state`, and compact
|
|
32
|
+
`sap_list_agents` pages with `limit <= 20`, `view: "compact"`, and
|
|
33
|
+
`includeProtocolIndexes: false`.
|
|
34
|
+
12. For paid hosted agent discovery, use targeted `sap_discover_agents` filters
|
|
30
35
|
before broad scans: `query`, `wallet`, `agentPda`, `protocol`,
|
|
31
36
|
`capability`, `capabilities`, `hasX402Endpoint`, small `limit`, then
|
|
32
37
|
`pagination.nextCursor`.
|
|
33
|
-
|
|
38
|
+
13. If a capability lookup returns zero agents, retry with `query` or `wallet`
|
|
34
39
|
before saying the agent is absent; AgentAccount rows are canonical and
|
|
35
40
|
indexes can lag.
|
|
41
|
+
14. Call `sap_agent_next_action` before retrying after `payment_required`,
|
|
42
|
+
`hosted_local_signer_required`, transient RPC errors, missing local bridge
|
|
43
|
+
tools, or submitted signatures that did not confirm.
|
|
36
44
|
|
|
37
45
|
The intended user command is short:
|
|
38
46
|
|
|
@@ -54,9 +62,12 @@ unless the user explicitly asks what tools are available.
|
|
|
54
62
|
SAP MCP exposes a free startup path:
|
|
55
63
|
|
|
56
64
|
1. `sap_agent_start` returns the machine-readable agent playbook.
|
|
57
|
-
2. `
|
|
58
|
-
3. `
|
|
59
|
-
4. `
|
|
65
|
+
2. `sap_agent_runtime_status` returns the hosted/accountless/local-bridge routing table.
|
|
66
|
+
3. `sap_agent_context` returns free compact SAP agent context before paid discovery.
|
|
67
|
+
4. `sap_agent_next_action` classifies SAP MCP errors and tells the agent whether a retry is safe.
|
|
68
|
+
5. `sap-agent-start` is the matching MCP prompt for runtimes that prefer prompts.
|
|
69
|
+
6. `sap_skills_bundle` returns the bundled SAP MCP skills so the agent can load tool routing, x402, SNS, registry, chat, and Solana protocol guidance.
|
|
70
|
+
7. `sap_payments_readiness` checks the local non-custodial payment bridge before paid/write hosted calls.
|
|
60
71
|
|
|
61
72
|
These calls are free. Paid tools should only start after the agent has loaded
|
|
62
73
|
skills and, when needed, verified the local `sap_payments` bridge.
|
|
@@ -66,7 +66,7 @@ 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@0.9.
|
|
69
|
+
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server@0.9.20", "sap-mcp-server"]
|
|
70
70
|
startup_timeout_sec = 300
|
|
71
71
|
tool_timeout_sec = 300
|
|
72
72
|
|
|
@@ -279,8 +279,8 @@ npm pack --dry-run --cache ./.npm-cache
|
|
|
279
279
|
The current local macOS arm64 build produces:
|
|
280
280
|
|
|
281
281
|
```txt
|
|
282
|
-
SAP-MCP-Wizard-0.9.
|
|
283
|
-
SAP-MCP-Wizard-0.9.
|
|
282
|
+
SAP-MCP-Wizard-0.9.20-arm64.dmg
|
|
283
|
+
SAP-MCP-Wizard-0.9.20-arm64.zip
|
|
284
284
|
```
|
|
285
285
|
|
|
286
286
|
Windows EXE and Linux artifacts are produced by the GitHub Actions matrix.
|
|
@@ -235,6 +235,12 @@ Then call:
|
|
|
235
235
|
confirms the agent account and reports a non-failing `protocolFee` audit.
|
|
236
236
|
- Do not call profile/image update complete until `sap_payments_update_agent`
|
|
237
237
|
confirms and a fresh `sap_get_agent_profile` read shows the intended fields.
|
|
238
|
+
- If an update returns Anchor 3012, `AccountNotInitialized`, or a
|
|
239
|
+
`pricing_menu` error, do not classify it as missing `sap_payments` and do not
|
|
240
|
+
ask the user to repair/restart the runtime. The local signer route worked; the
|
|
241
|
+
SAP registry account lifecycle is missing a required on-chain PDA. Call
|
|
242
|
+
`sap_agent_next_action` and `sap_protocol_invariants`, then use the current
|
|
243
|
+
SDK/server initializer path before retrying the update.
|
|
238
244
|
- Do not create temporary signing scripts.
|
|
239
245
|
- Do not read keypair JSON.
|
|
240
246
|
- Do not pay x402 for writes that the hosted server says require local signer.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# SAP MCP Premium Plugin Runtime
|
|
2
|
+
|
|
3
|
+
SAP MCP includes a typed premium plugin contract for paid streams, webhooks, and enterprise capabilities. The goal is to let agents discover paid real-time capabilities, validate schemas before spending, and bind future x402/pay.sh receipts to a clear session id without exposing private provider code or user key material.
|
|
4
|
+
|
|
5
|
+
This layer is deliberately strict:
|
|
6
|
+
|
|
7
|
+
- no fake stream data
|
|
8
|
+
- no implicit provider claims
|
|
9
|
+
- no execution of plugin code from user input
|
|
10
|
+
- no keypair bytes or provider secrets in public metadata
|
|
11
|
+
- no x402 charge for invalid catalog/session planning requests
|
|
12
|
+
|
|
13
|
+
## What Ships In The Open Server
|
|
14
|
+
|
|
15
|
+
The public MCP server exposes free discovery and planning tools:
|
|
16
|
+
|
|
17
|
+
| Tool | Purpose |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| `sap_premium_plugin_catalog` | Lists premium plugin manifests, schemas, pricing contracts, provider readiness, and private plugin loader guidance. |
|
|
20
|
+
| `sap_stream_catalog` | Lists stream capability contracts such as quote deltas, price ticks, registry events, and x402 ledger events. |
|
|
21
|
+
| `sap_webhook_catalog` | Lists webhook delivery contracts and signed callback event types. |
|
|
22
|
+
| `sap_premium_validate_plugin_manifest` | Validates a manifest before publication or enterprise loading. |
|
|
23
|
+
| `sap_premium_plugin_template` | Builds a strict data-only manifest template for custom stream, webhook, or premium tool contracts. |
|
|
24
|
+
| `sap_premium_session_start` | Creates an unpaid, bounded session plan for a premium capability. |
|
|
25
|
+
| `sap_premium_session_status` | Reads in-memory premium session planning status. |
|
|
26
|
+
|
|
27
|
+
Planning is free because it prevents wasted x402 attempts. Live premium delivery should be charged by the delivery rail once the provider is configured and the session is activation-ready.
|
|
28
|
+
|
|
29
|
+
## Public HTTP Discovery
|
|
30
|
+
|
|
31
|
+
The hosted server also exposes the same premium contracts as public, machine-readable JSON:
|
|
32
|
+
|
|
33
|
+
| Endpoint | Purpose |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| `/premium/catalog.json` | Full premium plugin catalog with provider readiness, pricing contracts, stream/webhook/tool capability ids, and private loader guidance. |
|
|
36
|
+
| `/premium/streams.json` | Stream-only discovery for price ticks, quote deltas, registry events, and x402 ledger streams. |
|
|
37
|
+
| `/premium/webhooks.json` | Webhook-only discovery for signed callback subscriptions and event delivery contracts. |
|
|
38
|
+
|
|
39
|
+
These endpoints are discovery-only. They do not activate paid streams, execute private plugins, expose provider secrets, or return live provider data while readiness is false.
|
|
40
|
+
|
|
41
|
+
## Provider Readiness
|
|
42
|
+
|
|
43
|
+
Capabilities that depend on external streaming or webhook infrastructure include explicit provider env vars. If a required env var is missing, the capability returns:
|
|
44
|
+
|
|
45
|
+
```txt
|
|
46
|
+
status: requires-provider
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Agents must not attempt paid activation when provider readiness is false. They should tell the user that the capability is contract-ready but not live on this deployment.
|
|
50
|
+
|
|
51
|
+
## Built-In Premium Contracts
|
|
52
|
+
|
|
53
|
+
The open catalog currently defines contract-level manifests for:
|
|
54
|
+
|
|
55
|
+
| Plugin | Capability Examples |
|
|
56
|
+
| --- | --- |
|
|
57
|
+
| `sap-premium-market-data` | Jupiter quote deltas, Pyth price ticks, price threshold webhooks. |
|
|
58
|
+
| `sap-premium-trading-streams` | Cross-DEX arbitrage scanning, volatility breakout detection, MEV-protected route optimization. |
|
|
59
|
+
| `sap-premium-meme-radar` | New listing alerts, social sentiment, rugpull risk, DEX volume anomalies. |
|
|
60
|
+
| `sap-premium-tech-fundamentals` | GitHub activity spikes, TVL changes, tokenomics analysis. |
|
|
61
|
+
|
|
62
|
+
These are not mock feeds. They are typed contracts that become live only when the corresponding provider env is configured.
|
|
63
|
+
|
|
64
|
+
## Private Enterprise Plugins
|
|
65
|
+
|
|
66
|
+
Enterprise/private plugin code should live outside the public repository. The public server exposes the contract and validation path only.
|
|
67
|
+
|
|
68
|
+
Supported loader env contract:
|
|
69
|
+
|
|
70
|
+
```txt
|
|
71
|
+
SAP_MCP_ENABLE_PREMIUM_PLUGINS=true
|
|
72
|
+
SAP_MCP_PLUGIN_DIR=/secure/path/to/private/plugins
|
|
73
|
+
SAP_MCP_PREMIUM_EXPOSE_PRIVATE_DISCOVERY=false
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Private plugins must provide manifests that pass:
|
|
77
|
+
|
|
78
|
+
```txt
|
|
79
|
+
sap_premium_validate_plugin_manifest
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The runtime loads private manifests as data only from the configured directory.
|
|
83
|
+
It does not execute plugin code supplied through MCP tool input. Private and
|
|
84
|
+
enterprise manifests are not exposed in public catalog responses unless
|
|
85
|
+
`SAP_MCP_PREMIUM_EXPOSE_PRIVATE_DISCOVERY=true` is set deliberately, which
|
|
86
|
+
should be reserved for authenticated or explicitly shared deployments.
|
|
87
|
+
|
|
88
|
+
Use `sap_premium_plugin_template` to generate a starter manifest, then store the
|
|
89
|
+
reviewed JSON in the private plugin subrepo under `manifests/`. Plugging and
|
|
90
|
+
unplugging a private capability is a file/deploy operation: add or remove the
|
|
91
|
+
manifest, validate it, and restart the hosted server with the intended env.
|
|
92
|
+
|
|
93
|
+
## Agent Flow
|
|
94
|
+
|
|
95
|
+
Recommended agent behavior:
|
|
96
|
+
|
|
97
|
+
1. Call `sap_premium_plugin_catalog` with `includeSchemas:true`.
|
|
98
|
+
2. Use `sap_stream_catalog` or `sap_webhook_catalog` to pick an exact capability id.
|
|
99
|
+
3. Check `providerStatus` and the capability-level `providerReady` boolean.
|
|
100
|
+
4. Call `sap_premium_session_start` to get a bounded session plan and estimated price.
|
|
101
|
+
5. Activate only through the future paid delivery rail when provider readiness is true.
|
|
102
|
+
6. Bind x402/pay.sh receipt, session id, plugin id, capability id, and event ids in the audit output.
|
|
103
|
+
|
|
104
|
+
If the provider is not ready, stop cleanly and do not request payment.
|
|
105
|
+
|
|
106
|
+
## Why This Matters
|
|
107
|
+
|
|
108
|
+
Agent commerce needs more than one-shot tools. Trading agents, research agents, protocol monitors, and marketplace agents need fast event access with clear payment boundaries. SAP MCP premium plugins create the contract layer for that: typed schemas, bounded sessions, x402/pay.sh pricing, signed delivery, and enterprise provider isolation.
|
package/docs/README.md
CHANGED
|
@@ -65,6 +65,7 @@ For paid/write hosted tools, also configure the local `sap_payments` bridge. The
|
|
|
65
65
|
- [Payments: x402 And pay.sh](user/03_PAYMENTS_X402_PAYSH.md)
|
|
66
66
|
- [Smithery And MCP Marketplaces](user/07_SMITHERY_AND_MARKETPLACES.md)
|
|
67
67
|
- [SAP Agent Identity Pipeline](16_SAP_AGENT_IDENTITY_PIPELINE.md)
|
|
68
|
+
- [Premium Plugin Runtime](18_PREMIUM_PLUGIN_RUNTIME.md)
|
|
68
69
|
|
|
69
70
|
## What The Hosted Server Provides
|
|
70
71
|
|
|
@@ -118,6 +119,7 @@ Read these first:
|
|
|
118
119
|
6. [Configuration And Wizard](03_CONFIGURATION_AND_WIZARD.md)
|
|
119
120
|
7. [Endpoints And Clients](07_ENDPOINTS_AND_CLIENTS.md)
|
|
120
121
|
8. [SAP Agent Identity Pipeline](16_SAP_AGENT_IDENTITY_PIPELINE.md)
|
|
122
|
+
9. [Premium Plugin Runtime](18_PREMIUM_PLUGIN_RUNTIME.md)
|
|
121
123
|
|
|
122
124
|
## Public Endpoints
|
|
123
125
|
|
|
@@ -127,6 +129,16 @@ Read these first:
|
|
|
127
129
|
| `GET /docs` | This documentation site. |
|
|
128
130
|
| `POST /mcp` | Streamable HTTP MCP endpoint for agents. |
|
|
129
131
|
| `GET /server.json` | Public, secret-free machine-readable server metadata. |
|
|
132
|
+
| `GET /premium/catalog.json` | Public premium plugin contracts, pricing models, schemas, and provider readiness. |
|
|
133
|
+
| `GET /premium/streams.json` | Public premium stream contracts for future x402/pay.sh real-time delivery rails. |
|
|
134
|
+
| `GET /premium/webhooks.json` | Public premium webhook contracts with signed delivery expectations. |
|
|
135
|
+
|
|
136
|
+
Premium plugin authors can use `sap_premium_plugin_template` and
|
|
137
|
+
`sap_premium_validate_plugin_manifest` to build strict data-only contracts,
|
|
138
|
+
then deploy reviewed manifests from a private plugin directory. The public
|
|
139
|
+
server never executes plugin code supplied through MCP input and does not expose
|
|
140
|
+
private/enterprise manifests unless the operator explicitly enables private
|
|
141
|
+
discovery.
|
|
130
142
|
| `GET /smithery.config.schema.json` | Optional Smithery setup schema for free discovery, native x402 clients, and local `sap_payments` bridge users. |
|
|
131
143
|
| `GET /.well-known/agent-card.json` | A2A-style agent card. |
|
|
132
144
|
| `GET /.well-known/sap-mcp-wizard.json` | Wizard install descriptor for agents that cannot see local config. |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oobe-protocol-labs/sap-mcp-server",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.20",
|
|
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",
|
|
@@ -145,13 +145,15 @@
|
|
|
145
145
|
"engines": {
|
|
146
146
|
"node": ">=22.12.0"
|
|
147
147
|
},
|
|
148
|
-
"packageManager": "pnpm@11.7.0",
|
|
149
148
|
"overrides": {
|
|
150
|
-
"
|
|
151
|
-
"
|
|
149
|
+
"@hono/node-server": "2.0.10",
|
|
150
|
+
"body-parser": "1.20.6",
|
|
151
|
+
"fast-uri": "3.1.4",
|
|
152
|
+
"hono": "4.12.27",
|
|
152
153
|
"langsmith": "^0.6.0",
|
|
154
|
+
"postcss": "8.5.18",
|
|
153
155
|
"uuid": "^11.1.1",
|
|
154
|
-
"vite": "8.1.0",
|
|
155
156
|
"ws": "^8.21.0"
|
|
156
|
-
}
|
|
157
|
+
},
|
|
158
|
+
"packageManager": "pnpm@11.7.0"
|
|
157
159
|
}
|
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.9.
|
|
6
|
+
"version": "0.9.20",
|
|
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.9.
|
|
32
|
+
"version": "0.9.20",
|
|
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.9.
|
|
48
|
+
"value": "@oobe-protocol-labs/sap-mcp-server@0.9.20"
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
"type": "positional",
|
package/skills/README.md
CHANGED
|
@@ -55,12 +55,20 @@ or wants to compare this bundled MCP skill pack with the source SDK skills:
|
|
|
55
55
|
## Agent Behavior
|
|
56
56
|
|
|
57
57
|
- Answer in the same natural language as the user's latest request.
|
|
58
|
+
- Use free exact/base SAP reads before paid discovery when possible:
|
|
59
|
+
`sap_agent_context`, `sap_get_agent`, `sap_get_agent_profile`,
|
|
60
|
+
`sap_get_agent_stats`, `sap_is_agent_active`, `sap_get_global_state`, and
|
|
61
|
+
compact `sap_list_agents` pages with `limit <= 20`.
|
|
58
62
|
- Use `sap_discover_agents` for targeted hosted agent search by query, wallet,
|
|
59
63
|
PDA, protocol, capability, capability list, or x402 endpoint presence.
|
|
60
|
-
- Use `sap_list_all_agents` for current global SAP ecosystem agent lists
|
|
61
|
-
|
|
64
|
+
- Use `sap_list_all_agents` for current global SAP ecosystem agent lists only
|
|
65
|
+
when the user needs more than the free compact orientation page, and continue
|
|
66
|
+
with `pagination.nextCursor` when more pages are needed.
|
|
62
67
|
- Treat `mcp_sap_<tool>` as a client display prefix; the callable MCP tool name
|
|
63
68
|
inside this server is the suffix, for example `jupiter_getQuote`.
|
|
69
|
+
- Call `sap_agent_next_action` before retrying after `payment_required`,
|
|
70
|
+
`hosted_local_signer_required`, transient Solana RPC errors, a missing local
|
|
71
|
+
bridge, or a submitted signature that has not confirmed.
|
|
64
72
|
- Use `skills/sap-mcp/TOOL_REFERENCE.md` and `USER_DOCS/05_SKILLS_AND_TOOLS.md`
|
|
65
73
|
as the bundled routing maps when deciding which SAP MCP tool or skill domain
|
|
66
74
|
applies to a user request.
|
|
@@ -12,10 +12,16 @@ state, global directory listing, and agent profile inspection.
|
|
|
12
12
|
full identity setup, call `sap_agent_identity_plan` before any write. It is
|
|
13
13
|
free and returns normalized fields, local-signer routing, metadata contract,
|
|
14
14
|
forbidden actions, and verification checklist.
|
|
15
|
-
4.
|
|
16
|
-
|
|
17
|
-
`
|
|
18
|
-
|
|
15
|
+
4. Use free exact/base reads before paid discovery: `sap_agent_context`,
|
|
16
|
+
`sap_get_agent`,
|
|
17
|
+
`sap_get_agent_profile`, `sap_get_agent_stats`, `sap_is_agent_active`,
|
|
18
|
+
`sap_get_global_state`, and `sap_list_agents` with `limit <= 20`,
|
|
19
|
+
`view: "compact"`, and `includeProtocolIndexes: false`.
|
|
20
|
+
5. Call `sap_get_network_overview` for ecosystem counters when needed.
|
|
21
|
+
6. Use `sap_discover_agents` with `query`, `wallet`, `protocol`, or
|
|
22
|
+
`capability` for targeted paid hosted directory reads when free exact/base
|
|
23
|
+
reads are not enough.
|
|
24
|
+
7. Use `sap_list_all_agents` for global current agent lists and follow
|
|
19
25
|
`pagination.nextCursor` for additional pages.
|
|
20
26
|
|
|
21
27
|
## Tools
|
|
@@ -23,6 +29,8 @@ state, global directory listing, and agent profile inspection.
|
|
|
23
29
|
- `sap_register_agent`
|
|
24
30
|
- `sap_protocol_invariants`
|
|
25
31
|
- `sap_agent_identity_plan`
|
|
32
|
+
- `sap_agent_context`
|
|
33
|
+
- `sap_agent_next_action`
|
|
26
34
|
- `sap_update_agent`
|
|
27
35
|
- `sap_deactivate_agent`
|
|
28
36
|
- `sap_reactivate_agent`
|
|
@@ -32,6 +40,7 @@ state, global directory listing, and agent profile inspection.
|
|
|
32
40
|
- `sap_get_agent_stats`
|
|
33
41
|
- `sap_get_global_state`
|
|
34
42
|
- `sap_get_network_overview`
|
|
43
|
+
- `sap_list_agents`
|
|
35
44
|
- `sap_list_all_agents`
|
|
36
45
|
- `sap_is_agent_active`
|
|
37
46
|
- `sap_report_calls`
|
|
@@ -50,6 +59,10 @@ state, global directory listing, and agent profile inspection.
|
|
|
50
59
|
`confirm: true`. For other registry writes, run the write on the local SAP
|
|
51
60
|
MCP profile or use a production unsigned builder/finalizer flow when
|
|
52
61
|
available.
|
|
62
|
+
- Before any retry after `payment_required`, `hosted_local_signer_required`,
|
|
63
|
+
`BlockhashNotFound`, timeout, missing `sap_payments`, or a submitted
|
|
64
|
+
signature that did not confirm, call `sap_agent_next_action`. Follow its
|
|
65
|
+
`safeToRetryNow`, `nextTool`, and `forbiddenActions` fields.
|
|
53
66
|
- Agent pictures must be public metadata, not desktop file paths. Upload the
|
|
54
67
|
image or metadata JSON to IPFS, Arweave, Kommodo, or HTTPS, then set
|
|
55
68
|
`agentUri`/`metadataUri` with `sap_payments_update_agent`.
|
|
@@ -63,6 +76,12 @@ state, global directory listing, and agent profile inspection.
|
|
|
63
76
|
- After `sap_payments_update_agent`, fetch the agent profile again and verify
|
|
64
77
|
the changed fields. For image/profile updates, `agentUri` or `metadataUri`
|
|
65
78
|
must resolve to public metadata containing the image URL.
|
|
79
|
+
- If `sap_payments_update_agent` returns Anchor 3012, `AccountNotInitialized`,
|
|
80
|
+
or mentions `pricing_menu`, do not run runtime repair and do not retry the
|
|
81
|
+
same write. This means the write reached the SAP on-chain program but a
|
|
82
|
+
required registry lifecycle PDA is missing or stale. Call
|
|
83
|
+
`sap_agent_next_action` and `sap_protocol_invariants`, then upgrade the
|
|
84
|
+
SDK/server or use the initializer path before retrying.
|
|
66
85
|
- For full agent identity setup, follow
|
|
67
86
|
`docs/16_SAP_AGENT_IDENTITY_PIPELINE.md`: SAP registration first, optional
|
|
68
87
|
Metaplex/MPL Core identity, optional SNS domain and records, then a final SAP
|
|
@@ -71,8 +90,10 @@ state, global directory listing, and agent profile inspection.
|
|
|
71
90
|
`query`.
|
|
72
91
|
- "Find x402 agents" means `sap_discover_agents` with
|
|
73
92
|
`hasX402Endpoint: true`.
|
|
74
|
-
- "List all agents" means
|
|
75
|
-
`
|
|
93
|
+
- "List all agents" means first call free `sap_list_agents` with
|
|
94
|
+
`limit <= 20`, `view: "compact"`, and `includeProtocolIndexes: false`; then
|
|
95
|
+
use paid `sap_list_all_agents` with `pagination.nextCursor` if the user wants
|
|
96
|
+
more, full rows, or ecosystem-scale enumeration.
|
|
76
97
|
- "Agent by wallet" means `sap_get_agent` or `sap_get_agent_profile`.
|
|
77
98
|
- "Is this agent live?" means `sap_is_agent_active`.
|
|
78
99
|
- "Network totals" means `sap_get_network_overview`.
|
|
@@ -18,12 +18,21 @@ indexes, and filtered agent discovery.
|
|
|
18
18
|
|
|
19
19
|
## Rules
|
|
20
20
|
|
|
21
|
+
- Start with free orientation when possible:
|
|
22
|
+
- `sap_agent_context` for a one-shot compact context read and routing hints.
|
|
23
|
+
- `sap_get_agent` or `sap_get_agent_profile` for a known owner wallet.
|
|
24
|
+
- `sap_is_agent_active` for a known owner wallet status check.
|
|
25
|
+
- `sap_get_global_state` for compact registry state.
|
|
26
|
+
- `sap_list_agents` with `limit <= 20`, `view: "compact"`, and
|
|
27
|
+
`includeProtocolIndexes: false` for a small current directory page.
|
|
21
28
|
- Use `sap_discover_agents` for paid hosted agent directory search. It supports
|
|
22
29
|
`query`, `wallet`, `agentPda`, `protocol`, `capability`, `capabilities`,
|
|
23
30
|
`capabilityMode`, `hasX402Endpoint`, `limit`, `cursor`, and `view`.
|
|
24
31
|
- Use `sap_list_all_agents` for global directory requests or when the user asks
|
|
25
32
|
for the whole SAP ecosystem. Keep the first page small and follow
|
|
26
33
|
`pagination.nextCursor` only when the previous page is useful.
|
|
34
|
+
- Use paid discovery only when the user needs search, enrichment, full rows,
|
|
35
|
+
large pages, analytics, or global enumeration beyond the free compact page.
|
|
27
36
|
- Prefer exact filters before broad scans: `wallet` when a wallet is known,
|
|
28
37
|
`query` for an agent name such as `XONA`, and `capability` for one exact
|
|
29
38
|
capability such as `creative:imageGeneration`.
|
|
@@ -34,6 +43,8 @@ indexes, and filtered agent discovery.
|
|
|
34
43
|
the canonical AgentAccount directory.
|
|
35
44
|
- Do not guess that global enumeration is impossible; try `sap_list_all_agents`
|
|
36
45
|
first and report the exact failure if it fails.
|
|
46
|
+
- If discovery hits `payment_required`, a transient RPC error, or a missing
|
|
47
|
+
local bridge, call `sap_agent_next_action` before retrying or changing route.
|
|
37
48
|
|
|
38
49
|
## Common Inputs
|
|
39
50
|
|
package/skills/sap-mcp/SKILL.md
CHANGED
|
@@ -12,20 +12,28 @@ available, then call `sap_agent_runtime_status` with the closest intent and
|
|
|
12
12
|
`sap_skills_bundle` with `includeContents: true`. Load the returned SAP MCP
|
|
13
13
|
skill contents into context before selecting advanced tools.
|
|
14
14
|
|
|
15
|
+
If the MCP runtime exposes prompts, use `sap-agent-intent-router` as the compact
|
|
16
|
+
decision prompt before paid calls, registry writes, escrow flows, identity
|
|
17
|
+
updates, or after SAP/x402/MCP errors. It routes the user intent to hosted
|
|
18
|
+
reads, `sap_payments_*`, unsigned builders, transaction finalization, or repair
|
|
19
|
+
without requiring a long pasted prompt from the user.
|
|
20
|
+
|
|
15
21
|
Always inspect runtime context through MCP tools, not by reading config files:
|
|
16
22
|
|
|
17
23
|
1. `sap_agent_start`
|
|
18
24
|
2. `sap_agent_runtime_status` with `intent: "connection"`, `"paid-call"`, `"registry-write"`, `"transaction-finalize"`, `"escrow"`, `"identity"`, or `"general"`
|
|
19
|
-
3. `
|
|
20
|
-
4. `
|
|
21
|
-
5. `
|
|
22
|
-
6. `
|
|
23
|
-
7. `
|
|
24
|
-
8. `
|
|
25
|
-
9. `
|
|
26
|
-
10. `
|
|
27
|
-
11. `
|
|
28
|
-
12. `
|
|
25
|
+
3. `sap_agent_context` for free compact agent/directory orientation before paid discovery
|
|
26
|
+
4. `sap_skills_bundle` with `includeContents: true`
|
|
27
|
+
5. `sap_pricing_catalog` before estimating hosted paid call tiers
|
|
28
|
+
6. `sap_agent_next_action` before retrying after any SAP MCP error or partial write result
|
|
29
|
+
7. `sap_skills_upgrade_plan` when local skills are missing or stale
|
|
30
|
+
8. `sap_runtime_repair_plan` when hosted tools are connected but `sap_payments` is missing
|
|
31
|
+
9. `sap_protocol_invariants` before SAP registry writes or when treasury, protocol fee, hosted write routing, or local signer routing is unclear
|
|
32
|
+
10. `sap_agent_identity_plan` before agent registration, profile-image updates, Metaplex identity, SNS linking, or full identity setup
|
|
33
|
+
11. `sap_profile_current`
|
|
34
|
+
12. `sap_profile_list`
|
|
35
|
+
13. `sap_profile_public_key`
|
|
36
|
+
14. `sap_network_stats`
|
|
29
37
|
|
|
30
38
|
For simple "are you connected?" checks, do not dump tool counts or inspect
|
|
31
39
|
local files. Use `sap_agent_runtime_status` first and answer with the hosted
|
|
@@ -45,6 +53,15 @@ and error strings unchanged.
|
|
|
45
53
|
|
|
46
54
|
## Discovery Rules
|
|
47
55
|
|
|
56
|
+
- Treat SAP registry, balances, SNS ownership, quotes, settlement status, and
|
|
57
|
+
agent profile reads as fresh data. Do not rely on old chat memory when the
|
|
58
|
+
user asks for current state; use exact lightweight reads first, then paid
|
|
59
|
+
discovery only when enrichment or broad search is needed.
|
|
60
|
+
- Use free exact/base reads first when the wallet, PDA, or a small orientation
|
|
61
|
+
page is enough: `sap_agent_context`, `sap_get_agent`, `sap_get_agent_profile`,
|
|
62
|
+
`sap_get_agent_stats`, `sap_is_agent_active`, `sap_get_global_state`, and
|
|
63
|
+
`sap_list_agents` with `limit <= 20`, `view: "compact"`, and
|
|
64
|
+
`includeProtocolIndexes: false`.
|
|
48
65
|
- Use `sap_get_network_overview` for live ecosystem counters.
|
|
49
66
|
- Use `sap_discover_agents` for targeted paid hosted discovery. Prefer
|
|
50
67
|
`query`, `wallet`, `agentPda`, `protocol`, `capability`, `capabilities`,
|
|
@@ -52,7 +69,9 @@ and error strings unchanged.
|
|
|
52
69
|
- Use `sap_list_all_agents` when the user asks for all current SAP ecosystem
|
|
53
70
|
agents. It performs global on-chain `AgentAccount` enumeration and returns
|
|
54
71
|
`pagination.nextCursor` when more pages are available.
|
|
55
|
-
- Use `sap_list_agents`
|
|
72
|
+
- Use `sap_list_agents` for a free compact orientation page first. Larger
|
|
73
|
+
pages, `view: "full"`, hydration, protocol index summaries, and global scans
|
|
74
|
+
are paid read-premium.
|
|
56
75
|
- Use `sap_fetch_protocol_index` when a specific protocol ID is known.
|
|
57
76
|
- If a capability lookup returns zero results, retry with `query` or `wallet`
|
|
58
77
|
before saying an agent is absent. AgentAccount rows are canonical; indexes can
|
|
@@ -80,7 +99,8 @@ Use the bundled routing map for local MCP tool selection:
|
|
|
80
99
|
- `USER_DOCS/05_SKILLS_AND_TOOLS.md`
|
|
81
100
|
|
|
82
101
|
SAP MCP startup and skill bootstrap tools are free context/setup tools. Call
|
|
83
|
-
`sap_agent_start`, `sap_agent_runtime_status`, `
|
|
102
|
+
`sap_agent_start`, `sap_agent_runtime_status`, `sap_agent_context`,
|
|
103
|
+
`sap_agent_next_action`, `sap_pricing_catalog`,
|
|
84
104
|
`sap_skills_list`, `sap_skills_bundle`, `sap_skills_upgrade_plan`,
|
|
85
105
|
`sap_runtime_repair_plan`, and local `sap_skills_install` directly. Do not
|
|
86
106
|
route startup, runtime status, pricing catalog, skill listing, bundling,
|
|
@@ -165,10 +185,19 @@ Use `sap_payments.sap_payments_profile_current` only as a narrower compatibility
|
|
|
165
185
|
profile check.
|
|
166
186
|
|
|
167
187
|
Basic wallet reads are free on hosted SAP MCP. Call `sol_get_balance`,
|
|
168
|
-
`spl-token_getBalance`,
|
|
169
|
-
server. Do not send these balance checks through
|
|
170
|
-
and do not summarize a balance read as a
|
|
171
|
-
problem unless a paid tool actually returned
|
|
188
|
+
`spl-token_getBalance`, `spl-token_getTokenAccounts`, and `magicblock_balance`
|
|
189
|
+
directly on the hosted server. Do not send these balance checks through
|
|
190
|
+
`sap_payments_call_paid_tool`, and do not summarize a balance read as a
|
|
191
|
+
facilitator `BlockhashNotFound` problem unless a paid tool actually returned
|
|
192
|
+
that error. Use `jupiter_getHoldings` only when the user needs enriched paid
|
|
193
|
+
portfolio context.
|
|
194
|
+
|
|
195
|
+
Before any paid tool call, use `sap_estimate_tool_cost` with the tool name to
|
|
196
|
+
get the exact pricing tier, estimated USD cost, and recommended `maxPriceUsd`.
|
|
197
|
+
This prevents silent cap aborts and failed x402 attempts on local-signer-only
|
|
198
|
+
tools. For local-signer-only tools (e.g. `sap_register_agent`), the estimate
|
|
199
|
+
will say `tier: "local-signer-only"` and tell you to use the local
|
|
200
|
+
`sap_payments_*` equivalent instead of `sap_payments_call_paid_tool`.
|
|
172
201
|
|
|
173
202
|
If a hosted paid tool returns `BlockhashNotFound`,
|
|
174
203
|
`transaction_simulation_failed`, `smart_wallet_simulation_failed`, `node is
|
|
@@ -210,6 +239,10 @@ and protocol fee invariant were verified. If `success` is false while
|
|
|
210
239
|
protocol registration lifecycle is not complete. After
|
|
211
240
|
`sap_payments_update_agent`, fetch the agent again and confirm the changed
|
|
212
241
|
fields before saying an image, metadata, pricing, or capability update is done.
|
|
242
|
+
If an update returns Anchor 3012, `AccountNotInitialized`, or `pricing_menu`, do
|
|
243
|
+
not call runtime repair or retry the same write. Route it through
|
|
244
|
+
`sap_agent_next_action` and `sap_protocol_invariants`; it is an SAP on-chain
|
|
245
|
+
registry lifecycle issue, not a missing local bridge.
|
|
213
246
|
|
|
214
247
|
Before any write-like operation, use this routing order:
|
|
215
248
|
|
|
@@ -49,12 +49,22 @@ 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
|
|
53
|
-
`
|
|
54
|
-
`
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
Use free exact/base reads before paid discovery when possible:
|
|
53
|
+
`sap_agent_context`, `sap_get_agent`, `sap_get_agent_profile`,
|
|
54
|
+
`sap_get_agent_stats`, `sap_is_agent_active`, `sap_get_global_state`, and
|
|
55
|
+
`sap_list_agents` with `limit <= 20`, `view: "compact"`, and
|
|
56
|
+
`includeProtocolIndexes: false`.
|
|
57
|
+
Use `sap_discover_agents` for targeted paid hosted search by `query`, `wallet`,
|
|
58
|
+
`agentPda`, `protocol`, `capability`, `capabilities`, or `hasX402Endpoint`.
|
|
59
|
+
Use paid `sap_list_all_agents` for user requests such as "give me a list of all
|
|
60
|
+
agents in the SAP ecosystem rn"; start with a small `limit` and continue with
|
|
61
|
+
`pagination.nextCursor`. If a capability lookup returns zero, retry with
|
|
62
|
+
`query` or `wallet` before reporting that the agent is absent.
|
|
63
|
+
|
|
64
|
+
Use `sap_agent_next_action` before retrying any SAP MCP error or partial write
|
|
65
|
+
result. It normalizes `payment_required`, `hosted_local_signer_required`,
|
|
66
|
+
transient Solana RPC failures, missing local bridge tools, and unconfirmed
|
|
67
|
+
submitted signatures into the next safe tool route.
|
|
58
68
|
|
|
59
69
|
Use `sap_protocol_invariants` before registry writes when the program id,
|
|
60
70
|
protocol treasury, source-level 0.1 SOL registration fee invariant, hosted
|
|
@@ -191,7 +201,10 @@ Protocol routing shortcuts:
|
|
|
191
201
|
|
|
192
202
|
| User intent | Most specific tools |
|
|
193
203
|
| --- | --- |
|
|
194
|
-
| SOL or SPL balance | `sol_get_balance`, `spl-token_getBalance`, `spl-token_getTokenAccounts` |
|
|
204
|
+
| SOL or SPL balance (free) | `sol_get_balance`, `spl-token_getBalance`, `spl-token_getTokenAccounts`, `magicblock_balance` |
|
|
205
|
+
| Enriched holdings (paid read-premium) | `jupiter_getHoldings` |
|
|
206
|
+
| Pre-call cost estimate (free) | `sap_estimate_tool_cost` |
|
|
207
|
+
| Pricing catalog (free) | `sap_pricing_catalog` |
|
|
195
208
|
| SOL or SPL transfer | `spl-token_transferSol`, `spl-token_transfer` |
|
|
196
209
|
| Token launch/mint/burn | `spl-token_deployToken`, `spl-token_mintTo`, `spl-token_burn` |
|
|
197
210
|
| Jupiter quote/swap | `jupiter_getQuote`, `jupiter_smartSwap`, `jupiter_swap`, `jupiter_swapInstructions` |
|
|
@@ -36,6 +36,12 @@ Use `sap_discover_agents` for targeted hosted directory reads by `query`,
|
|
|
36
36
|
`wallet`, `agentPda`, `protocol`, `capability`, `capabilities`, or
|
|
37
37
|
`hasX402Endpoint`. Use `sap_list_all_agents` for global current ecosystem
|
|
38
38
|
requests, keep pages small, and continue with `pagination.nextCursor`.
|
|
39
|
+
For first-pass orientation, prefer free reads: `sap_agent_context`,
|
|
40
|
+
`sap_get_agent`, `sap_get_agent_profile`, `sap_get_agent_stats`,
|
|
41
|
+
`sap_is_agent_active`, `sap_get_global_state`, and `sap_list_agents` with `limit <= 20`,
|
|
42
|
+
`view: "compact"`, and `includeProtocolIndexes: false`. Use paid discovery
|
|
43
|
+
only when the user needs search, enrichment, full rows, large pages, analytics,
|
|
44
|
+
or global enumeration beyond the compact page.
|
|
39
45
|
|
|
40
46
|
Before registering or updating an agent profile, call free
|
|
41
47
|
`sap_protocol_invariants` when treasury, registration fee, hosted write route,
|
|
@@ -52,6 +58,11 @@ Hosted accountless SAP MCP cannot sign wallet-owned registry writes. If hosted
|
|
|
52
58
|
`confirmationStatus`, and `protocolFee.status`; after update, fetch the agent
|
|
53
59
|
profile again and compare the changed fields.
|
|
54
60
|
|
|
61
|
+
If any SAP operation returns `payment_required`, `hosted_local_signer_required`,
|
|
62
|
+
`BlockhashNotFound`, timeout, missing `sap_payments`, or a submitted signature
|
|
63
|
+
that did not confirm, call `sap_agent_next_action` before retrying. Follow its
|
|
64
|
+
`safeToRetryNow` and `nextTool` fields.
|
|
65
|
+
|
|
55
66
|
## Memory
|
|
56
67
|
|
|
57
68
|
Use:
|