{"name":"sap-mcp-server","displayName":"SAP MCP Server | OOBE Protocol","display_name":"SAP MCP Server | OOBE Protocol","title":"SAP MCP Server | OOBE Protocol","version":"0.9.74","description":"Hosted Solana-native MCP gateway for Synapse Agent Protocol tools, x402/pay.sh monetization, SNS identity, and agent operations.","homepage":"https://mcp.sap.oobeprotocol.ai/","websiteUrl":"https://mcp.sap.oobeprotocol.ai/","website_url":"https://mcp.sap.oobeprotocol.ai/","icon":"https://mcp.sap.oobeprotocol.ai/favicon.png","iconUrl":"https://mcp.sap.oobeprotocol.ai/favicon.png","icon_url":"https://mcp.sap.oobeprotocol.ai/favicon.png","image":"https://mcp.sap.oobeprotocol.ai/favicon.png","logo":"https://mcp.sap.oobeprotocol.ai/favicon.png","icons":[{"src":"https://mcp.sap.oobeprotocol.ai/favicon.png","mimeType":"image/png","sizes":["512x512"]}],"serverInfo":{"name":"sap-mcp-server","displayName":"SAP MCP Server | OOBE Protocol","display_name":"SAP MCP Server | OOBE Protocol","title":"SAP MCP Server | OOBE Protocol","version":"0.9.74","description":"Hosted Solana-native MCP gateway for Synapse Agent Protocol tools, x402/pay.sh monetization, SNS identity, and agent operations.","homepage":"https://mcp.sap.oobeprotocol.ai/","websiteUrl":"https://mcp.sap.oobeprotocol.ai/","website_url":"https://mcp.sap.oobeprotocol.ai/","icon":"https://mcp.sap.oobeprotocol.ai/favicon.png","iconUrl":"https://mcp.sap.oobeprotocol.ai/favicon.png","icon_url":"https://mcp.sap.oobeprotocol.ai/favicon.png","image":"https://mcp.sap.oobeprotocol.ai/favicon.png","logo":"https://mcp.sap.oobeprotocol.ai/favicon.png","icons":[{"src":"https://mcp.sap.oobeprotocol.ai/favicon.png","mimeType":"image/png","sizes":["512x512"]}]},"authentication":{"required":false,"schemes":["none","x402"]},"configuration":{"required":false,"schemaUrl":"https://mcp.sap.oobeprotocol.ai/smithery.config.schema.json","configSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"SAP MCP Smithery Setup","description":"Choose how this Smithery session should use SAP MCP. The hosted endpoint is non-custodial: free discovery works immediately, while paid/write tools require either a native x402-capable client or the local sap_payments bridge created by the SAP MCP wizard.","type":"object","additionalProperties":false,"properties":{"usageMode":{"type":"string","title":"Usage mode","description":"Use free-discovery for immediate hosted reads that do not require payment. Use x402-native-client when this runtime can parse PAYMENT-REQUIRED and retry with PAYMENT-SIGNATURE or X-PAYMENT. Use local-sap-payments-bridge when a desktop/agent runtime has been configured by the SAP MCP wizard.","enum":["free-discovery","x402-native-client","local-sap-payments-bridge"],"default":"free-discovery"},"x402Payer":{"type":"string","title":"x402 payer","description":"How paid MCP calls will be paid. Select none for free discovery only, native when the current client signs x402 itself, sap-payments when the local SAP MCP bridge is installed, or custom when an external x402 CLI/proxy will handle the replay.","enum":["none","native","sap-payments","custom"],"default":"none"},"wizardCompleted":{"type":"boolean","title":"Wizard completed","description":"Set true after running the SAP MCP wizard locally: npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-config wizard. The wizard creates the local SAP profile, signer boundary, hosted sap entry, and sap_payments bridge.","default":false},"maxUsdPerPaidCall":{"type":"number","title":"Max USD per paid call","description":"Recommended local policy cap for x402/pay.sh hosted paid tool calls. The hosted server returns the challenge; the local sap_payments bridge, native x402 client, or custom payer should enforce this cap before signing.","minimum":0,"maximum":100,"default":0.02},"autoPayMicropayments":{"type":"boolean","title":"Auto-pay small calls","description":"Optional local/client behavior for tiny approved calls under the configured cap. OOBE hosted MCP never stores user keypairs, wallet bytes, or signer secrets.","default":false},"setupCommand":{"type":"string","title":"Local setup command","description":"Copy this command into a local terminal when paid/write tools should work from a non-custodial user profile.","const":"npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-config wizard","default":"npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-config wizard"},"submitRelayUrl":{"type":"string","title":"Signed transaction submit relay","description":"Optional submit-only relay for already-signed Solana transactions returned by local sap_payments_finalize_transaction. The relay never signs and never receives keypair bytes.","const":"https://mcp.sap.oobeprotocol.ai/tx/submit","default":"https://mcp.sap.oobeprotocol.ai/tx/submit"}}},"recommendedMode":"free-discovery","paidToolModes":["x402-native-client","local-sap-payments-bridge"],"instructions":"Start with free sap_agent_start, then sap_skills_bundle with includeContents=true so the agent loads SAP MCP skills before selecting tools. Paid/write tools return standard x402 challenges; complete them with a native x402-capable client or the local sap_payments bridge installed by the SAP MCP wizard. Hosted SAP MCP is non-custodial and never receives user keypair bytes.","setupCommand":"npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-config wizard","localBridge":{"serverName":"sap_payments","readinessTool":"sap_payments_readiness","paidCallTool":"sap_payments_call_paid_tool"}},"transport":{"type":"streamable-http","url":"https://mcp.sap.oobeprotocol.ai/mcp"},"tools":[{"name":"sap_protocol_invariants","title":"Get SAP Protocol Invariants","description":"Free read-only protocol invariant card for agents. Returns the current SAP program id, protocol treasury, source-level expected 0.1 SOL registration fee invariant, hosted write routing rules, local sap_payments routes, identity pipeline, and forbidden actions. Use this before SAP registry writes and whenever fee/treasury behavior is unclear. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"Get SAP Protocol Invariants input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP Protocol Invariants","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_agent_identity_plan","title":"Plan SAP Agent Identity","description":"Free read-only planner for SAP agent registration, profile/image updates, Metaplex/MPL Core identity linking, SNS linking, x402 pricing metadata, and post-write verification. Use this before sap_payments_register_agent or sap_payments_update_agent so agents know the exact local-signer route, metadata contract, forbidden actions, and protocol fee verification checklist. It does not touch chain and never signs. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"intendedAction":{"type":"string","enum":["register","update","link-metaplex","link-sns","full-identity"],"description":"Agent identity lifecycle step to plan. Use register for a new SAP agent, update for profile/image/capability changes, link-metaplex for NFT/MPL Core identity, link-sns for .sol identity, or full-identity for the recommended end-to-end flow."},"name":{"type":"string","description":"Required public display name for the SAP agent. Keep it stable enough for explorers and humans."},"description":{"type":"string","description":"Required public description of what the agent does, which protocols it can use, and its safety/trust boundaries."},"capabilities":{"type":"array","description":"Required capability list. Prefer object form for production; strings are accepted as shorthand.","items":{"oneOf":[{"type":"string","description":"Capability id shorthand, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, or risk:management."},{"type":"object","properties":{"id":{"type":"string","description":"Required stable capability id. Use protocol:action naming, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, x402:payments, or risk:management."},"description":{"type":"string","description":"Optional human-readable capability description for agents and explorers."},"protocolId":{"type":"string","description":"Optional protocol namespace backing this capability, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, or custom."},"version":{"type":"string","description":"Optional capability version string. Use semver when the capability maps to an API contract."}},"required":["id"],"additionalProperties":false,"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}],"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}},"pricing":{"type":"array","description":"Optional pricing tiers advertised by the agent. Use tokenType usdc + settlementMode x402 for pay.sh/x402 agent commerce.","items":{"type":"object","properties":{"tierId":{"type":"string","description":"Stable tier id, for example default, read, premium, value-action, or enterprise."},"pricePerCall":{"type":"string","description":"Price per call in the smallest unit of tokenType: lamports for sol, micro-USDC for usdc, or base units for spl."},"minPricePerCall":{"type":"string","description":"Optional floor price per call in the smallest unit of tokenType."},"maxPricePerCall":{"type":"string","description":"Optional ceiling price per call in the smallest unit of tokenType."},"rateLimit":{"type":"number","description":"Maximum calls per second allowed by this tier. Defaults to 60."},"maxCallsPerSession":{"type":"number","description":"Maximum calls allowed per session for this tier. Defaults to 1000."},"burstLimit":{"type":"number","description":"Optional short-window burst allowance for this tier."},"tokenType":{"type":"string","enum":["sol","usdc","spl"],"description":"Payment token type. Use usdc for x402/pay.sh agent commerce. Use spl only with tokenMint."},"tokenMint":{"type":"string","description":"Optional SPL token mint public key. Required when tokenType is spl. For mainnet USDC use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v."},"tokenDecimals":{"type":"number","description":"Decimals for the payment token. Defaults to 6 for usdc and 9 for sol when omitted."},"settlementMode":{"type":"string","enum":["instant","escrow","batched","x402"],"description":"Settlement strategy. Use x402 for HTTP 402/pay.sh flows, escrow for prepaid SAP usage ledgers, instant for direct pay-per-call, and batched for periodic settlement."},"minEscrowDeposit":{"type":"string","description":"Optional minimum escrow deposit in the smallest unit of tokenType."},"batchIntervalSec":{"type":"number","description":"Optional settlement batch interval in seconds when settlementMode is batched."},"volumeCurve":{"type":"array","description":"Optional volume discounts. Each item lowers pricePerCall after a call threshold.","items":{"type":"object","properties":{"afterCalls":{"type":"number","description":"Call count threshold where this price starts."},"pricePerCall":{"type":"string","description":"Discounted price per call in the smallest unit of tokenType."}},"required":["afterCalls","pricePerCall"],"additionalProperties":false,"description":"Volume Curve parameter for Plan SAP Agent Identity."}}},"required":["pricePerCall"],"additionalProperties":false,"description":"Pricing array of x402/pay.sh pricing tiers for the registered agent or tool. Amounts should be denominated explicitly in USDC smallest units when applicable."}},"protocols":{"type":"array","items":{"type":"string","description":"Protocols array of protocol identifiers such as sap, mcp, jupiter, pyth, metaplex, sns, or x402."},"description":"Required protocol tags the agent supports, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, payments."},"agentId":{"type":"string","description":"Optional stable lowercase agent id, for example solking. This is separate from the on-chain agent PDA."},"agentUri":{"type":"string","description":"Optional public HTTPS/IPFS/Arweave/Kommodo URI for the agent profile metadata or profile page. Never use local desktop file paths."},"metadataUri":{"type":"string","description":"Alias for agentUri. Prefer a public JSON metadata document containing name, description, image, external_url, attributes, sap, metaplex, sns, and x402 fields."},"x402Endpoint":{"type":"string","description":"Optional public x402 discovery/payment endpoint, usually https://host/.well-known/x402 for external agent services."},"snsDomain":{"type":"string","description":"Optional .sol domain to link after ownership or registration is verified."},"imageUrl":{"type":"string","description":"Optional public image URL. This must be HTTPS, IPFS, Arweave, or another public URI; desktop file paths are not valid."},"metaplexAsset":{"type":"string","description":"Optional Metaplex NFT or MPL Core asset/collection address to reference from public agent metadata."},"ownerWallet":{"type":"string","description":"Optional expected SAP owner wallet. Use this for verification planning only; signing still comes from the active local SAP profile."}},"description":"Plan SAP Agent Identity input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Plan SAP Agent Identity","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_register_agent","title":"Register SAP Agent (Raw SDK Deprecated)","description":"Deprecated raw SDK wrapper. Production registration must use sap_payments_register_agent so the local signer path confirms the account, verifies the 0.1 SOL protocol treasury fee invariant, and returns protocolComplete. Hosted accountless SAP MCP rejects this direct write before x402 payment. SAP MCP context: Do not use this raw SDK wrapper for production registration. The canonical registration path is sap_payments_register_agent, because it confirms the account, audits the protocol treasury fee, and fails closed when protocolComplete is false. Hosted accountless SAP MCP rejects direct registration before x402 payment because OOBE never custodies user wallet keys. Use sap_agent_identity_plan first, then sap_payments_register_agent with confirm:true.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_register_agent when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Required public display name for the SAP agent. Keep it stable enough for explorers and humans."},"description":{"type":"string","description":"Required public description of what the agent does, which protocols it can use, and its safety/trust boundaries."},"capabilities":{"type":"array","description":"Required capability list. Prefer object form for production; strings are accepted as shorthand.","items":{"oneOf":[{"type":"string","description":"Capability id shorthand, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, or risk:management."},{"type":"object","properties":{"id":{"type":"string","description":"Required stable capability id. Use protocol:action naming, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, x402:payments, or risk:management."},"description":{"type":"string","description":"Optional human-readable capability description for agents and explorers."},"protocolId":{"type":"string","description":"Optional protocol namespace backing this capability, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, or custom."},"version":{"type":"string","description":"Optional capability version string. Use semver when the capability maps to an API contract."}},"required":["id"],"additionalProperties":false,"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}],"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}},"pricing":{"type":"array","description":"Optional pricing tiers advertised by the agent. Use tokenType usdc + settlementMode x402 for pay.sh/x402 agent commerce.","items":{"type":"object","properties":{"tierId":{"type":"string","description":"Stable tier id, for example default, read, premium, value-action, or enterprise."},"pricePerCall":{"type":"string","description":"Price per call in the smallest unit of tokenType: lamports for sol, micro-USDC for usdc, or base units for spl."},"minPricePerCall":{"type":"string","description":"Optional floor price per call in the smallest unit of tokenType."},"maxPricePerCall":{"type":"string","description":"Optional ceiling price per call in the smallest unit of tokenType."},"rateLimit":{"type":"number","description":"Maximum calls per second allowed by this tier. Defaults to 60."},"maxCallsPerSession":{"type":"number","description":"Maximum calls allowed per session for this tier. Defaults to 1000."},"burstLimit":{"type":"number","description":"Optional short-window burst allowance for this tier."},"tokenType":{"type":"string","enum":["sol","usdc","spl"],"description":"Payment token type. Use usdc for x402/pay.sh agent commerce. Use spl only with tokenMint."},"tokenMint":{"type":"string","description":"Optional SPL token mint public key. Required when tokenType is spl. For mainnet USDC use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v."},"tokenDecimals":{"type":"number","description":"Decimals for the payment token. Defaults to 6 for usdc and 9 for sol when omitted."},"settlementMode":{"type":"string","enum":["instant","escrow","batched","x402"],"description":"Settlement strategy. Use x402 for HTTP 402/pay.sh flows, escrow for prepaid SAP usage ledgers, instant for direct pay-per-call, and batched for periodic settlement."},"minEscrowDeposit":{"type":"string","description":"Optional minimum escrow deposit in the smallest unit of tokenType."},"batchIntervalSec":{"type":"number","description":"Optional settlement batch interval in seconds when settlementMode is batched."},"volumeCurve":{"type":"array","description":"Optional volume discounts. Each item lowers pricePerCall after a call threshold.","items":{"type":"object","properties":{"afterCalls":{"type":"number","description":"Call count threshold where this price starts."},"pricePerCall":{"type":"string","description":"Discounted price per call in the smallest unit of tokenType."}},"required":["afterCalls","pricePerCall"],"additionalProperties":false,"description":"Volume Curve parameter for Register SAP Agent (Raw SDK Deprecated)."}}},"required":["pricePerCall"],"additionalProperties":false,"description":"Pricing array of x402/pay.sh pricing tiers for the registered agent or tool. Amounts should be denominated explicitly in USDC smallest units when applicable."}},"protocols":{"type":"array","items":{"type":"string","description":"Protocols array of protocol identifiers such as sap, mcp, jupiter, pyth, metaplex, sns, or x402."},"description":"Required protocol tags the agent supports, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, payments."},"agentId":{"type":"string","description":"Optional stable lowercase agent id, for example solking. This is separate from the on-chain agent PDA."},"agentUri":{"type":"string","description":"Optional public HTTPS/IPFS/Arweave/Kommodo URI for the agent profile metadata or profile page. Never use local desktop file paths."},"metadataUri":{"type":"string","description":"Alias for agentUri. Prefer a public JSON metadata document containing name, description, image, external_url, attributes, sap, metaplex, sns, and x402 fields."},"x402Endpoint":{"type":"string","description":"Optional public x402 discovery/payment endpoint, usually https://host/.well-known/x402 for external agent services."}},"description":"Register SAP Agent (Raw SDK Deprecated) input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_register_agent when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Register SAP Agent (Raw SDK Deprecated)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_update_agent","title":"Update SAP Agent","description":"Local-signer-only: update the connected wallet SAP agent using SDK AgentModule.update. Hosted accountless SAP MCP rejects this direct write before x402 payment; hosted users should call sap_payments_update_agent from the local sap_payments bridge. SAP MCP context: Use this after sap_register_agent to refresh name, description, capabilities, pricing, supported protocols, x402 endpoint, or metadataUri. For NFT-backed identity changes, update the Metaplex asset first when needed, then point the SAP agent metadataUri at the current metadata document.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_update_agent when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Optional replacement display name. Omit to keep the current name."},"description":{"type":"string","description":"Optional replacement description. Omit to keep the current description."},"capabilities":{"type":"array","description":"Optional full replacement capability list. Omit to keep current capabilities; do not send only the new item unless replacing the whole list is intended.","items":{"oneOf":[{"type":"string","description":"Capability id shorthand, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, or risk:management."},{"type":"object","properties":{"id":{"type":"string","description":"Required stable capability id. Use protocol:action naming, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, x402:payments, or risk:management."},"description":{"type":"string","description":"Optional human-readable capability description for agents and explorers."},"protocolId":{"type":"string","description":"Optional protocol namespace backing this capability, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, or custom."},"version":{"type":"string","description":"Optional capability version string. Use semver when the capability maps to an API contract."}},"required":["id"],"additionalProperties":false,"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}],"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}},"pricing":{"type":"array","description":"Optional full replacement pricing tier list. Omit to keep current pricing.","items":{"type":"object","properties":{"tierId":{"type":"string","description":"Stable tier id, for example default, read, premium, value-action, or enterprise."},"pricePerCall":{"type":"string","description":"Price per call in the smallest unit of tokenType: lamports for sol, micro-USDC for usdc, or base units for spl."},"minPricePerCall":{"type":"string","description":"Optional floor price per call in the smallest unit of tokenType."},"maxPricePerCall":{"type":"string","description":"Optional ceiling price per call in the smallest unit of tokenType."},"rateLimit":{"type":"number","description":"Maximum calls per second allowed by this tier. Defaults to 60."},"maxCallsPerSession":{"type":"number","description":"Maximum calls allowed per session for this tier. Defaults to 1000."},"burstLimit":{"type":"number","description":"Optional short-window burst allowance for this tier."},"tokenType":{"type":"string","enum":["sol","usdc","spl"],"description":"Payment token type. Use usdc for x402/pay.sh agent commerce. Use spl only with tokenMint."},"tokenMint":{"type":"string","description":"Optional SPL token mint public key. Required when tokenType is spl. For mainnet USDC use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v."},"tokenDecimals":{"type":"number","description":"Decimals for the payment token. Defaults to 6 for usdc and 9 for sol when omitted."},"settlementMode":{"type":"string","enum":["instant","escrow","batched","x402"],"description":"Settlement strategy. Use x402 for HTTP 402/pay.sh flows, escrow for prepaid SAP usage ledgers, instant for direct pay-per-call, and batched for periodic settlement."},"minEscrowDeposit":{"type":"string","description":"Optional minimum escrow deposit in the smallest unit of tokenType."},"batchIntervalSec":{"type":"number","description":"Optional settlement batch interval in seconds when settlementMode is batched."},"volumeCurve":{"type":"array","description":"Optional volume discounts. Each item lowers pricePerCall after a call threshold.","items":{"type":"object","properties":{"afterCalls":{"type":"number","description":"Call count threshold where this price starts."},"pricePerCall":{"type":"string","description":"Discounted price per call in the smallest unit of tokenType."}},"required":["afterCalls","pricePerCall"],"additionalProperties":false,"description":"Volume Curve parameter for Update SAP Agent."}}},"required":["pricePerCall"],"additionalProperties":false,"description":"Pricing array of x402/pay.sh pricing tiers for the registered agent or tool. Amounts should be denominated explicitly in USDC smallest units when applicable."}},"protocols":{"type":"array","items":{"type":"string","description":"Protocols array of protocol identifiers such as sap, mcp, jupiter, pyth, metaplex, sns, or x402."},"description":"Optional full replacement protocol list. Omit to keep current protocols."},"agentId":{"type":"string","description":"Optional replacement stable agent id. Omit to keep current agentId."},"agentUri":{"type":"string","description":"Optional replacement public URI for agent metadata/profile. Use this to update pictures after uploading metadata to IPFS, Arweave, Kommodo, or HTTPS."},"metadataUri":{"type":"string","description":"Alias for agentUri. Use a public metadata JSON URI; never use a desktop file path."},"x402Endpoint":{"type":"string","description":"Optional replacement x402 discovery/payment endpoint. Omit to keep current endpoint."}},"description":"Update SAP Agent input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_update_agent when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Update SAP Agent","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_deactivate_agent","title":"Deactivate SAP Agent","description":"Deactivate the connected wallet SAP agent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{},"description":"Deactivate SAP Agent input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Deactivate SAP Agent","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_reactivate_agent","title":"Reactivate SAP Agent","description":"Reactivate the connected wallet SAP agent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{},"description":"Reactivate SAP Agent input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Reactivate SAP Agent","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_agent_migrate_pricing_menu","title":"Migrate Agent Pricing Menu","description":"Backfill or resync the AgentPricingMenu PDA for the connected wallet SAP agent. Run this once if sap_update_agent, sap_close_agent, or createEscrowV2 fails with AccountNotInitialized on the pricing_menu account. Agents registered before pricing menus were created at registration need this one-time migration. Local-signer-only; hosted accountless SAP MCP rejects this direct write before x402 payment. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"Migrate Agent Pricing Menu input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Migrate Agent Pricing Menu","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_close_agent","title":"Close SAP Agent","description":"Close the connected wallet SAP agent and reclaim rent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{},"description":"Close SAP Agent input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Close SAP Agent","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_report_calls","title":"Report Agent Calls","description":"Report served call count for the connected wallet SAP agent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"callsServed":{"type":"number","description":"Number of calls served to report for the agent"}},"description":"Report Agent Calls input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Report Agent Calls","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_update_reputation_metrics","title":"Update Reputation Metrics","description":"Update self-reported latency and uptime metrics for the connected wallet SAP agent. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"avgLatencyMs":{"type":"number","description":"Average response latency in milliseconds to report"},"uptimePercent":{"type":"number","description":"Uptime percentage (0–100) to report for the agent"}},"description":"Update Reputation Metrics input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Update Reputation Metrics","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_get_agent","title":"Get SAP Agent","description":"Free exact SAP agent identity read by owner wallet. If omitted, fetches the connected wallet agent. Use this before paid discovery when the wallet is known. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key of the agent owner wallet (base58). If omitted, uses the connected wallet."}},"description":"Get SAP Agent input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP Agent","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_get_agent_stats","title":"Get SAP Agent Stats","description":"Free exact SAP agent stats read by agent PDA. Use after sap_get_agent or sap_get_agent_profile when stats are needed. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentPda":{"type":"string","description":"Agent PDA (base58) to fetch stats for"}},"description":"Get SAP Agent Stats input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP Agent Stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_get_global_state","title":"Get SAP Global State","description":"Free compact global SAP registry state read. Use for initial orientation before paid network analytics. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"Get SAP Global State input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP Global State","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_get_network_overview","title":"Get SAP Network Overview","description":"Fetch real network counters from SDK DiscoveryRegistry.getNetworkOverview. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"Get SAP Network Overview input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP Network Overview","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_agent_context","title":"Get SAP Agent Context","description":"Free one-shot SAP orientation context for agents. Use this when the user asks whether SAP MCP is connected, wants to understand an agent/wallet, or needs the next safe paid/write route. It combines exact reads or a compact directory page with routing guidance without triggering x402. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Optional exact owner wallet public key (base58). When supplied, returns the matching agent identity, PDA, active state, and hydrated profile when available."},"agentPda":{"type":"string","description":"Optional exact SAP agent PDA (base58) for compact context lookup when the owner wallet is not known."},"query":{"type":"string","description":"Optional text query for a compact micro-read orientation search. Keep this narrow, for example \"XONA\" or \"Solking\"."},"limit":{"type":"number","description":"Maximum compact orientation rows to include when wallet is not supplied. Defaults to 10 and is capped at 20 to keep this tool in the micro-read tier."}},"description":"Get SAP Agent Context input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP Agent Context","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_export_agent_oasf","title":"Export SAP Agent OASF Profile","description":"Export a known SAP agent into an OASF-style, machine-readable profile view for agent directories and cross-runtime discovery. This is an exact owner-wallet read: it derives the SAP agent PDA, fetches the current on-chain agent/profile/stats when available, and normalizes identity, protocols, capabilities, pricing, x402 endpoint, metadata links, and trust facts without exposing local wallet paths or keypair bytes. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Required owner wallet public key in base58. Use sap_discover_agents or sap_agent_context first when the wallet is unknown."},"includeSourceFragments":{"type":"boolean","description":"Whether to include redacted source account/profile fragments for debugging directory ingestion. Defaults to false."}},"description":"Export SAP Agent OASF Profile input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Export SAP Agent OASF Profile","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_get_agent_profile","title":"Get SAP Agent Profile","description":"Micro-read exact SAP agent profile lookup by owner wallet. Use this for a known agent before read-premium discovery or enrichment. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key of the agent owner wallet (base58)"}},"description":"Get SAP Agent Profile input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP Agent Profile","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_is_agent_active","title":"Check SAP Agent Active","description":"Micro-read exact activity check for an owner wallet. Use this before read-premium discovery when the wallet is known. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key of the wallet to check for an active SAP agent (base58)"}},"description":"Check SAP Agent Active input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Check SAP Agent Active","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_discover_agents","title":"Discover SAP Agents","description":"Paid hosted discovery for SAP agents. Search and filter the current on-chain AgentAccount directory by query, wallet, protocol, capability, x402 endpoint presence, and cursor pagination. Use this for targeted agent discovery before calling per-agent fetch tools. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Optional text search across name, description, agentId, wallet, PDA, x402 endpoint, protocols, capabilities, and active plugins. Example: \"XONA\" or \"creative\"."},"wallet":{"type":"string","description":"Optional exact owner wallet public key filter. Use this when a wallet is known; it is the most reliable lookup path."},"agentPda":{"type":"string","description":"Optional exact SAP agent PDA filter."},"protocol":{"type":"string","description":"Optional protocol filter matched case-insensitively against agent protocols and protocol-index membership. Example: \"jupiter\", \"creative\", \"payments\"."},"capability":{"type":"string","description":"Optional single capability ID filter matched case-insensitively. Example: \"creative:imageGeneration\" or \"jupiter:swap\"."},"capabilities":{"type":"array","items":{"type":"string","description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."},"description":"Optional list of capability IDs. Use capabilityMode=\"all\" when the agent must have every capability."},"capabilityMode":{"type":"string","enum":["any","all"],"description":"How to match the capability/capabilities filters. Defaults to \"any\"."},"hasX402Endpoint":{"type":"boolean","description":"Optional filter for agents that advertise a paid HTTP/x402 endpoint."},"includeInactive":{"type":"boolean","description":"Include inactive agents. Defaults to false."},"limit":{"type":"number","description":"Maximum rows to return. Defaults to 50; hard-capped at 500."},"offset":{"type":"number","description":"Zero-based pagination offset. Defaults to 0. Prefer cursor after the first page when nextCursor is returned."},"cursor":{"type":"string","description":"Opaque pagination cursor returned as pagination.nextCursor by a previous sap_list_all_agents or sap_discover_agents call."},"view":{"type":"string","enum":["compact","full"],"description":"Result shape. Use compact for broad discovery and full for detailed rows. Defaults to compact."},"hydrate":{"type":"boolean","description":"Deprecated compatibility alias. Use view=\"full\" for full rows or view=\"compact\" for directory rows."},"includeProtocolIndexes":{"type":"boolean","description":"Include compact protocol index summaries. Defaults to false for sap_discover_agents and true for sap_list_all_agents."}},"description":"Discover SAP Agents input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Discover SAP Agents","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_list_agents","title":"List SAP Agents","description":"Compact SAP agent orientation list. Micro-read when limit <= 20, view is compact, hydrate is false, and includeProtocolIndexes is false; larger or enriched pages are read-premium. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Optional text search across name, description, agentId, wallet, PDA, x402 endpoint, protocols, capabilities, and active plugins. Example: \"XONA\" or \"creative\"."},"wallet":{"type":"string","description":"Optional exact owner wallet public key filter. Use this when a wallet is known; it is the most reliable lookup path."},"agentPda":{"type":"string","description":"Optional exact SAP agent PDA filter."},"protocol":{"type":"string","description":"Optional protocol filter matched case-insensitively against agent protocols and protocol-index membership. Example: \"jupiter\", \"creative\", \"payments\"."},"capability":{"type":"string","description":"Optional single capability ID filter matched case-insensitively. Example: \"creative:imageGeneration\" or \"jupiter:swap\"."},"capabilities":{"type":"array","items":{"type":"string","description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."},"description":"Optional list of capability IDs. Use capabilityMode=\"all\" when the agent must have every capability."},"capabilityMode":{"type":"string","enum":["any","all"],"description":"How to match the capability/capabilities filters. Defaults to \"any\"."},"hasX402Endpoint":{"type":"boolean","description":"Optional filter for agents that advertise a paid HTTP/x402 endpoint."},"includeInactive":{"type":"boolean","description":"Include inactive agents. Defaults to false."},"limit":{"type":"number","description":"Maximum rows to return. Defaults to 20; hard-capped at 500."},"offset":{"type":"number","description":"Zero-based pagination offset. Defaults to 0. Prefer cursor after the first page when nextCursor is returned."},"cursor":{"type":"string","description":"Opaque pagination cursor returned as pagination.nextCursor by a previous sap_list_all_agents or sap_discover_agents call."},"view":{"type":"string","enum":["compact","full"],"description":"Result shape. Use compact for broad discovery and full for detailed rows. Defaults to compact."},"hydrate":{"type":"boolean","description":"Deprecated compatibility alias. Use view=\"full\" for full rows or view=\"compact\" for directory rows."},"includeProtocolIndexes":{"type":"boolean","description":"Include compact protocol index summaries. Defaults to false for sap_discover_agents and true for sap_list_all_agents."}},"description":"List SAP Agents input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"List SAP Agents","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_list_all_agents","title":"List All SAP Agents","description":"Paid hosted global SAP agent directory read. Enumerates current on-chain AgentAccount PDAs and supports query, wallet, protocol, capability, x402 endpoint filtering, compact/full views, and cursor pagination. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Optional text search across name, description, agentId, wallet, PDA, x402 endpoint, protocols, capabilities, and active plugins. Example: \"XONA\" or \"creative\"."},"wallet":{"type":"string","description":"Optional exact owner wallet public key filter. Use this when a wallet is known; it is the most reliable lookup path."},"agentPda":{"type":"string","description":"Optional exact SAP agent PDA filter."},"protocol":{"type":"string","description":"Optional protocol filter matched case-insensitively against agent protocols and protocol-index membership. Example: \"jupiter\", \"creative\", \"payments\"."},"capability":{"type":"string","description":"Optional single capability ID filter matched case-insensitively. Example: \"creative:imageGeneration\" or \"jupiter:swap\"."},"capabilities":{"type":"array","items":{"type":"string","description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."},"description":"Optional list of capability IDs. Use capabilityMode=\"all\" when the agent must have every capability."},"capabilityMode":{"type":"string","enum":["any","all"],"description":"How to match the capability/capabilities filters. Defaults to \"any\"."},"hasX402Endpoint":{"type":"boolean","description":"Optional filter for agents that advertise a paid HTTP/x402 endpoint."},"includeInactive":{"type":"boolean","description":"Include inactive agents. Defaults to false."},"limit":{"type":"number","description":"Maximum rows to return. Defaults to 100; hard-capped at 500."},"offset":{"type":"number","description":"Zero-based pagination offset. Defaults to 0. Prefer cursor after the first page when nextCursor is returned."},"cursor":{"type":"string","description":"Opaque pagination cursor returned as pagination.nextCursor by a previous sap_list_all_agents or sap_discover_agents call."},"view":{"type":"string","enum":["compact","full"],"description":"Result shape. Use compact for broad discovery and full for detailed rows. Defaults to compact."},"hydrate":{"type":"boolean","description":"Deprecated compatibility alias. Use view=\"full\" for full rows or view=\"compact\" for directory rows."},"includeProtocolIndexes":{"type":"boolean","description":"Include compact protocol index summaries. Defaults to false for sap_discover_agents and true for sap_list_all_agents."}},"description":"List All SAP Agents input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"List All SAP Agents","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_find_tools_by_category","title":"Find SAP Tools By Category","description":"Find on-chain tool descriptors by SDK tool category name or numeric category. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"category":{"type":["string","number"],"description":"Tool category name (e.g. \"defi\", \"infrastructure\") or numeric category ID"},"hydrate":{"type":"boolean","description":"Whether to include full hydrated tool descriptors in results (default: true)"},"limit":{"type":"number","description":"Maximum number of tools to return (default: 50)"}},"description":"Find SAP Tools By Category input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Find SAP Tools By Category","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_get_tool_category_summary","title":"Get SAP Tool Category Summary","description":"Fetch SDK discovery summary across SAP tool categories. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"Get SAP Tool Category Summary input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP Tool Category Summary","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_capability_index","title":"Fetch Capability Index","description":"Fetch a SAP capability index by capability ID. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"capabilityId":{"type":"string","description":"Capability ID to fetch the index for (e.g. \"jupiter:swap\")"}},"description":"Fetch Capability Index input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch Capability Index","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_protocol_index","title":"Fetch Protocol Index","description":"Fetch a SAP protocol index by protocol ID. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"protocolId":{"type":"string","description":"Protocol ID to fetch the index for (e.g. \"jupiter\", \"adrena\")"}},"description":"Fetch Protocol Index input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch Protocol Index","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_tool_category_index","title":"Fetch Tool Category Index","description":"Fetch a SAP tool category index by numeric category. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"category":{"type":"number","description":"Numeric tool category ID to fetch the index for"}},"description":"Fetch Tool Category Index input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch Tool Category Index","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_tool","title":"Fetch SAP Tool Descriptor","description":"Fetch a tool descriptor by agent PDA and tool name. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentPda":{"type":"string","description":"Agent PDA (base58) that owns the tool descriptor"},"toolName":{"type":"string","description":"Name of the tool descriptor to fetch"}},"description":"Fetch SAP Tool Descriptor input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Tool Descriptor","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_feedback","title":"Fetch SAP Feedback","description":"Fetch a feedback PDA by agent PDA and optional reviewer wallet. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentPda":{"type":"string","description":"Agent PDA (base58) to fetch feedback for"},"reviewer":{"type":"string","description":"Optional reviewer wallet (base58) to filter feedback by"}},"description":"Fetch SAP Feedback input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Feedback","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_attestation","title":"Fetch SAP Attestation","description":"Fetch an attestation PDA by agent PDA and optional attester wallet. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentPda":{"type":"string","description":"Agent PDA (base58) to fetch attestation for"},"attester":{"type":"string","description":"Optional attester wallet (base58) to filter attestation by"}},"description":"Fetch SAP Attestation input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Attestation","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_escrow","title":"Fetch SAP Escrow V1","description":"Fetch a V1 escrow by escrow PDA, or by agent PDA and optional depositor. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"escrowPda":{"type":"string","description":"Escrow PDA (base58) to fetch directly"},"agentPda":{"type":"string","description":"Agent PDA (base58) — used when escrowPda is omitted"},"depositor":{"type":"string","description":"Optional depositor wallet (base58) to filter by"}},"description":"Fetch SAP Escrow V1 input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Escrow V1","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_escrow_v2","title":"Fetch SAP Escrow V2","description":"Fetch a V2 escrow by escrow PDA, or by agent PDA, depositor, and nonce. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"escrowPda":{"type":"string","description":"Escrow V2 PDA (base58) to fetch directly"},"agentPda":{"type":"string","description":"Agent PDA (base58) — used when escrowPda is omitted"},"depositor":{"type":"string","description":"Optional depositor wallet (base58) to filter by"},"nonce":{"type":"number","description":"Escrow nonce (default: 0) — used with agentPda and depositor"}},"description":"Fetch SAP Escrow V2 input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Escrow V2","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_pending_settlement","title":"Fetch Pending Settlement","description":"Fetch a V2 pending settlement PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"pendingPda":{"type":"string","description":"Pending settlement PDA (base58) to fetch"}},"description":"Fetch Pending Settlement input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch Pending Settlement","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_dispute","title":"Fetch SAP Dispute","description":"Fetch a V2 dispute PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"disputePda":{"type":"string","description":"Dispute PDA (base58) to fetch"}},"description":"Fetch SAP Dispute input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Dispute","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_vault","title":"Fetch SAP Vault","description":"Fetch a memory vault by agent PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentPda":{"type":"string","description":"Agent PDA (base58) to fetch the memory vault for"}},"description":"Fetch SAP Vault input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Vault","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_session","title":"Fetch SAP Session","description":"Fetch a session ledger by session PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"sessionPda":{"type":"string","description":"Session PDA (base58) to fetch the ledger for"}},"description":"Fetch SAP Session input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Session","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_epoch_page","title":"Fetch SAP Epoch Page","description":"Fetch an epoch page by session PDA and epoch index. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"sessionPda":{"type":"string","description":"Session PDA (base58) to fetch epoch page for"},"epochIndex":{"type":"number","description":"Zero-based epoch index to fetch"}},"description":"Fetch SAP Epoch Page input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Epoch Page","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_stake","title":"Fetch SAP Stake","description":"Fetch agent stake by stake PDA or agent PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"stakePda":{"type":"string","description":"Stake PDA (base58) to fetch directly"},"agentPda":{"type":"string","description":"Agent PDA (base58) — used when stakePda is omitted"}},"description":"Fetch SAP Stake input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Stake","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_fetch_subscription","title":"Fetch SAP Subscription","description":"Fetch a subscription by PDA or by agent PDA/subscriber/subId. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"subscriptionPda":{"type":"string","description":"Subscription PDA (base58) to fetch directly"},"agentPda":{"type":"string","description":"Agent PDA (base58) — used when subscriptionPda is omitted"},"subscriber":{"type":"string","description":"Optional subscriber wallet (base58) to filter by"},"subId":{"type":"number","description":"Subscription ID (default: 0) — used with agentPda and subscriber"}},"description":"Fetch SAP Subscription input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP Subscription","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_x402_estimate_cost","title":"Estimate SAP x402 Cost","description":"Estimate cost for a number of calls using SDK X402Registry.estimateCost. Reads escrow/pricing when available and supports optional volume curve overrides. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"calls":{"type":"number","description":"Number of calls to estimate"},"pricePerCall":{"type":"string","description":"Optional base price per call override in token base units"},"totalCallsBefore":{"type":"number","description":"Optional cumulative settled calls before this estimate"},"volumeCurve":{"type":"array","description":"Optional array of { afterCalls, pricePerCall } pricing breakpoints"}},"description":"Estimate SAP x402 Cost input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Estimate SAP x402 Cost","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_x402_calculate_cost","title":"Calculate SAP x402 Cost","description":"Pure local cost calculation using SDK X402Registry.calculateCost; does not read chain state. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"basePrice":{"type":"string","description":"Base price per call in token base units"},"calls":{"type":"number","description":"Number of calls to calculate"},"totalCallsBefore":{"type":"number","description":"Cumulative settled calls before this calculation (default: 0)"},"volumeCurve":{"type":"array","description":"Array of { afterCalls, pricePerCall } pricing breakpoints"}},"description":"Calculate SAP x402 Cost input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Calculate SAP x402 Cost","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_x402_prepare_payment","title":"Prepare SAP x402 Payment","description":"Prepare an x402 payment context using SDK X402Registry.preparePayment. New production escrow funding should use Escrow V2 fields and nonce-aware flows. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"pricePerCall":{"type":"string","description":"Price per call as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"deposit":{"type":"string","description":"Initial deposit as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"maxCalls":{"type":"string","description":"Optional maximum number of calls covered"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"expiresAt":{"type":"string","description":"Optional expiry timestamp in unix seconds"},"volumeCurve":{"type":"array","description":"Optional array of { afterCalls, pricePerCall } pricing breakpoints"},"tokenMint":{"type":"string","description":"Optional SPL token mint; omit/null for SOL. Use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v for mainnet USDC."},"tokenDecimals":{"type":"number","description":"Optional token decimals. Defaults to 6 for USDC/SPL flows when supplied by the SDK and 9 for native SOL."},"networkIdentifier":{"type":"string","description":"Optional x402 network identifier written into headers"}},"description":"Prepare SAP x402 Payment input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Prepare SAP x402 Payment","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_x402_build_payment_headers","title":"Build SAP x402 Payment Headers","description":"Build SAP x402 HTTP headers from a public PaymentContext returned by sap_x402_prepare_payment. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"escrowPda":{"type":"string","description":"Escrow PDA (base58)"},"agentPda":{"type":"string","description":"Agent PDA (base58)"},"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"pricePerCall":{"type":"string","description":"Price per call in token base units"},"maxCalls":{"type":"string","description":"Max calls as a decimal string"},"nonce":{"type":"string","description":"Escrow nonce as a decimal string. Defaults to 0."},"txSignature":{"type":"string","description":"Escrow creation transaction signature"},"networkIdentifier":{"type":"string","description":"x402 network identifier stored in the payment context"},"network":{"type":"string","description":"Optional override for X-Payment-Network"}},"description":"Build SAP x402 Payment Headers input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SAP x402 Payment Headers","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_x402_build_headers_from_escrow","title":"Build SAP x402 Headers From Escrow","description":"Build SAP x402 HTTP headers by fetching escrow data for an agent wallet with SDK X402Registry.buildPaymentHeadersFromEscrow. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"network":{"type":"string","description":"Optional network identifier for X-Payment-Network"}},"description":"Build SAP x402 Headers From Escrow input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SAP x402 Headers From Escrow","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_x402_has_escrow","title":"Check SAP x402 Escrow","description":"Check whether an x402 escrow exists for an agent/depositor pair. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositor":{"type":"string","description":"Optional depositor wallet (base58); defaults to caller in SDK"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."}},"description":"Check SAP x402 Escrow input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Check SAP x402 Escrow","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_x402_fetch_escrow","title":"Fetch SAP x402 Escrow","description":"Fetch raw x402 escrow account data using SDK X402Registry.fetchEscrow. Resolves V2 first, then V1 fallback. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositor":{"type":"string","description":"Optional depositor wallet (base58); defaults to caller in SDK"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."}},"description":"Fetch SAP x402 Escrow input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fetch SAP x402 Escrow","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_x402_get_balance","title":"Get SAP x402 Balance","description":"Fetch x402 escrow balance using SDK X402Registry.getBalance. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositor":{"type":"string","description":"Optional depositor wallet (base58) to filter balance by"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."}},"description":"Get SAP x402 Balance input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP x402 Balance","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_x402_settle","title":"Settle SAP x402 Calls","description":"Settle served x402 calls through SDK X402Registry.settle. Must be called by the agent owner wallet. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"callsToSettle":{"type":"number","description":"Number of calls to settle"},"serviceData":{"type":"string","description":"Service data to hash into the settlement proof"},"priorityFeeMicroLamports":{"type":"number","description":"Optional priority fee in microlamports per compute unit"},"computeUnits":{"type":"number","description":"Optional compute-unit limit"},"skipPreflight":{"type":"boolean","description":"Optional skip preflight flag"},"commitment":{"type":"string","description":"Optional processed|confirmed|finalized commitment"},"maxRetries":{"type":"number","description":"Optional RPC retry limit"}},"description":"Settle SAP x402 Calls input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Settle SAP x402 Calls","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_x402_settle_batch","title":"Batch Settle SAP x402 Calls","description":"Batch-settle served x402 calls through SDK X402Registry.settleBatch. Must be called by the agent owner wallet. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"entries":{"type":"array","description":"Array of { calls, serviceData } settlement entries"},"priorityFeeMicroLamports":{"type":"number","description":"Optional priority fee in microlamports per compute unit"},"computeUnits":{"type":"number","description":"Optional compute-unit limit"},"skipPreflight":{"type":"boolean","description":"Optional skip preflight flag"},"commitment":{"type":"string","description":"Optional processed|confirmed|finalized commitment"},"maxRetries":{"type":"number","description":"Optional RPC retry limit"}},"description":"Batch Settle SAP x402 Calls input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Batch Settle SAP x402 Calls","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_escrow_build_create_transaction","title":"Build SAP Escrow V2 Create Transaction","description":"Hosted-safe unsigned builder for create_escrow_v2. Use this from hosted SAP MCP, preview the result, then call local sap_payments_finalize_transaction with submit:true. The depositorWallet signs locally; keypair bytes never leave the user machine. Defaults to DisputeWindow settlementSecurity=2 and rejects SelfReport/0. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58). This wallet signs locally and funds the escrow; hosted SAP MCP never receives its private key."},"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58). The V2 escrow PDA is derived from this wallet plus nonce."},"pricePerCall":{"type":"string","description":"Price per served call as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"maxCalls":{"type":"string","description":"Maximum number of calls covered by the escrow as a decimal string. Use 0 for unlimited when supported by policy."},"initialDeposit":{"type":"string","description":"Initial escrow deposit as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"expiresAt":{"type":"string","description":"Optional expiry timestamp in unix seconds as a decimal string. Defaults to 0 (no expiry)."},"tokenMint":{"type":"string","description":"Optional SPL payment token mint. Omit/null for native SOL. Use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v for mainnet USDC x402 escrows."},"tokenDecimals":{"type":"number","description":"Payment token decimals. Defaults to 6 when tokenMint is set, otherwise 9 for native SOL."},"settlementSecurity":{"type":"number","enum":[1,2],"description":"V2 settlement security mode. 1=CoSigned (requires coSigner). 2=DisputeWindow (recommended default; requires disputeWindowSlots > 0). SelfReport/0 is deprecated and rejected on-chain."},"disputeWindowSlots":{"type":"string","description":"Required positive dispute window in slots for settlementSecurity=2. Defaults to 2160 (~15 minutes)."},"coSigner":{"type":"string","description":"Required co-signer wallet public key when settlementSecurity=1 (CoSigned)."},"arbiter":{"type":"string","description":"Optional arbiter public key kept for IDL compatibility and dispute workflows."}},"description":"Build SAP Escrow V2 Create Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SAP Escrow V2 Create Transaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_escrow_build_deposit_transaction","title":"Build SAP Escrow V2 Deposit Transaction","description":"Hosted-safe unsigned builder for deposit_escrow_v2. Use this when a hosted workflow needs to add funds to an existing V2 escrow, then finalize locally with sap_payments_finalize_transaction. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58). This wallet signs locally and provides the additional escrow funds."},"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58). The escrow PDA is derived from agentWallet, depositorWallet, and nonce."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"amount":{"type":"string","description":"Deposit amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."}},"description":"Build SAP Escrow V2 Deposit Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SAP Escrow V2 Deposit Transaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_escrow_build_settle_transaction","title":"Build SAP Escrow V2 Settlement Transaction","description":"Hosted-safe unsigned builder for settle_calls_v2. The agent owner wallet signs locally. DisputeWindow escrows create a pending settlement PDA; CoSigned escrows require the coSigner account when configured. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58). This wallet signs locally because settlement releases funds to the serving agent."},"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58) for the escrow being settled."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"callsToSettle":{"type":"string","description":"Number of served calls to settle as a decimal string."},"serviceHash":{"oneOf":[{"type":"array","items":{"type":"number","description":"Service Hash parameter for Build SAP Escrow V2 Settlement Transaction."},"description":"32-byte service/audit hash as byte array."},{"type":"string","description":"32-byte service/audit hash encoded as 64-char hex or base64 string."}],"description":"32-byte service/audit hash. Use a stable hash of the fulfilled paid work."},"coSigner":{"type":"string","description":"Optional co-signer public key for CoSigned escrows when the escrow account requires it."}},"description":"Build SAP Escrow V2 Settlement Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SAP Escrow V2 Settlement Transaction","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_escrow_build_finalize_transaction","title":"Build SAP Escrow V2 Finalize Transaction","description":"Hosted-safe unsigned builder for finalize_settlement. Use after the dispute window has elapsed and a pending settlement exists; any payerWallet can locally sign to crank finalization. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"payerWallet":{"type":"string","description":"Wallet public key (base58) that signs and pays transaction fees to finalize the pending settlement."},"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58)."},"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"settlementIndex":{"type":"string","description":"Pending settlement index as a decimal string."}},"description":"Build SAP Escrow V2 Finalize Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SAP Escrow V2 Finalize Transaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_escrow_build_withdraw_transaction","title":"Build SAP Escrow V2 Withdraw Transaction","description":"Hosted-safe unsigned builder for withdraw_escrow_v2. The depositor signs locally and can only withdraw unlocked balance after pending amounts are excluded. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58). Only the depositor can locally sign a withdrawal from this escrow."},"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58). The escrow PDA is derived from agentWallet, depositorWallet, and nonce."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"amount":{"type":"string","description":"Withdrawal amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."}},"description":"Build SAP Escrow V2 Withdraw Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SAP Escrow V2 Withdraw Transaction","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_escrow_build_close_transaction","title":"Build SAP Escrow V2 Close Transaction","description":"Hosted-safe unsigned builder for close_escrow_v2. The depositor signs locally; the builder refuses to close until balance and pendingAmount are both zero. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58). The depositor signs locally to close the empty escrow."},"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58)."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."}},"description":"Build SAP Escrow V2 Close Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SAP Escrow V2 Close Transaction","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_create_escrow_v2","title":"Create SAP Escrow V2","description":"Local-signer-only direct V2 escrow creation using SDK EscrowV2Module.create. Defaults to DisputeWindow settlementSecurity=2; SelfReport/0 is rejected. Hosted accountless SAP MCP rejects this before x402 payment; hosted users should call sap_escrow_build_create_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58). The V2 escrow PDA is derived from this wallet plus nonce."},"pricePerCall":{"type":"string","description":"Price per served call as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"maxCalls":{"type":"string","description":"Maximum number of calls covered by the escrow as a decimal string. Use 0 for unlimited when supported by policy."},"initialDeposit":{"type":"string","description":"Initial escrow deposit as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"expiresAt":{"type":"string","description":"Optional expiry timestamp in unix seconds as a decimal string. Defaults to 0 (no expiry)."},"tokenMint":{"type":"string","description":"Optional SPL payment token mint. Omit/null for native SOL. Use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v for mainnet USDC x402 escrows."},"tokenDecimals":{"type":"number","description":"Payment token decimals. Defaults to 6 when tokenMint is set, otherwise 9 for native SOL."},"settlementSecurity":{"type":"number","enum":[1,2],"description":"V2 settlement security mode. 1=CoSigned (requires coSigner). 2=DisputeWindow (recommended default; requires disputeWindowSlots > 0). SelfReport/0 is deprecated and rejected on-chain."},"disputeWindowSlots":{"type":"string","description":"Required positive dispute window in slots for settlementSecurity=2. Defaults to 2160 (~15 minutes)."},"coSigner":{"type":"string","description":"Required co-signer wallet public key when settlementSecurity=1 (CoSigned)."},"arbiter":{"type":"string","description":"Optional arbiter public key kept for IDL compatibility and dispute workflows."}},"description":"Create SAP Escrow V2 input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Create SAP Escrow V2","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_deposit_escrow_v2","title":"Deposit SAP Escrow V2","description":"Local-signer-only direct deposit into a V2 escrow. Hosted users should call sap_escrow_build_deposit_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"},"amount":{"type":"string","description":"Deposit amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."}},"description":"Deposit SAP Escrow V2 input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Deposit SAP Escrow V2","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_settle_escrow_v2","title":"Settle SAP Escrow V2","description":"Local-signer-only direct settlement against a V2 escrow. Hosted users should call sap_escrow_build_settle_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"},"callsToSettle":{"type":"string","description":"Number of calls to settle (as a decimal string)"},"serviceHash":{"type":"array","description":"32-byte service hash as a byte array, hex string, or base64 string"}},"description":"Settle SAP Escrow V2 input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Settle SAP Escrow V2","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_next_settlement_index","title":"Get Next Settlement Index","description":"Read the next V2 settlement index. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"}},"description":"Get Next Settlement Index input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get Next Settlement Index","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_finalize_settlement_v2","title":"Finalize SAP Escrow V2 Settlement","description":"Local-signer-only direct finalization of a V2 pending settlement. Hosted users should call sap_escrow_build_finalize_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"},"settlementIndex":{"type":"string","description":"Settlement index to finalize (as a decimal string)"}},"description":"Finalize SAP Escrow V2 Settlement input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Finalize SAP Escrow V2 Settlement","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_file_dispute_v2","title":"File SAP Escrow V2 Dispute","description":"File a dispute for a V2 pending settlement. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"},"settlementIndex":{"type":"string","description":"Settlement index to dispute (as a decimal string)"},"evidenceHash":{"type":"array","description":"32-byte evidence hash as a byte array, hex string, or base64 string"}},"description":"File SAP Escrow V2 Dispute input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"File SAP Escrow V2 Dispute","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_withdraw_escrow_v2","title":"Withdraw SAP Escrow V2","description":"Local-signer-only direct withdrawal from a V2 escrow. Hosted users should call sap_escrow_build_withdraw_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"},"amount":{"type":"string","description":"Withdrawal amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."}},"description":"Withdraw SAP Escrow V2 input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Withdraw SAP Escrow V2","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_close_escrow_v2","title":"Close SAP Escrow V2","description":"Local-signer-only direct close for an empty V2 escrow. Hosted users should call sap_escrow_build_close_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"}},"description":"Close SAP Escrow V2 input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Close SAP Escrow V2","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_give_feedback","title":"Give SAP Feedback","description":"Create on-chain feedback for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to give feedback for"},"score":{"type":"number","description":"Feedback score (numeric, e.g. 1–5)"},"tag":{"type":"string","description":"Optional feedback tag/category (default: \"general\")"},"commentHash":{"type":"array","description":"Optional 32-byte comment hash as a byte array, hex string, or base64 string"}},"description":"Give SAP Feedback input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Give SAP Feedback","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_update_feedback","title":"Update SAP Feedback","description":"Update existing on-chain feedback for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to update feedback for"},"score":{"type":"number","description":"New feedback score (numeric, e.g. 1–5)"},"tag":{"type":"string","description":"Optional new feedback tag/category"},"commentHash":{"type":"array","description":"Optional 32-byte comment hash as a byte array, hex string, or base64 string"}},"description":"Update SAP Feedback input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Update SAP Feedback","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_revoke_feedback","title":"Revoke SAP Feedback","description":"Revoke feedback for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to revoke feedback for"}},"description":"Revoke SAP Feedback input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Revoke SAP Feedback","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_create_attestation","title":"Create SAP Attestation","description":"Create an on-chain attestation for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to create attestation for"},"attestationType":{"type":"string","description":"Optional attestation type string (default: \"generic\")"},"metadataHash":{"type":"array","description":"32-byte metadata hash as a byte array, hex string, or base64 string"},"expiresAt":{"type":"string","description":"Optional expiry timestamp (as a decimal string, 0 = no expiry)"}},"description":"Create SAP Attestation input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Create SAP Attestation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_revoke_attestation","title":"Revoke SAP Attestation","description":"Revoke attestation for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to revoke attestation for"}},"description":"Revoke SAP Attestation input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Revoke SAP Attestation","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_fairscale_score","title":"Get FairScale Score","description":"Score an agent with SDK FairScaleRegistry.score. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agent":{"type":"string","description":"Agent PDA or wallet (base58) to score"},"task":{"type":"string","description":"Optional FairScale task type: one of \"defi_execution\", \"trust_focused\", \"work_focused\", \"hiring\""}},"description":"Get FairScale Score input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get FairScale Score","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_fairscale_trust_gate","title":"FairScale Trust Gate","description":"Evaluate an agent with SDK FairScaleRegistry.trustGate. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agent":{"type":"string","description":"Agent PDA or wallet (base58) to evaluate"},"minScore":{"type":"number","description":"Optional minimum trust score threshold"},"requireVerification":{"type":"boolean","description":"Whether verified status is required to pass the gate (default: false)"}},"description":"FairScale Trust Gate input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"FairScale Trust Gate","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_init_vault","title":"Initialize SAP Vault","description":"Initialize a memory vault for the connected agent. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"vaultNonce":{"type":"array","description":"Vault nonce as a byte array, hex string, or base64 string"}},"description":"Initialize SAP Vault input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Initialize SAP Vault","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_open_vault_session","title":"Open SAP Vault Session","description":"Open a vault session by 32-byte session hash. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"sessionHash":{"type":"array","description":"32-byte session hash as a byte array, hex string, or base64 string"}},"description":"Open SAP Vault Session input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Open SAP Vault Session","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_inscribe_memory","title":"Inscribe SAP Memory","description":"Inscribe encrypted memory using SDK VaultModule.inscribe. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","additionalProperties":true,"description":"Object containing memory inscription fields: sequence (number), encryptedData (byte array), nonce (byte array), contentHash (32-byte array), and optional totalFragments, fragmentIndex, compression, epochIndex Inscribe SAP Memory input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material.","properties":{}},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Inscribe SAP Memory","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_compact_inscribe_memory","title":"Compact Inscribe SAP Memory","description":"Compact memory inscription with explicit vault/session PDAs. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"sessionPda":{"type":"string","description":"Session PDA (base58) for the memory inscription"},"vaultPda":{"type":"string","description":"Vault PDA (base58) for the memory inscription"},"encryptedData":{"type":"array","description":"Encrypted memory data as a byte array, hex string, or base64 string"},"nonce":{"type":"array","description":"Encryption nonce as a byte array, hex string, or base64 string"},"contentHash":{"type":"array","description":"32-byte content hash as a byte array, hex string, or base64 string"}},"description":"Compact Inscribe SAP Memory input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Compact Inscribe SAP Memory","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_session_start","title":"Start SAP Memory Session","description":"Start a high-level SDK session by session ID. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","description":"High-level session identifier string"},"vaultNonce":{"type":"array","description":"Optional vault nonce as a byte array, hex string, or base64 string"}},"description":"Start SAP Memory Session input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Start SAP Memory Session","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_session_read_latest","title":"Read Latest SAP Session Entries","description":"Read latest entries from a high-level SDK session ID. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","description":"High-level session identifier string to read latest entries from"}},"description":"Read Latest SAP Session Entries input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Read Latest SAP Session Entries","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_session_status","title":"Get SAP Session Status","description":"Fetch high-level SDK session status by session ID. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","description":"High-level session identifier string to get status for"}},"description":"Get SAP Session Status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP Session Status","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_publish_tool_by_name","title":"Publish SAP Tool By Name","description":"Publish a tool descriptor using SDK ToolsModule.publishByName. SAP MCP context: Use tool registry writes to advertise concrete capabilities that this MCP can serve, including AgentKit bridge tools such as bridging_bridgeWormhole and Metaplex tools such as metaplex-nft_mintNFT. Publish only schemas and descriptions that match the actual MCP tool surface.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"toolName":{"type":"string","description":"Name of the tool to publish"},"protocolId":{"type":"string","description":"Protocol ID the tool belongs to (e.g. \"jupiter\")"},"description":{"type":"string","description":"Human-readable description of the tool"},"inputSchemaJson":{"type":"string","description":"JSON string of the tool input schema"},"outputSchemaJson":{"type":"string","description":"JSON string of the tool output schema"},"httpMethod":{"type":"number","description":"HTTP method code (e.g. 0=GET, 1=POST)"},"category":{"type":"number","description":"Numeric tool category ID"},"paramsCount":{"type":"number","description":"Total number of parameters the tool accepts"},"requiredParams":{"type":"number","description":"Number of required parameters"},"isCompound":{"type":"boolean","description":"Whether the tool is a compound tool (default: false)"}},"description":"Publish SAP Tool By Name input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Publish SAP Tool By Name","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_update_tool","title":"Update SAP Tool","description":"Update tool descriptor hashes using SDK ToolsModule.update. SAP MCP context: Use tool registry writes to advertise concrete capabilities that this MCP can serve, including AgentKit bridge tools such as bridging_bridgeWormhole and Metaplex tools such as metaplex-nft_mintNFT. Publish only schemas and descriptions that match the actual MCP tool surface.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"toolName":{"type":"string","description":"Name of the tool to update"},"type":"object","additionalProperties":true,"description":"Object containing optional update fields: descriptionHash, inputSchemaHash, outputSchemaHash (32-byte arrays), httpMethod, category, paramsCount, requiredParams (numbers) Update SAP Tool input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material.","properties":{}},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Update SAP Tool","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_deactivate_tool","title":"Deactivate SAP Tool","description":"Deactivate a SAP tool descriptor by name. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"toolName":{"type":"string","description":"Name of the tool descriptor to deactivate"}},"description":"Deactivate SAP Tool input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Deactivate SAP Tool","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_reactivate_tool","title":"Reactivate SAP Tool","description":"Reactivate a SAP tool descriptor by name. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"toolName":{"type":"string","description":"Name of the tool descriptor to reactivate"}},"description":"Reactivate SAP Tool input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Reactivate SAP Tool","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_report_tool_invocations","title":"Report SAP Tool Invocations","description":"Report invocation count for a SAP tool descriptor. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"toolName":{"type":"string","description":"Name of the tool descriptor to report invocations for"},"invocations":{"type":"number","description":"Number of invocations to report"}},"description":"Report SAP Tool Invocations input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Report SAP Tool Invocations","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_init_stake","title":"Initialize SAP Stake","description":"Initialize stake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to initialize stake for"},"initialDeposit":{"type":"string","description":"Initial stake deposit amount in lamports (as a decimal string)"}},"description":"Initialize SAP Stake input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Initialize SAP Stake","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_deposit_stake","title":"Deposit SAP Stake","description":"Deposit additional stake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"amount":{"type":"string","description":"Additional stake deposit amount in lamports (as a decimal string)"}},"description":"Deposit SAP Stake input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Deposit SAP Stake","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_request_unstake","title":"Request SAP Unstake","description":"Request unstake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"amount":{"type":"string","description":"Unstake request amount in lamports (as a decimal string)"}},"description":"Request SAP Unstake input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Request SAP Unstake","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_complete_unstake","title":"Complete SAP Unstake","description":"Complete unstake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to complete unstaking for"}},"description":"Complete SAP Unstake input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Complete SAP Unstake","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_create_subscription","title":"Create SAP Subscription","description":"Create a recurring subscription for an agent wallet. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to create subscription for"},"subId":{"type":"string","description":"Subscription ID (as a decimal string, default: 0)"},"pricePerInterval":{"type":"string","description":"Price per billing interval in lamports (as a decimal string)"},"billingInterval":{"type":"number","description":"Billing interval in seconds between charges"},"initialFund":{"type":"string","description":"Initial fund amount in lamports (as a decimal string)"}},"description":"Create SAP Subscription input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Create SAP Subscription","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_fund_subscription","title":"Fund SAP Subscription","description":"Fund a recurring subscription. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"subId":{"type":"string","description":"Subscription ID (as a decimal string, default: 0)"},"amount":{"type":"string","description":"Funding amount in lamports (as a decimal string)"}},"description":"Fund SAP Subscription input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fund SAP Subscription","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_cancel_subscription","title":"Cancel SAP Subscription","description":"Cancel a recurring subscription. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"subId":{"type":"string","description":"Subscription ID (as a decimal string, default: 0)"}},"description":"Cancel SAP Subscription input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Cancel SAP Subscription","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_sns_check_domain","title":"Check SNS Domain","description":"Check whether a .sol domain is available by deriving its Solana Name Service PDA and checking whether the account exists on-chain. This is a read-only helper and does not require the historical Bonfida npm package.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to check for availability (with or without .sol suffix)"}},"description":"Check SNS Domain input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Check SNS Domain","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_sns_batch_check_domains","title":"Batch Check SNS Domains","description":"Check availability for multiple .sol domains (up to 25) by deriving each SNS PDA and checking account existence on-chain. This is read-only and safe for hosted mode.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string","description":"A .sol domain name to check (with or without .sol suffix)"},"description":"Array of .sol domain names to batch-check for availability (1-25 domains)"}},"description":"Batch Check SNS Domains input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Batch Check SNS Domains","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_sns_resolve_domain","title":"Resolve SAP SNS Domain","description":"Resolve a .sol domain to its wallet/owner and configured SNS records using direct Solana Name Service account reads. Agents should treat TXT/Pic/Url records as optional metadata and fall back to the wallet owner when no SOL record exists.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to resolve to SAP agent identity and SNS records"}},"description":"Resolve SAP SNS Domain input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Resolve SAP SNS Domain","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_sns_validate_records","title":"Validate SAP SNS Records","description":"Validate SNS records for SAP agent compatibility (checks SOL, Pic, TXT records on-chain).\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name whose SNS records should be validated for SAP agent compatibility"}},"description":"Validate SAP SNS Records input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Validate SAP SNS Records","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_sns_get_domain_pda","title":"Get SNS Domain PDA","description":"Derive the Solana Name Service domain PDA for a .sol domain. This helper is deterministic, read-only, and does not require any external SNS SDK.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to derive the SNS domain PDA for"}},"description":"Get SNS Domain PDA input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SNS Domain PDA","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_sns_get_record_pda","title":"Get SNS Record PDA","description":"Derive the Solana Name Service record PDA for a root .sol domain and record type such as SOL, TXT, Pic, Url, or IPFS.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to derive the record PDA for"},"recordType":{"type":"string","description":"The SNS record type for the PDA derivation (e.g. SOL, TXT, Url, IPFS, ETH, BTC, etc.)"}},"description":"Get SNS Record PDA input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SNS Record PDA","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_sns_register_agent_domain","title":"Register SAP Agent SNS Domain","description":"Temporarily unavailable. SAP MCP does not currently publish an SNS registration write path because the historical Bonfida SNS npm package is not installable from npmjs. Use this tool only to receive the fail-fast status before any payment or signing attempt.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to register for the SAP agent (with or without .sol suffix)"},"agentWallet":{"type":"string","description":"The Solana public key (base58) of the SAP agent wallet that will own the domain"},"pic":{"type":"string","description":"Profile picture URL for the SNS Pic record (required if not provided in records.Pic)"},"records":{"type":"object","description":"Optional map of SNS record key-value pairs to set during registration (e.g. { \"Url\": \"https://...\", \"Twitter\": \"@handle\" }). Note: SOL record is skipped during registration."},"sapData":{"type":"object","description":"Optional structured SAP metadata to embed in the domain TXT record (capabilities, protocols, endpoints, etc.)"},"capabilities":{"type":"array","items":{"type":"string","description":"A SAP capability identifier (e.g. \"jupiter:swap\")"},"description":"Optional list of SAP capability IDs to advertise in the domain TXT record"},"protocols":{"type":"array","items":{"type":"string","description":"A protocol identifier (e.g. \"sap\", \"mcp\")"},"description":"Optional list of protocol IDs the agent supports"},"setAsPrimary":{"type":"boolean","description":"Whether to set this domain as the agent primary .sol domain"},"durationYears":{"type":"number","description":"Registration duration in years (default: 1)"},"space":{"type":"number","description":"Storage space in bytes for the domain name account (default: 600)"}},"description":"Register SAP Agent SNS Domain input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Register SAP Agent SNS Domain","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_sns_get_domain_records","title":"Get SNS Domain Records","description":"Fetch known SNS records for a .sol domain using direct Solana Name Service account reads. Returns a key-value map for records that exist and can be decoded.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to fetch all configured SNS records for"}},"description":"Get SNS Domain Records input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SNS Domain Records","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_sns_get_record","title":"Get SNS Record","description":"Fetch a single SNS record value for a .sol domain using direct Solana Name Service account reads. Returns null if the record account is absent or empty.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to fetch a record from"},"recordType":{"type":"string","description":"The SNS record type to fetch (e.g. SOL, TXT, Url, IPFS, ETH, BTC, etc.)"}},"description":"Get SNS Record input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SNS Record","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_sns_resolve_wallet","title":"Resolve SNS Wallet","description":"Resolve a .sol domain to a wallet public key. The tool prefers the SOL record when available and falls back to the domain owner field from the SNS account header.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to resolve to its owner wallet public key"}},"description":"Resolve SNS Wallet input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Resolve SNS Wallet","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_sns_check_ownership","title":"Check SNS Ownership","description":"Check whether a wallet matches the resolved SNS wallet for a .sol domain. This uses the SOL record when present and the domain owner as fallback.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to check ownership of"},"owner":{"type":"string","description":"Canonical field: Solana public key (base58) of the wallet to verify as the domain owner"},"wallet":{"type":"string","description":"Alias for owner, accepted for agent ergonomics when the user says wallet."}},"description":"Check SNS Ownership input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Check SNS Ownership","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_sns_build_manage_record_transaction","title":"Build SNS Manage Record Transaction","description":"Temporarily unavailable. SAP MCP does not currently publish an SNS record write builder because the historical Bonfida SNS npm package is not installable from npmjs. The tool fails fast before payment or signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name whose record should be created, updated, or deleted"},"recordType":{"type":"string","description":"The SNS record type to manage (e.g. TXT, Url, IPFS, ETH, BTC, etc.)"},"value":{"type":["string","null"],"description":"The new record value as a string, or null to delete the record"},"owner":{"type":"string","description":"The Solana public key (base58) of the domain owner authorizing the record change"}},"description":"Build SNS Manage Record Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SNS Manage Record Transaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_sns_build_set_primary_domain_transaction","title":"Build SNS Set Primary Domain Transaction","description":"Temporarily unavailable. Setting primary SNS domains is disabled in SAP MCP until the SNS write path is migrated to a current installable SDK and covered by end-to-end tests.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_finalize_transaction when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to set as primary for the owner"},"owner":{"type":"string","description":"The Solana public key (base58) of the domain owner setting their primary domain"}},"description":"Build SNS Set Primary Domain Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_finalize_transaction when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SNS Set Primary Domain Transaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_network_stats","title":"Get SAP Network Statistics","description":"Fetch real SAP network statistics using synapse-sap-sdk DiscoveryRegistry and GlobalRegistry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"detailed":{"type":"boolean","description":"Include both discovery overview and raw global registry state.","default":false}},"description":"Get SAP Network Statistics input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SAP Network Statistics","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sol_get_balance","title":"Get SOL Balance","description":"Fetch the SOL balance for a wallet or account using the configured Solana RPC endpoint.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Wallet or account public key in base58"},"pubkey":{"type":"string","description":"Alias for address"},"commitment":{"type":"string","enum":["processed","confirmed","finalized"],"description":"Optional commitment override"}},"description":"Get SOL Balance input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Get SOL Balance","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spl-token_deployToken","title":"Spl-token Deploy Token","description":"Deploy a new SPL token with Metaplex metadata. Returns the mint address and an unsigned transaction. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Token owner / mint authority wallet"},"name":{"type":"string","description":"Token name (stored in Metaplex metadata)"},"symbol":{"type":"string","description":"Token symbol (e.g. \"MYTKN\")"},"decimals":{"type":"number","description":"Token decimals (default: 9)"},"initialSupply":{"type":"string","description":"Raw token amount (smallest unit, no decimals)"},"uri":{"type":"string","description":"URI to off-chain metadata JSON (image, description, etc.)"},"isMutable":{"type":"boolean","description":"Whether metadata is mutable (default: true)"},"freezeAuthority":{"type":"string","description":"Solana public key (base58)"},"mintAuthority":{"type":"string","description":"Solana public key (base58)"},"sellerFeeBasisPoints":{"type":"number","description":"Royalty fee in bps (for fungible with metadata)"}},"required":["owner","name","symbol"],"additionalProperties":false,"description":"Spl-token Deploy Token input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Deploy Token","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"spl-token_transfer","title":"Spl-token Transfer","description":"Transfer SPL tokens between wallets. Optionally creates the recipient ATA. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"from":{"type":"string","description":"Sender wallet address"},"to":{"type":"string","description":"Recipient wallet address"},"mint":{"type":"string","description":"Token mint address"},"amount":{"type":"string","description":"Amount to transfer (raw, smallest unit)"},"createAta":{"type":"boolean","description":"Create recipient ATA if needed (default: true)"},"memo":{"type":"string","description":"Optional memo to attach to the transaction"}},"required":["from","to","mint","amount"],"additionalProperties":false,"description":"Spl-token Transfer input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Transfer","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"spl-token_transferSol","title":"Spl-token Transfer Sol","description":"Transfer native SOL between wallets via SystemProgram.transfer. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"from":{"type":"string","description":"Sender wallet address"},"to":{"type":"string","description":"Recipient wallet address"},"amount":{"type":"string","description":"Amount in lamports (1 SOL = 1_000_000_000 lamports)"},"memo":{"type":"string","description":"Optional memo to attach"}},"required":["from","to","amount"],"additionalProperties":false,"description":"Spl-token Transfer Sol input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Transfer Sol","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"spl-token_getBalance","title":"Spl-token Get Balance","description":"Get token or SOL balance for a wallet. If mint is omitted, returns native SOL balance. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle. Parameter aliases accepted by SAP MCP for agent ergonomics: owner -> wallet, address -> wallet, pubkey -> wallet. Prefer the canonical schema names in new calls.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"Spl-token Get Balance input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Get Balance","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spl-token_getTokenAccounts","title":"Spl-token Get Token Accounts","description":"List all SPL token accounts for a wallet with balances and metadata. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle. Parameter aliases accepted by SAP MCP for agent ergonomics: owner -> wallet, address -> wallet, pubkey -> wallet. Prefer the canonical schema names in new calls.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"Spl-token Get Token Accounts input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Get Token Accounts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spl-token_mintTo","title":"Spl-token Mint To","description":"Mint additional tokens to a destination wallet (requires mint authority). SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address"},"mintAuthority":{"type":"string","description":"Mint authority wallet"},"destination":{"type":"string","description":"Wallet to receive minted tokens"},"amount":{"type":"string","description":"Amount to mint (raw, smallest unit)"}},"required":["mint","mintAuthority","destination","amount"],"additionalProperties":false,"description":"Spl-token Mint To input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Mint To","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"spl-token_burn","title":"Spl-token Burn","description":"Burn SPL tokens from the owner's token account. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)"},"owner":{"type":"string","description":"Token account owner"},"amount":{"type":"string","description":"Amount to burn"}},"required":["mint","owner","amount"],"additionalProperties":false,"description":"Spl-token Burn input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Burn","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"spl-token_freezeAccount","title":"Spl-token Freeze Account","description":"Freeze a token account (prevents all transfers). Requires freeze authority. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)"},"account":{"type":"string","description":"Token account to freeze"},"freezeAuthority":{"type":"string","description":"Freeze authority wallet"}},"required":["mint","account","freezeAuthority"],"additionalProperties":false,"description":"Spl-token Freeze Account input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Freeze Account","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"spl-token_thawAccount","title":"Spl-token Thaw Account","description":"Thaw (unfreeze) a previously frozen token account. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)"},"account":{"type":"string","description":"Token account to thaw"},"freezeAuthority":{"type":"string","description":"Freeze authority wallet"}},"required":["mint","account","freezeAuthority"],"additionalProperties":false,"description":"Spl-token Thaw Account input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Thaw Account","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"spl-token_closeAccount","title":"Spl-token Close Account","description":"Close a token account and reclaim the rent SOL. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"account":{"type":"string","description":"Token account to close"},"owner":{"type":"string","description":"Token account owner"},"destination":{"type":"string","description":"Solana public key (base58)"}},"required":["account","owner"],"additionalProperties":false,"description":"Spl-token Close Account input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Close Account","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"spl-token_rugCheck","title":"Spl-token Rug Check","description":"Check a token for potential rug pull risks: mint/freeze authority, holder concentration, liquidity. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint to analyze"}},"required":["mint"],"additionalProperties":false,"description":"Spl-token Rug Check input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Spl-token Rug Check","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"staking_stakeSOL","title":"Staking Stake S O L","description":"Stake native SOL to a validator. Creates a stake account and delegates. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet to stake from"},"amount":{"type":"string","description":"Amount in lamports to stake"},"validator":{"type":"string","description":"Solana public key (base58)"}},"required":["wallet","amount"],"additionalProperties":false,"description":"Staking Stake S O L input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Staking Stake S O L","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"staking_unstakeSOL","title":"Staking Unstake S O L","description":"Deactivate and withdraw SOL from a stake account. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"stakeAccount":{"type":"string","description":"Stake account to deactivate and withdraw"}},"required":["wallet","stakeAccount"],"additionalProperties":false,"description":"Staking Unstake S O L input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Staking Unstake S O L","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"staking_getStakeAccounts","title":"Staking Get Stake Accounts","description":"List all stake accounts for a wallet with delegation status. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet to query stake accounts for"}},"required":["wallet"],"additionalProperties":false,"description":"Staking Get Stake Accounts input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Staking Get Stake Accounts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"staking_stakeJupSOL","title":"Staking Stake Jup S O L","description":"Stake SOL for jupSOL (Jupiter liquid staking). Instant liquidity, auto-compounding. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Amount in lamports to stake for jupSOL"}},"required":["wallet","amount"],"additionalProperties":false,"description":"Staking Stake Jup S O L input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Staking Stake Jup S O L","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"staking_unstakeJupSOL","title":"Staking Unstake Jup S O L","description":"Unstake jupSOL back to SOL. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Amount of jupSOL to unstake"}},"required":["wallet","amount"],"additionalProperties":false,"description":"Staking Unstake Jup S O L input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Staking Unstake Jup S O L","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"staking_stakeSolayer","title":"Staking Stake Solayer","description":"Stake SOL for sSOL via Solayer. Re-staking protocol with additional yield. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Amount in lamports to stake for sSOL"}},"required":["wallet","amount"],"additionalProperties":false,"description":"Staking Stake Solayer input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Staking Stake Solayer","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"staking_unstakeSolayer","title":"Staking Unstake Solayer","description":"Unstake sSOL back to SOL via Solayer. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Amount of sSOL to unstake"}},"required":["wallet","amount"],"additionalProperties":false,"description":"Staking Unstake Solayer input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Staking Unstake Solayer","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"bridging_bridgeWormhole","title":"Bridging Bridge Wormhole","description":"Bridge tokens across chains via Wormhole. Supports Solana ↔ EVM chains. SAP MCP context: Protocol bridging; operation class write. Use for cross-chain asset movement through Wormhole or deBridge. Confirm source chain, destination chain, token mint, amount, recipient, route fees, and finality expectations before invoking a bridge write. For bridge flows call the matching status tool after submission. If the bridge capability belongs to a registered SAP agent, plan the profile with sap_agent_identity_plan, register through sap_payments_register_agent, then advertise bridge capability IDs with sap_payments_update_agent or sap_publish_tool_by_name.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"sourceChain":{"type":"string","description":"Source chain identifier (e.g. \"solana\", \"ethereum\", \"base\", \"polygon\")"},"destinationChain":{"type":"string","description":"Destination chain identifier"},"token":{"type":"string","description":"Token address on source chain"},"amount":{"type":"string","description":"Amount to bridge (raw, smallest unit)"},"sender":{"type":"string","description":"Sender wallet on source chain"},"recipient":{"type":"string","description":"Recipient address on destination chain"},"relayerFee":{"type":"string","description":"Raw token amount (smallest unit, no decimals)"}},"required":["sourceChain","destinationChain","token","amount","sender","recipient"],"additionalProperties":false,"description":"Bridging Bridge Wormhole input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Bridging Bridge Wormhole","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"bridging_bridgeWormholeStatus","title":"Bridging Bridge Wormhole Status","description":"Check the status of a Wormhole bridge transfer. SAP MCP context: Protocol bridging; operation class read. Use to check Wormhole bridge transfer status after a bridge submission. Call this after bridging_bridgeWormhole and keep the resulting status with the user-facing bridge audit trail.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"sequence":{"type":"string","description":"Wormhole sequence number from bridgeWormhole response"},"sourceChain":{"type":"string","description":"Source Chain parameter for Bridging Bridge Wormhole Status."}},"required":["sequence","sourceChain"],"additionalProperties":false,"description":"Bridging Bridge Wormhole Status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Bridging Bridge Wormhole Status","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"bridging_bridgeDeBridge","title":"Bridging Bridge De Bridge","description":"Bridge tokens across chains via deBridge DLN. Fast cross-chain transfers with deterministic pricing. SAP MCP context: Protocol bridging; operation class write. Use for cross-chain asset movement through Wormhole or deBridge. Confirm source chain, destination chain, token mint, amount, recipient, route fees, and finality expectations before invoking a bridge write. For bridge flows call the matching status tool after submission. If the bridge capability belongs to a registered SAP agent, plan the profile with sap_agent_identity_plan, register through sap_payments_register_agent, then advertise bridge capability IDs with sap_payments_update_agent or sap_publish_tool_by_name.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"sourceChain":{"type":"number","description":"Source chain ID (e.g. 7565164 for Solana)"},"destinationChain":{"type":"number","description":"Destination chain ID"},"tokenIn":{"type":"string","description":"Token address on source chain"},"tokenOut":{"type":"string","description":"Token address on destination chain (use \"0x0\" for native)"},"amount":{"type":"string","description":"Amount to bridge (raw)"},"sender":{"type":"string","description":"Sender address"},"recipient":{"type":"string","description":"Recipient address on destination chain"},"slippageBps":{"type":"number","description":"Slippage tolerance in bps"}},"required":["sourceChain","destinationChain","tokenIn","tokenOut","amount","sender","recipient"],"additionalProperties":false,"description":"Bridging Bridge De Bridge input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Bridging Bridge De Bridge","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"bridging_bridgeDeBridgeStatus","title":"Bridging Bridge De Bridge Status","description":"Check the status of a deBridge DLN cross-chain transfer. SAP MCP context: Protocol bridging; operation class read. Use to check deBridge transfer status after a bridge submission. Call this after bridging_bridgeDeBridge and keep the resulting status with the user-facing bridge audit trail.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"orderId":{"type":"string","description":"deBridge DLN order ID"}},"required":["orderId"],"additionalProperties":false,"description":"Bridging Bridge De Bridge Status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Bridging Bridge De Bridge Status","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"metaplex-nft_deployCollection","title":"Metaplex-nft Deploy Collection","description":"Deploy a new NFT collection via Metaplex. Returns the collection mint and metadata addresses. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"authority":{"type":"string","description":"Collection authority wallet"},"name":{"type":"string","description":"Collection name"},"symbol":{"type":"string","description":"Collection symbol"},"uri":{"type":"string","description":"URI to collection metadata JSON"},"sellerFeeBasisPoints":{"type":"number","description":"Royalty fee in bps (500 = 5%)"},"isMutable":{"type":"boolean","description":"Is Mutable parameter for Metaplex-nft Deploy Collection."},"maxSupply":{"type":"number","description":"Max NFTs in collection (0 = unlimited)"},"creators":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Solana public key (base58)"},"share":{"type":"number","description":"Revenue share percentage"},"verified":{"type":"boolean","description":"Verified parameter for Metaplex-nft Deploy Collection."}},"required":["address","share"],"additionalProperties":false,"description":"Creators parameter for Metaplex-nft Deploy Collection."},"description":"Creator list with revenue shares (must sum to 100)"}},"required":["authority","name","symbol","uri"],"additionalProperties":false,"description":"Metaplex-nft Deploy Collection input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Metaplex-nft Deploy Collection","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"metaplex-nft_mintNFT","title":"Metaplex-nft Mint N F T","description":"Mint a new NFT via Metaplex. Supports both standard and compressed (cNFT) minting. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"authority":{"type":"string","description":"Mint authority wallet"},"collection":{"type":"string","description":"NFT mint address (base58)"},"name":{"type":"string","description":"NFT name"},"symbol":{"type":"string","description":"NFT symbol"},"uri":{"type":"string","description":"URI to NFT metadata JSON (image, attributes, etc.)"},"sellerFeeBasisPoints":{"type":"number","description":"Seller Fee Basis Points parameter for Metaplex-nft Mint N F T."},"isMutable":{"type":"boolean","description":"Is Mutable parameter for Metaplex-nft Mint N F T."},"creators":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Solana public key (base58)"},"share":{"type":"number","description":"Share parameter for Metaplex-nft Mint N F T."},"verified":{"type":"boolean","description":"Verified parameter for Metaplex-nft Mint N F T."}},"required":["address","share"],"additionalProperties":false,"description":"Creators parameter for Metaplex-nft Mint N F T."},"description":"Creators parameter for Metaplex-nft Mint N F T."},"recipient":{"type":"string","description":"Solana public key (base58)"},"isCompressed":{"type":"boolean","description":"Mint as compressed NFT (cNFT) for lower cost"},"merkleTree":{"type":"string","description":"Solana public key (base58)"}},"required":["authority","name","uri"],"additionalProperties":false,"description":"Metaplex-nft Mint N F T input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Metaplex-nft Mint N F T","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"metaplex-nft_updateMetadata","title":"Metaplex-nft Update Metadata","description":"Update NFT metadata fields (name, symbol, URI, creators, royalties, authority). SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address"},"updateAuthority":{"type":"string","description":"Current update authority"},"name":{"type":"string","description":"New name"},"symbol":{"type":"string","description":"New symbol"},"uri":{"type":"string","description":"New metadata URI"},"sellerFeeBasisPoints":{"type":"number","description":"Seller Fee Basis Points parameter for Metaplex-nft Update Metadata."},"creators":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Solana public key (base58)"},"share":{"type":"number","description":"Share parameter for Metaplex-nft Update Metadata."},"verified":{"type":"boolean","description":"Verified parameter for Metaplex-nft Update Metadata."}},"required":["address","share"],"additionalProperties":false,"description":"Creators parameter for Metaplex-nft Update Metadata."},"description":"Creators parameter for Metaplex-nft Update Metadata."},"isMutable":{"type":"boolean","description":"Is Mutable parameter for Metaplex-nft Update Metadata."},"primarySaleHappened":{"type":"boolean","description":"Primary Sale Happened parameter for Metaplex-nft Update Metadata."},"newUpdateAuthority":{"type":"string","description":"Solana public key (base58)"}},"required":["mint","updateAuthority"],"additionalProperties":false,"description":"Metaplex-nft Update Metadata input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Metaplex-nft Update Metadata","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"metaplex-nft_verifyCreator","title":"Metaplex-nft Verify Creator","description":"Verify a creator on an NFT's metadata (requires creator's signature). SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address (base58)"},"creator":{"type":"string","description":"Creator wallet to verify"}},"required":["mint","creator"],"additionalProperties":false,"description":"Metaplex-nft Verify Creator input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Metaplex-nft Verify Creator","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"metaplex-nft_verifyCollection","title":"Metaplex-nft Verify Collection","description":"Verify an NFT as part of a collection. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint to verify"},"collection":{"type":"string","description":"Collection mint"},"collectionAuthority":{"type":"string","description":"Collection authority wallet"}},"required":["mint","collection","collectionAuthority"],"additionalProperties":false,"description":"Metaplex-nft Verify Collection input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Metaplex-nft Verify Collection","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"metaplex-nft_setAndVerifyCollection","title":"Metaplex-nft Set And Verify Collection","description":"Set and verify a collection on an NFT in a single transaction. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address (base58)"},"collection":{"type":"string","description":"NFT mint address (base58)"},"collectionAuthority":{"type":"string","description":"Solana public key (base58)"},"updateAuthority":{"type":"string","description":"NFT update authority"}},"required":["mint","collection","collectionAuthority","updateAuthority"],"additionalProperties":false,"description":"Metaplex-nft Set And Verify Collection input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Metaplex-nft Set And Verify Collection","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"metaplex-nft_delegateAuthority","title":"Metaplex-nft Delegate Authority","description":"Delegate a specific authority (update, mint, freeze, collection) to another wallet. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address (base58)"},"currentAuthority":{"type":"string","description":"Solana public key (base58)"},"newAuthority":{"type":"string","description":"Solana public key (base58)"},"authorityType":{"type":"string","enum":["update","mint","freeze","collection"],"description":"Type of authority to delegate"}},"required":["mint","currentAuthority","newAuthority","authorityType"],"additionalProperties":false,"description":"Metaplex-nft Delegate Authority input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Metaplex-nft Delegate Authority","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"metaplex-nft_revokeAuthority","title":"Metaplex-nft Revoke Authority","description":"Revoke (remove) a specific authority. Irreversible for some types. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address (base58)"},"authority":{"type":"string","description":"Current authority holder"},"authorityType":{"type":"string","enum":["update","mint","freeze","collection"],"description":"Authority Type parameter for Metaplex-nft Revoke Authority."}},"required":["mint","authority","authorityType"],"additionalProperties":false,"description":"Metaplex-nft Revoke Authority input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Metaplex-nft Revoke Authority","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"metaplex-nft_configureRoyalties","title":"Metaplex-nft Configure Royalties","description":"Configure royalty fee and creator splits for an NFT. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address (base58)"},"updateAuthority":{"type":"string","description":"Solana public key (base58)"},"sellerFeeBasisPoints":{"type":"number","description":"Royalty fee in bps"},"creators":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Solana public key (base58)"},"share":{"type":"number","description":"Share parameter for Metaplex-nft Configure Royalties."}},"required":["address","share"],"additionalProperties":false,"description":"Creators parameter for Metaplex-nft Configure Royalties."},"description":"Creator list with revenue shares (must sum to 100)"}},"required":["mint","updateAuthority","sellerFeeBasisPoints","creators"],"additionalProperties":false,"description":"Metaplex-nft Configure Royalties input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Metaplex-nft Configure Royalties","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"3land_createCollection","title":"3land Create Collection","description":"Create a new NFT collection on 3.Land marketplace. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Collection owner wallet"},"name":{"type":"string","description":"Collection name"},"symbol":{"type":"string","description":"Collection symbol"},"description":{"type":"string","description":"Collection description"},"image":{"type":"string","description":"Collection cover image URL"},"royaltyBps":{"type":"number","description":"Royalty Bps parameter for 3land Create Collection."},"creators":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Solana public key (base58)"},"share":{"type":"number","description":"Share parameter for 3land Create Collection."}},"required":["address","share"],"additionalProperties":false,"description":"Creators parameter for 3land Create Collection."},"description":"Creators parameter for 3land Create Collection."}},"required":["owner","name","symbol","image"],"additionalProperties":false,"description":"3land Create Collection input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"3land Create Collection","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"3land_mintAndList","title":"3land Mint And List","description":"Mint an NFT on 3.Land and automatically list it for sale. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Solana public key (base58)"},"collection":{"type":"string","description":"3.Land collection ID"},"name":{"type":"string","description":"Name name or domain value used by 3land Mint And List."},"description":{"type":"string","description":"Description parameter for 3land Mint And List."},"image":{"type":"string","description":"NFT image URL"},"attributes":{"type":"array","items":{"type":"object","properties":{"trait_type":{"type":"string","description":"Trait Type parameter for 3land Mint And List."},"value":{"anyOf":[{"type":"string","description":"Value parameter for 3land Mint And List."},{"type":"number","description":"Value parameter for 3land Mint And List."}],"description":"Value parameter for 3land Mint And List."}},"required":["trait_type","value"],"additionalProperties":false,"description":"Attributes parameter for 3land Mint And List."},"description":"Attributes parameter for 3land Mint And List."},"price":{"type":"string","description":"Listing price in token amount"},"priceMint":{"type":"string","description":"NFT mint address (base58)"},"supply":{"type":"number","description":"Edition supply"}},"required":["owner","collection","name","image","price"],"additionalProperties":false,"description":"3land Mint And List input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"3land Mint And List","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"3land_listForSale","title":"3land List For Sale","description":"List an NFT for sale on 3.Land in any SPL token. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"seller":{"type":"string","description":"Solana public key (base58)"},"mint":{"type":"string","description":"NFT mint to list"},"price":{"type":"string","description":"Listing price (in specified token)"},"priceMint":{"type":"string","description":"NFT mint address (base58)"},"expiry":{"type":"string","description":"ISO 8601 listing expiry timestamp"}},"required":["seller","mint","price"],"additionalProperties":false,"description":"3land List For Sale input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"3land List For Sale","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"3land_cancelListing","title":"3land Cancel Listing","description":"Cancel an active NFT listing on 3.Land. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"seller":{"type":"string","description":"Solana public key (base58)"},"listingId":{"type":"string","description":"3.Land listing ID to cancel"}},"required":["seller","listingId"],"additionalProperties":false,"description":"3land Cancel Listing input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"3land Cancel Listing","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"3land_buyNFT","title":"3land Buy N F T","description":"Purchase an NFT from a 3.Land listing. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"buyer":{"type":"string","description":"Solana public key (base58)"},"listingId":{"type":"string","description":"3.Land listing ID"}},"required":["buyer","listingId"],"additionalProperties":false,"description":"3land Buy N F T input schema. Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"3land Buy N F T","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"das_getAsset","title":"Das Get Asset","description":"Get detailed information about a single NFT/asset via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Asset mint address"}},"required":["id"],"additionalProperties":false,"description":"Das Get Asset input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Das Get Asset","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"das_getAssetsByOwner","title":"Das Get Assets By Owner","description":"Get all NFTs/assets owned by a wallet via DAS (supports pagination). SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"ownerAddress":{"type":"string","description":"Solana public key (base58)"},"page":{"type":"number","description":"Page pagination control for Das Get Assets By Owner."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Das Get Assets By Owner."},"sortBy":{"type":"string","enum":["created","updated","recent_action"],"description":"Sort By parameter for Das Get Assets By Owner."},"before":{"type":"string","description":"Before parameter for Das Get Assets By Owner."},"after":{"type":"string","description":"After parameter for Das Get Assets By Owner."}},"required":["ownerAddress"],"additionalProperties":false,"description":"Das Get Assets By Owner input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Das Get Assets By Owner","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"das_getAssetsByCreator","title":"Das Get Assets By Creator","description":"Get all NFTs/assets created by a specific creator via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"creatorAddress":{"type":"string","description":"Solana public key (base58)"},"onlyVerified":{"type":"boolean","description":"Only Verified parameter for Das Get Assets By Creator."},"page":{"type":"number","description":"Page pagination control for Das Get Assets By Creator."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Das Get Assets By Creator."}},"required":["creatorAddress"],"additionalProperties":false,"description":"Das Get Assets By Creator input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Das Get Assets By Creator","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"das_getAssetsByCollection","title":"Das Get Assets By Collection","description":"Get all NFTs in a collection via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"collectionAddress":{"type":"string","description":"NFT mint address (base58)"},"page":{"type":"number","description":"Page pagination control for Das Get Assets By Collection."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Das Get Assets By Collection."}},"required":["collectionAddress"],"additionalProperties":false,"description":"Das Get Assets By Collection input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Das Get Assets By Collection","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"das_searchAssets","title":"Das Search Assets","description":"Search NFTs/assets with flexible filters via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"ownerAddress":{"type":"string","description":"Solana public key (base58)"},"creatorAddress":{"type":"string","description":"Solana public key (base58)"},"grouping":{"description":"Grouping key-value pair (e.g. [\"collection\", \"mint_address\"])"},"compressed":{"type":"boolean","description":"Compressed parameter for Das Search Assets."},"frozen":{"type":"boolean","description":"Frozen parameter for Das Search Assets."},"burnt":{"type":"boolean","description":"Burnt parameter for Das Search Assets."},"jsonUri":{"type":"string","description":"Json URI parameter for Das Search Assets."},"page":{"type":"number","description":"Page pagination control for Das Search Assets."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Das Search Assets."}},"additionalProperties":false,"description":"Das Search Assets input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Das Search Assets","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"pump_launchToken","title":"Pump Launch Token","description":"Launch a new token on Pump.fun via PumpPortal. Optionally include an initial dev buy. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"deployer":{"type":"string","description":"Deployer wallet"},"name":{"type":"string","description":"Token name"},"symbol":{"type":"string","description":"Token ticker"},"description":{"type":"string","description":"Description parameter for Pump Launch Token."},"image":{"type":"string","description":"Token logo URL"},"twitter":{"type":"string","description":"Twitter/X handle"},"telegram":{"type":"string","description":"Telegram group link"},"website":{"type":"string","description":"Website URL"},"initialBuyAmount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["deployer","name","symbol"],"additionalProperties":false,"description":"Pump Launch Token input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Pump Launch Token","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"pump_trade","title":"Pump Trade","description":"Buy or sell tokens on Pump.fun bonding curve. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"mint":{"type":"string","description":"Pump.fun token mint"},"action":{"type":"string","enum":["buy","sell"],"description":"Trade direction"},"amount":{"type":"string","description":"Amount in SOL (buy) or tokens (sell)"},"slippageBps":{"type":"number","description":"Slippage Bps pagination control for Pump Trade."}},"required":["wallet","mint","action","amount"],"additionalProperties":false,"description":"Pump Trade input schema. Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Pump Trade","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"raydium-pools_createCPMM","title":"Raydium-pools Create C P M M","description":"Create a Raydium CPMM (Constant Product Market Maker) pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"mintA":{"type":"string","description":"Token A mint"},"mintB":{"type":"string","description":"Token B mint"},"amountA":{"type":"string","description":"Initial liquidity for token A"},"amountB":{"type":"string","description":"Initial liquidity for token B"},"startTime":{"type":"number","description":"Pool start time (Unix timestamp)"}},"required":["creator","mintA","mintB","amountA","amountB"],"additionalProperties":false,"description":"Raydium-pools Create C P M M input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Raydium-pools Create C P M M","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"raydium-pools_createCLMM","title":"Raydium-pools Create C L M M","description":"Create a Raydium CLMM (Concentrated Liquidity) pool with a price range. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"mintA":{"type":"string","description":"Token mint address (base58)"},"mintB":{"type":"string","description":"Token mint address (base58)"},"initialPrice":{"type":"number","description":"Initial price of token A in terms of token B"},"tickSpacing":{"type":"number","description":"Tick spacing (defines fee tier: 1=0.01%, 10=0.05%, 60=0.3%, 200=1%)"},"amountA":{"type":"string","description":"Initial liquidity for token A"},"amountB":{"type":"string","description":"Initial liquidity for token B"},"priceLower":{"type":"number","description":"Lower price bound for liquidity range"},"priceUpper":{"type":"number","description":"Upper price bound for liquidity range"},"startTime":{"type":"number","description":"Start Time parameter for Raydium-pools Create C L M M."}},"required":["creator","mintA","mintB","initialPrice","tickSpacing","amountA","amountB","priceLower","priceUpper"],"additionalProperties":false,"description":"Raydium-pools Create C L M M input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Raydium-pools Create C L M M","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"raydium-pools_createAMMv4","title":"Raydium-pools Create A M Mv4","description":"Create a Raydium AMM v4 pool (requires an existing Openbook market). SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"marketId":{"type":"string","description":"Openbook market ID"},"baseAmount":{"type":"string","description":"Raw token amount (smallest unit)"},"quoteAmount":{"type":"string","description":"Raw token amount (smallest unit)"},"startTime":{"type":"number","description":"Start Time parameter for Raydium-pools Create A M Mv4."}},"required":["creator","marketId","baseAmount","quoteAmount"],"additionalProperties":false,"description":"Raydium-pools Create A M Mv4 input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Raydium-pools Create A M Mv4","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"raydium-pools_addLiquidity","title":"Raydium-pools Add Liquidity","description":"Add liquidity to a Raydium pool (CPMM, CLMM, or AMM v4). SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"poolId":{"type":"string","description":"Raydium pool ID"},"amountA":{"type":"string","description":"Raw token amount (smallest unit)"},"amountB":{"type":"string","description":"Raw token amount (smallest unit)"},"priceLower":{"type":"number","description":"Lower price for CLMM range"},"priceUpper":{"type":"number","description":"Upper price for CLMM range"},"fixedSide":{"type":"string","enum":["a","b"],"description":"Fixed side for single-sided liquidity"}},"required":["wallet","poolId"],"additionalProperties":false,"description":"Raydium-pools Add Liquidity input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Raydium-pools Add Liquidity","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"raydium-pools_removeLiquidity","title":"Raydium-pools Remove Liquidity","description":"Remove liquidity from a Raydium pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"poolId":{"type":"string","description":"Solana public key (base58)"},"lpAmount":{"type":"string","description":"Raw token amount (smallest unit)"},"positionNft":{"type":"string","description":"Token mint address (base58)"},"percentage":{"type":"number","description":"Percentage of liquidity to remove"}},"required":["wallet","poolId"],"additionalProperties":false,"description":"Raydium-pools Remove Liquidity input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Raydium-pools Remove Liquidity","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"orca_getWhirlpool","title":"Orca Get Whirlpool","description":"Get Orca Whirlpool pool information. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"poolAddress":{"type":"string","description":"Whirlpool pool address"}},"required":["poolAddress"],"additionalProperties":false,"description":"Orca Get Whirlpool input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Orca Get Whirlpool","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"orca_swap","title":"Orca Swap","description":"Swap tokens on an Orca Whirlpool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"poolAddress":{"type":"string","description":"Solana public key (base58)"},"inputMint":{"type":"string","description":"Token mint address (base58)"},"amount":{"type":"string","description":"Raw token amount (smallest unit)"},"slippageBps":{"type":"number","description":"Slippage Bps pagination control for Orca Swap."},"isExactInput":{"type":"boolean","description":"Is Exact Input parameter for Orca Swap."}},"required":["wallet","poolAddress","inputMint","amount"],"additionalProperties":false,"description":"Orca Swap input schema. Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Orca Swap","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"orca_openPosition","title":"Orca Open Position","description":"Open a concentrated liquidity position on an Orca Whirlpool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"poolAddress":{"type":"string","description":"Solana public key (base58)"},"priceLower":{"type":"number","description":"Price Lower parameter for Orca Open Position."},"priceUpper":{"type":"number","description":"Price Upper parameter for Orca Open Position."},"amountA":{"type":"string","description":"Raw token amount (smallest unit)"},"amountB":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","poolAddress","priceLower","priceUpper"],"additionalProperties":false,"description":"Orca Open Position input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Orca Open Position","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"orca_closePosition","title":"Orca Close Position","description":"Close a Whirlpool position and collect all fees/rewards. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionMint":{"type":"string","description":"Token mint address (base58)"}},"required":["wallet","positionMint"],"additionalProperties":false,"description":"Orca Close Position input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Orca Close Position","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"orca_collectFees","title":"Orca Collect Fees","description":"Collect accumulated fees from a Whirlpool position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionMint":{"type":"string","description":"Token mint address (base58)"}},"required":["wallet","positionMint"],"additionalProperties":false,"description":"Orca Collect Fees input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Orca Collect Fees","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"manifest_createMarket","title":"Manifest Create Market","description":"Create a new Manifest market for a token pair. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"baseMint":{"type":"string","description":"Base token mint"},"quoteMint":{"type":"string","description":"Quote token mint"}},"required":["creator","baseMint","quoteMint"],"additionalProperties":false,"description":"Manifest Create Market input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Manifest Create Market","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"manifest_placeLimitOrder","title":"Manifest Place Limit Order","description":"Place a limit order on a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"marketId":{"type":"string","description":"Solana public key (base58)"},"side":{"type":"string","enum":["buy","sell"],"description":"Side parameter for Manifest Place Limit Order."},"price":{"type":"number","description":"Limit price"},"size":{"type":"string","description":"Order size in base tokens"},"orderType":{"type":"string","enum":["limit","postOnly","ioc"],"description":"Order Type parameter for Manifest Place Limit Order."}},"required":["wallet","marketId","side","price","size"],"additionalProperties":false,"description":"Manifest Place Limit Order input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Manifest Place Limit Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"manifest_cancelOrder","title":"Manifest Cancel Order","description":"Cancel a limit order on a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"marketId":{"type":"string","description":"Solana public key (base58)"},"orderId":{"type":"string","description":"Order ID parameter for Manifest Cancel Order."}},"required":["wallet","marketId","orderId"],"additionalProperties":false,"description":"Manifest Cancel Order input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Manifest Cancel Order","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"manifest_getOrderbook","title":"Manifest Get Orderbook","description":"Get the current orderbook for a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"marketId":{"type":"string","description":"Solana public key (base58)"},"depth":{"type":"number","description":"Depth parameter for Manifest Get Orderbook."}},"required":["marketId"],"additionalProperties":false,"description":"Manifest Get Orderbook input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Manifest Get Orderbook","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"meteora_createDynamicPool","title":"Meteora Create Dynamic Pool","description":"Create a Meteora Dynamic AMM pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"mintA":{"type":"string","description":"Token mint address (base58)"},"mintB":{"type":"string","description":"Token mint address (base58)"},"amountA":{"type":"string","description":"Raw token amount (smallest unit)"},"amountB":{"type":"string","description":"Raw token amount (smallest unit)"},"tradeFeeNumerator":{"type":"number","description":"Trade fee numerator (default pool fee)"},"tradeFeeDenominator":{"type":"number","description":"Trade Fee Denominator parameter for Meteora Create Dynamic Pool."},"activationType":{"type":"string","enum":["slot","timestamp"],"description":"Activation Type parameter for Meteora Create Dynamic Pool."},"activationPoint":{"type":"number","description":"Activation slot/timestamp"}},"required":["creator","mintA","mintB","amountA","amountB"],"additionalProperties":false,"description":"Meteora Create Dynamic Pool input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Meteora Create Dynamic Pool","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"meteora_createDLMMPool","title":"Meteora Create D L M M Pool","description":"Create a Meteora DLMM (Discrete Liquidity Market Maker) pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"mintX":{"type":"string","description":"Token X mint"},"mintY":{"type":"string","description":"Token Y mint"},"binStep":{"type":"number","description":"Bin step size (defines fee tier and price granularity)"},"initialPrice":{"type":"number","description":"Initial Price parameter for Meteora Create D L M M Pool."},"amountX":{"type":"string","description":"Raw token amount (smallest unit)"},"amountY":{"type":"string","description":"Raw token amount (smallest unit)"},"priceRoundingUp":{"type":"boolean","description":"Price Rounding Up parameter for Meteora Create D L M M Pool."},"feeBps":{"type":"number","description":"Fee Bps parameter for Meteora Create D L M M Pool."},"activationType":{"type":"string","enum":["slot","timestamp"],"description":"Activation Type parameter for Meteora Create D L M M Pool."},"activationPoint":{"type":"number","description":"Activation Point parameter for Meteora Create D L M M Pool."}},"required":["creator","mintX","mintY","binStep","initialPrice"],"additionalProperties":false,"description":"Meteora Create D L M M Pool input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Meteora Create D L M M Pool","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"meteora_addDLMMLiquidity","title":"Meteora Add D L M M Liquidity","description":"Add liquidity to a Meteora DLMM pool with a distribution strategy. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"poolAddress":{"type":"string","description":"Solana public key (base58)"},"amountX":{"type":"string","description":"Raw token amount (smallest unit)"},"amountY":{"type":"string","description":"Raw token amount (smallest unit)"},"strategy":{"type":"string","enum":["spot","curve","bid-ask"],"description":"Liquidity distribution strategy"},"minBinId":{"type":"number","description":"Min Bin ID parameter for Meteora Add D L M M Liquidity."},"maxBinId":{"type":"number","description":"Max Bin ID parameter for Meteora Add D L M M Liquidity."}},"required":["wallet","poolAddress","amountX","amountY"],"additionalProperties":false,"description":"Meteora Add D L M M Liquidity input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Meteora Add D L M M Liquidity","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"meteora_removeDLMMLiquidity","title":"Meteora Remove D L M M Liquidity","description":"Remove liquidity from a Meteora DLMM position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionAddress":{"type":"string","description":"Solana public key (base58)"},"percentage":{"type":"number","description":"Percentage parameter for Meteora Remove D L M M Liquidity."}},"required":["wallet","positionAddress"],"additionalProperties":false,"description":"Meteora Remove D L M M Liquidity input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Meteora Remove D L M M Liquidity","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"meteora_createAlphaVault","title":"Meteora Create Alpha Vault","description":"Create a Meteora Alpha Vault for fair token launches with vesting. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"poolAddress":{"type":"string","description":"Solana public key (base58)"},"depositMint":{"type":"string","description":"Token mint accepted for deposits"},"maxDeposit":{"type":"string","description":"Maximum deposit cap"},"vestingDuration":{"type":"number","description":"Vesting duration in seconds"},"startTime":{"type":"number","description":"Vault start time (Unix timestamp)"}},"required":["creator","poolAddress","depositMint","maxDeposit","vestingDuration"],"additionalProperties":false,"description":"Meteora Create Alpha Vault input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Meteora Create Alpha Vault","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"openbook_createMarket","title":"Openbook Create Market","description":"Create a new Openbook DEX market for a token pair. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"baseMint":{"type":"string","description":"Token mint address (base58)"},"quoteMint":{"type":"string","description":"Token mint address (base58)"},"lotSize":{"type":"number","description":"Minimum order size"},"tickSize":{"type":"number","description":"Minimum price increment"}},"required":["creator","baseMint","quoteMint","lotSize","tickSize"],"additionalProperties":false,"description":"Openbook Create Market input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Openbook Create Market","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"openbook_placeOrder","title":"Openbook Place Order","description":"Place an order on an Openbook market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"marketId":{"type":"string","description":"Solana public key (base58)"},"side":{"type":"string","enum":["buy","sell"],"description":"Side parameter for Openbook Place Order."},"price":{"type":"number","description":"Price parameter for Openbook Place Order."},"size":{"type":"string","description":"Raw token amount (smallest unit)"},"orderType":{"type":"string","enum":["limit","ioc","postOnly"],"description":"Order Type parameter for Openbook Place Order."}},"required":["wallet","marketId","side","price","size"],"additionalProperties":false,"description":"Openbook Place Order input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Openbook Place Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"openbook_cancelOrder","title":"Openbook Cancel Order","description":"Cancel an open order on an Openbook market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"marketId":{"type":"string","description":"Solana public key (base58)"},"orderId":{"type":"string","description":"Order ID parameter for Openbook Cancel Order."}},"required":["wallet","marketId","orderId"],"additionalProperties":false,"description":"Openbook Cancel Order input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Openbook Cancel Order","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"adrena_openPosition","title":"Adrena Open Position","description":"Open a leveraged perpetual position on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"market":{"type":"string","description":"Market symbol (e.g. \"SOL\", \"BTC\", \"ETH\")"},"collateralMint":{"type":"string","description":"Collateral token mint (e.g. USDC, SOL)"},"collateralAmount":{"type":"string","description":"Raw token amount (smallest unit)"},"side":{"type":"string","enum":["long","short"],"description":"Side parameter for Adrena Open Position."},"leverage":{"type":"number","description":"Leverage multiplier"},"stopLoss":{"type":"number","description":"Stop loss price"},"takeProfit":{"type":"number","description":"Take profit price"}},"required":["wallet","market","collateralMint","collateralAmount","side","leverage"],"additionalProperties":false,"description":"Adrena Open Position input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Adrena Open Position","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"adrena_closePosition","title":"Adrena Close Position","description":"Close a perpetual position on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionKey":{"type":"string","description":"Solana public key (base58)"}},"required":["wallet","positionKey"],"additionalProperties":false,"description":"Adrena Close Position input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Adrena Close Position","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"adrena_addCollateral","title":"Adrena Add Collateral","description":"Add collateral to an existing Adrena position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionKey":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","positionKey","amount"],"additionalProperties":false,"description":"Adrena Add Collateral input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Adrena Add Collateral","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"adrena_removeCollateral","title":"Adrena Remove Collateral","description":"Remove collateral from an Adrena position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionKey":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","positionKey","amount"],"additionalProperties":false,"description":"Adrena Remove Collateral input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Adrena Remove Collateral","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"adrena_getPositions","title":"Adrena Get Positions","description":"Get all open positions on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"}},"required":["wallet"],"additionalProperties":false,"description":"Adrena Get Positions input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Adrena Get Positions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"lulo_deposit","title":"Lulo Deposit","description":"Deposit into the best APR lending protocol via Lulo aggregator. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"mint":{"type":"string","description":"Token to deposit (e.g. USDC)"},"amount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","mint","amount"],"additionalProperties":false,"description":"Lulo Deposit input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Lulo Deposit","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"lulo_withdraw","title":"Lulo Withdraw","description":"Withdraw from Lulo lending position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"mint":{"type":"string","description":"Token mint address (base58)"},"amount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","mint","amount"],"additionalProperties":false,"description":"Lulo Withdraw input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Lulo Withdraw","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"lulo_getBestRates","title":"Lulo Get Best Rates","description":"Get the best lending/yield rates across all protocols via Lulo. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)"}},"additionalProperties":false,"description":"Lulo Get Best Rates input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Lulo Get Best Rates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"lulo_getPositions","title":"Lulo Get Positions","description":"Get all Lulo lending positions for a wallet. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"}},"required":["wallet"],"additionalProperties":false,"description":"Lulo Get Positions input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Lulo Get Positions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jito_sendBundle","title":"Jito Send Bundle","description":"Send a Jito bundle for MEV-protected, atomic transaction execution. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"transactions":{"type":"array","items":{"type":"string","description":"Base64-encoded serialized transaction"},"description":"Array of base64-encoded signed transactions (max 5)"},"tipLamports":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["transactions"],"additionalProperties":false,"description":"Jito Send Bundle input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jito Send Bundle","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"jito_getBundleStatus","title":"Jito Get Bundle Status","description":"Check the status of a submitted Jito bundle. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"bundleId":{"type":"string","description":"Bundle ID parameter for Jito Get Bundle Status."}},"required":["bundleId"],"additionalProperties":false,"description":"Jito Get Bundle Status input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jito Get Bundle Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jito_getTipEstimate","title":"Jito Get Tip Estimate","description":"Get current Jito tip percentile estimates for bundle inclusion priority. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"description":"Jito Get Tip Estimate input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jito Get Tip Estimate","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sns_resolveDomain","title":"Sns Resolve Domain","description":"Resolve a .sol domain to its owner wallet address. SAP MCP context: Protocol sns; operation class read. Use to resolve a .sol domain through AgentKit SNS helpers. For SAP-linked domains, prefer sap_sns_resolve_domain because it returns SAP MCP-shaped context.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Full domain name (e.g. \"myname.sol\")"}},"required":["domain"],"additionalProperties":false,"description":"Sns Resolve Domain input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Sns Resolve Domain","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sns_reverseLookup","title":"Sns Reverse Lookup","description":"Reverse-lookup all .sol domains owned by a wallet. SAP MCP context: Protocol sns; operation class read. Use to find the SNS domain associated with a wallet. For SAP profile checks, pair this with sap_sns_resolve_wallet or sap_sns_check_ownership.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet address to reverse-lookup"}},"required":["wallet"],"additionalProperties":false,"description":"Sns Reverse Lookup input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Sns Reverse Lookup","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"alldomains_registerDomain","title":"Alldomains Register Domain","description":"Register a domain on AllDomains (supports multiple TLDs: .abc, .bonk, .poor, etc.). SAP MCP context: Protocol alldomains; operation class write. Use for AllDomains name registration and resolution workflows. Confirm domain, TLD, owner, and renewal or purchase terms before writes. Use only when the requested name service is not SNS-specific.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"domain":{"type":"string","description":"Full domain (e.g. \"myname.abc\", \"trader.bonk\")"},"tld":{"type":"string","description":"TLD if not included in domain string"}},"required":["wallet","domain"],"additionalProperties":false,"description":"Alldomains Register Domain input schema. Intent: local-signer write workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Alldomains Register Domain","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"alldomains_resolveDomain","title":"Alldomains Resolve Domain","description":"Resolve a multi-TLD domain to its owner wallet. SAP MCP context: Protocol alldomains; operation class read. Use to resolve an AllDomains name without changing ownership or records. Use only when the requested name service is not SNS-specific.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Full domain to resolve"}},"required":["domain"],"additionalProperties":false,"description":"Alldomains Resolve Domain input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Alldomains Resolve Domain","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"alldomains_getOwnedDomains","title":"Alldomains Get Owned Domains","description":"Get all domains owned by a wallet across all TLDs. SAP MCP context: Protocol alldomains; operation class read. Use to list domains owned by a wallet through AllDomains. Use as discovery context before choosing a name to associate with an agent.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"tld":{"type":"string","description":"Filter by TLD"}},"required":["wallet"],"additionalProperties":false,"description":"Alldomains Get Owned Domains input schema. Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Alldomains Get Owned Domains","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"pyth_getPrice","title":"Pyth Get Price","description":"Get the current price from a Pyth on-chain oracle feed. SAP MCP context: Protocol pyth; operation class read. Use for Pyth oracle price reads and feed discovery. Use oracle reads as context for pricing, risk checks, and market-aware agent decisions; do not treat them as settlement proof.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"priceId":{"type":"string","description":"Pyth price feed ID (hex) or symbol (e.g. \"SOL/USD\")"}},"required":["priceId"],"additionalProperties":false,"description":"Pyth Get Price input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Pyth Get Price","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"pyth_getPriceHistory","title":"Pyth Get Price History","description":"Get historical price data from Pyth oracle. SAP MCP context: Protocol pyth; operation class read. Use for Pyth oracle price reads and feed discovery. Use oracle reads as context for pricing, risk checks, and market-aware agent decisions; do not treat them as settlement proof.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"priceId":{"type":"string","description":"Price ID parameter for Pyth Get Price History."},"period":{"type":"string","enum":["1h","4h","1d","7d","30d"],"description":"Period parameter for Pyth Get Price History."}},"required":["priceId"],"additionalProperties":false,"description":"Pyth Get Price History input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Pyth Get Price History","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"pyth_listPriceFeeds","title":"Pyth List Price Feeds","description":"List available Pyth price feeds, optionally filtered by query or asset type. SAP MCP context: Protocol pyth; operation class read. Use for Pyth oracle price reads and feed discovery. Use oracle reads as context for pricing, risk checks, and market-aware agent decisions; do not treat them as settlement proof.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search filter (e.g. \"SOL\", \"BTC\")"},"assetType":{"type":"string","enum":["crypto","equity","fx","metal","rates"],"description":"Asset Type parameter for Pyth List Price Feeds."}},"additionalProperties":false,"description":"Pyth List Price Feeds input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Pyth List Price Feeds","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"coingecko_getTokenPrice","title":"Coingecko Get Token Price","description":"Get token price and market data from CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"CoinGecko token ID or contract address"},"vsCurrency":{"type":"string","description":"Vs Currency parameter for Coingecko Get Token Price."},"includeMarketCap":{"type":"boolean","description":"Include Market Cap parameter for Coingecko Get Token Price."},"include24hChange":{"type":"boolean","description":"Include24h Change parameter for Coingecko Get Token Price."},"include24hVolume":{"type":"boolean","description":"Include24h Volume parameter for Coingecko Get Token Price."}},"required":["tokenId"],"additionalProperties":false,"description":"Coingecko Get Token Price input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Coingecko Get Token Price","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"coingecko_getTrending","title":"Coingecko Get Trending","description":"Get trending tokens and NFTs on CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"description":"Coingecko Get Trending input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Coingecko Get Trending","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"coingecko_getTopGainersLosers","title":"Coingecko Get Top Gainers Losers","description":"Get top gainers and losers from CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"vsCurrency":{"type":"string","description":"Vs Currency parameter for Coingecko Get Top Gainers Losers."},"duration":{"type":"string","enum":["1h","24h","7d","14d","30d","1y"],"description":"Duration parameter for Coingecko Get Top Gainers Losers."}},"additionalProperties":false,"description":"Coingecko Get Top Gainers Losers input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Coingecko Get Top Gainers Losers","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"coingecko_getTokenInfo","title":"Coingecko Get Token Info","description":"Get detailed token information from CoinGecko (description, links, market data). SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"CoinGecko token ID"}},"required":["tokenId"],"additionalProperties":false,"description":"Coingecko Get Token Info input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Coingecko Get Token Info","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"coingecko_getPoolsByToken","title":"Coingecko Get Pools By Token","description":"Get all liquidity pools for a token from CoinGecko on-chain DEX tracker. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"network":{"type":"string","description":"Network Solana network or cluster selector for Coingecko Get Pools By Token."},"tokenAddress":{"type":"string","description":"Token contract/mint address"},"page":{"type":"number","description":"Page pagination control for Coingecko Get Pools By Token."}},"required":["tokenAddress"],"additionalProperties":false,"description":"Coingecko Get Pools By Token input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Coingecko Get Pools By Token","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"coingecko_getOHLCV","title":"Coingecko Get O H L C V","description":"Get OHLCV (price chart) data from CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"Token ID mint, symbol, or token identifier used by Coingecko Get O H L C V."},"vsCurrency":{"type":"string","description":"Vs Currency parameter for Coingecko Get O H L C V."},"days":{"type":"string","enum":["1","7","14","30","90","180","365","max"],"description":"Days parameter for Coingecko Get O H L C V."}},"required":["tokenId"],"additionalProperties":false,"description":"Coingecko Get O H L C V input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Coingecko Get O H L C V","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"gibwork_createBounty","title":"Gibwork Create Bounty","description":"Create a new bounty on Gib Work with on-chain escrow. SAP MCP context: Protocol gibwork; operation class write. Use for bounty creation, listing, and work submission. Confirm scope, payout, recipient, and deliverable evidence before writes. Use SAP attestation or feedback tools after work completion when reputation should be recorded on SAP.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"title":{"type":"string","description":"Bounty title"},"description":{"type":"string","description":"Detailed bounty description"},"rewardMint":{"type":"string","description":"Token mint address (base58)"},"rewardAmount":{"type":"string","description":"Reward amount"},"tags":{"type":"array","items":{"type":"string","description":"Tags parameter for Gibwork Create Bounty."},"description":"Tags parameter for Gibwork Create Bounty."},"deadline":{"type":"number","description":"Deadline (Unix timestamp)"}},"required":["creator","title","description","rewardAmount"],"additionalProperties":false,"description":"Gibwork Create Bounty input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Gibwork Create Bounty","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"gibwork_listBounties","title":"Gibwork List Bounties","description":"List available bounties on Gib Work. SAP MCP context: Protocol gibwork; operation class write. Use for bounty creation, listing, and work submission. Confirm scope, payout, recipient, and deliverable evidence before writes. Use SAP attestation or feedback tools after work completion when reputation should be recorded on SAP.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["open","in_progress","completed","cancelled"],"description":"Status parameter for Gibwork List Bounties."},"tags":{"type":"array","items":{"type":"string","description":"Tags parameter for Gibwork List Bounties."},"description":"Tags parameter for Gibwork List Bounties."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Gibwork List Bounties."}},"additionalProperties":false,"description":"Gibwork List Bounties input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Gibwork List Bounties","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"gibwork_submitWork","title":"Gibwork Submit Work","description":"Submit completed work for a Gib Work bounty. SAP MCP context: Protocol gibwork; operation class write. Use for bounty creation, listing, and work submission. Confirm scope, payout, recipient, and deliverable evidence before writes. Use SAP attestation or feedback tools after work completion when reputation should be recorded on SAP.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"bountyId":{"type":"string","description":"Bounty ID parameter for Gibwork Submit Work."},"submissionUrl":{"type":"string","description":"URL to the completed work (PR, doc, etc.)"},"notes":{"type":"string","description":"Notes parameter for Gibwork Submit Work."}},"required":["wallet","bountyId","submissionUrl"],"additionalProperties":false,"description":"Gibwork Submit Work input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Gibwork Submit Work","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"send-arcade_listGames","title":"Send-arcade List Games","description":"List available games on Send Arcade. SAP MCP context: Protocol send-arcade; operation class write. Use for Send Arcade game listing and play flows. Confirm account, wager or spend, and game rules before writes. Keep gaming activity separate from SAP identity unless it is intentionally part of an agent profile.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["active","upcoming","ended"],"description":"Status parameter for Send-arcade List Games."}},"additionalProperties":false,"description":"Send-arcade List Games input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Send-arcade List Games","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"send-arcade_playGame","title":"Send-arcade Play Game","description":"Enter and play a game on Send Arcade (pays entry fee via transaction). SAP MCP context: Protocol send-arcade; operation class write. Use for Send Arcade game listing and play flows. Confirm account, wager or spend, and game rules before writes. Keep gaming activity separate from SAP identity unless it is intentionally part of an agent profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"gameId":{"type":"string","description":"Game ID parameter for Send-arcade Play Game."},"betAmount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","gameId"],"additionalProperties":false,"description":"Send-arcade Play Game input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Send-arcade Play Game","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"blinks_getAction","title":"Blinks Get Action","description":"Fetch metadata for a Solana Action (Blink) — returns title, description, available actions, and parameters. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"actionUrl":{"type":"string","description":"Solana Action URL (https endpoint implementing the Actions spec)"}},"required":["actionUrl"],"additionalProperties":false,"description":"Blinks Get Action input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Blinks Get Action","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"blinks_executeAction","title":"Blinks Execute Action","description":"Execute a Solana Action — sends wallet to the Action endpoint and receives a transaction to sign. SAP MCP context: Protocol blinks; operation class write. Use to execute a Solana Action POST flow. Confirm the action metadata, parameters, expected transaction, and user intent before invoking. Preview and validate action output before signing or submitting any returned transaction through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"actionUrl":{"type":"string","description":"Action endpoint URL (from getAction links)"},"wallet":{"type":"string","description":"User wallet to sign the transaction"},"params":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value parameters to fill Action template variables"}},"required":["actionUrl","wallet"],"additionalProperties":false,"description":"Blinks Execute Action input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Blinks Execute Action","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"blinks_confirmAction","title":"Blinks Confirm Action","description":"Confirm a completed Solana Action by sending the tx signature back to the Action provider. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"actionUrl":{"type":"string","description":"Action URL parameter for Blinks Confirm Action."},"signature":{"type":"string","description":"Transaction signature after signing and submitting"}},"required":["actionUrl","signature"],"additionalProperties":false,"description":"Blinks Confirm Action input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Blinks Confirm Action","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"blinks_resolveBlinkUrl","title":"Blinks Resolve Blink Url","description":"Resolve a Blink URL (e.g. dial.to link) to its underlying Solana Action URL. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"blinkUrl":{"type":"string","description":"Blink URL (e.g. https://dial.to/?action=solana-action:...)"}},"required":["blinkUrl"],"additionalProperties":false,"description":"Blinks Resolve Blink Url input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Blinks Resolve Blink Url","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"blinks_validateActionsJson","title":"Blinks Validate Actions Json","description":"Validate a domain's actions.json file — checks if a website correctly implements the Solana Actions spec. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to check for actions.json (e.g. \"jupiter.exchange\")"}},"required":["domain"],"additionalProperties":false,"description":"Blinks Validate Actions Json input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Blinks Validate Actions Json","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"blinks_buildActionUrl","title":"Blinks Build Action Url","description":"Build and optionally wrap a Solana Action URL for sharing as a Blink. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"baseUrl":{"type":"string","description":"Action API endpoint"},"params":{"type":"object","additionalProperties":{"type":"string"},"description":"Template parameters to encode"},"blinkProvider":{"type":"string","enum":["dial.to","phantom","backpack","none"],"description":"Optionally wrap in a Blink provider URL"}},"required":["baseUrl"],"additionalProperties":false,"description":"Blinks Build Action Url input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Blinks Build Action Url","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_getOrder","title":"Jupiter Get Order","description":"Get a quote + unsigned swap transaction in a single call (Ultra API). The recommended entry-point for swaps. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Token mint address (base58)"},"outputMint":{"type":"string","description":"Token mint address (base58)"},"amount":{"type":"string","description":"Raw token amount as string (no decimals)"},"taker":{"type":"string","description":"Taker (sender) wallet address"},"slippageBps":{"type":"number","description":"Slippage tolerance in bps (e.g. 50 = 0.5%)"},"referralAccount":{"type":"string","description":"Solana wallet public key (base58)"},"referralFeeBps":{"type":"number","description":"Referral fee in bps"}},"required":["inputMint","outputMint","amount","taker"],"additionalProperties":false,"description":"Jupiter Get Order input schema. Intent: read/discovery workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Get Order","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jupiter_executeOrder","title":"Jupiter Execute Order","description":"Execute a signed swap transaction obtained from getOrder and receive execution status. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"signedTransaction":{"type":"string","description":"Base64-encoded signed transaction"},"requestId":{"type":"string","description":"requestId from getOrder response"}},"required":["signedTransaction","requestId"],"additionalProperties":false,"description":"Jupiter Execute Order input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Execute Order","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_getHoldings","title":"Jupiter Get Holdings","description":"Fetch token balances and holdings for specific token accounts, including USD valuations. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"tokenAccountAddresses":{"type":"array","items":{"type":"string","description":"Solana wallet public key (base58)"},"description":"Array of token account addresses to query balances for"}},"required":["tokenAccountAddresses"],"additionalProperties":false,"description":"Jupiter Get Holdings input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Get Holdings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jupiter_shield","title":"Jupiter Shield","description":"Check token mints for potential security risks (honeypot, freeze authority, low liquidity, etc.). SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mints":{"type":"array","items":{"type":"string","description":"Token mint address (base58)"},"description":"Token mints to check"}},"required":["mints"],"additionalProperties":false,"description":"Jupiter Shield input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Shield","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_searchTokens","title":"Jupiter Search Tokens","description":"Search for tokens by symbol, name, or mint address. Returns matching tokens with metadata. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search by token symbol, name, or mint address"}},"required":["query"],"additionalProperties":false,"description":"Jupiter Search Tokens input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Search Tokens","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jupiter_getQuote","title":"Jupiter Get Quote","description":"Get an optimally-routed swap quote with full route plan details (Metis engine). SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Token mint address (base58)"},"outputMint":{"type":"string","description":"Token mint address (base58)"},"amount":{"type":"string","description":"Raw token amount as string (no decimals)"},"slippageBps":{"type":"number","description":"Slippage tolerance in bps (e.g. 50 = 0.5%)"},"swapMode":{"type":"string","enum":["ExactIn","ExactOut"],"description":"Swap Mode parameter for Jupiter Get Quote."},"onlyDirectRoutes":{"type":"boolean","description":"Restrict to single-hop routes"},"asLegacyTransaction":{"type":"boolean","description":"Return a legacy transaction"},"maxAccounts":{"type":"number","description":"Max accounts in transaction (default 64)"},"platformFeeBps":{"type":"number","description":"Platform fee in bps"},"restrictIntermediateTokens":{"type":"boolean","description":"Restrict Intermediate Tokens mint, symbol, or token identifier used by Jupiter Get Quote."},"dynamicSlippage":{"type":"boolean","description":"Dynamic Slippage pagination control for Jupiter Get Quote."}},"required":["inputMint","outputMint","amount"],"additionalProperties":false,"description":"Jupiter Get Quote input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Get Quote","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jupiter_swap","title":"Jupiter Swap","description":"Build an unsigned swap transaction from a quote response. Sign and send the returned transaction. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"userPublicKey":{"type":"string","description":"Solana wallet public key (base58)"},"wrapAndUnwrapSol":{"type":"boolean","description":"Auto wrap/unwrap SOL (default true)"},"useSharedAccounts":{"type":"boolean","description":"Use Shared Accounts parameter for Jupiter Swap."},"feeAccount":{"type":"string","description":"Solana wallet public key (base58)"},"computeUnitPriceMicroLamports":{"type":"number","description":"Priority fee in µ-lamports/CU"},"asLegacyTransaction":{"type":"boolean","description":"As Legacy Transaction transaction payload used by Jupiter Swap."},"useTokenLedger":{"type":"boolean","description":"Use Token Ledger mint, symbol, or token identifier used by Jupiter Swap."},"destinationTokenAccount":{"type":"string","description":"Solana wallet public key (base58)"},"dynamicComputeUnitLimit":{"type":"boolean","description":"Dynamic Compute Unit Limit controlling the maximum number of results returned by Jupiter Swap."},"skipUserAccountsRpcCalls":{"type":"boolean","description":"Skip User Accounts RPC Calls endpoint or RPC selector used by Jupiter Swap."},"dynamicSlippage":{"type":"boolean","description":"Dynamic Slippage pagination control for Jupiter Swap."},"quoteResponse":{"type":"object","additionalProperties":{},"description":"The full quoteResponse object from getQuote"}},"required":["userPublicKey","quoteResponse"],"additionalProperties":false,"description":"Jupiter Swap input schema. Intent: Solana value-action or trading workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Swap","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_swapInstructions","title":"Jupiter Swap Instructions","description":"Get individual swap instructions instead of a full transaction. Useful for composing with other instructions. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"userPublicKey":{"type":"string","description":"Solana wallet public key (base58)"},"wrapAndUnwrapSol":{"type":"boolean","description":"Wrap And Unwrap Sol parameter for Jupiter Swap Instructions."},"useSharedAccounts":{"type":"boolean","description":"Use Shared Accounts parameter for Jupiter Swap Instructions."},"feeAccount":{"type":"string","description":"Solana wallet public key (base58)"},"computeUnitPriceMicroLamports":{"type":"number","description":"Compute Unit Price Micro Lamports value to use for Jupiter Swap Instructions."},"asLegacyTransaction":{"type":"boolean","description":"As Legacy Transaction transaction payload used by Jupiter Swap Instructions."},"useTokenLedger":{"type":"boolean","description":"Use Token Ledger mint, symbol, or token identifier used by Jupiter Swap Instructions."},"destinationTokenAccount":{"type":"string","description":"Solana wallet public key (base58)"},"dynamicComputeUnitLimit":{"type":"boolean","description":"Dynamic Compute Unit Limit controlling the maximum number of results returned by Jupiter Swap Instructions."},"quoteResponse":{"type":"object","additionalProperties":{},"description":"The full quoteResponse object from getQuote"}},"required":["userPublicKey","quoteResponse"],"additionalProperties":false,"description":"Jupiter Swap Instructions input schema. Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Swap Instructions","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_programLabels","title":"Jupiter Program Labels","description":"Get a mapping from program ID to human-readable label for all DEX programs in the routing engine. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"description":"Jupiter Program Labels input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Program Labels","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_getPrice","title":"Jupiter Get Price","description":"Get real-time heuristic prices for tokens. Supports buy/sell price, confidence, and depth info. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy. Parameter aliases accepted by SAP MCP: mint/id/token/address -> ids[0]. Prefer canonical ids: string[] in new calls.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","description":"Token mint address (base58)"},"description":"Token mints to price"},"vsToken":{"type":"string","description":"Token mint address (base58)"},"showExtraInfo":{"type":"boolean","description":"Include confidence, depth, timestamps"}},"required":["ids"],"additionalProperties":false,"description":"Jupiter Get Price input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Get Price","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jupiter_getTokenList","title":"Jupiter Get Token List","description":"Get Jupiter tokens by tag (\"verified\" or \"lst\"). Returns token metadata, organic score, price, and audit info. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"query":{"type":"string","enum":["verified","lst"],"description":"Tag to filter by — \"verified\" or \"lst\""}},"additionalProperties":false,"description":"Jupiter Get Token List input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Get Token List","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jupiter_getTokenInfo","title":"Jupiter Get Token Info","description":"Search for token information by mint address, symbol, or name. Returns detailed metadata, price, organic score, and audit info. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search by mint address, symbol, or name. Comma-separate for multiple (max 100)"}},"required":["query"],"additionalProperties":false,"description":"Jupiter Get Token Info input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Get Token Info","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jupiter_createLimitOrder","title":"Jupiter Create Limit Order","description":"Create a limit order. Returns an unsigned transaction — sign and submit via executeTrigger. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"maker":{"type":"string","description":"Wallet address of the order creator"},"payer":{"type":"string","description":"Wallet paying for transaction fees"},"inputMint":{"type":"string","description":"Input token mint"},"outputMint":{"type":"string","description":"Output token mint"},"makingAmount":{"type":"string","description":"Amount of input token to sell"},"takingAmount":{"type":"string","description":"Amount of output token to receive"},"expiredAt":{"type":"string","description":"ISO 8601 expiry timestamp"},"feeBps":{"type":"number","description":"Referral fee in bps"},"computeUnitPrice":{"type":"string","description":"Priority fee (µ-lamports/CU)"}},"required":["maker","payer","inputMint","outputMint","makingAmount","takingAmount"],"additionalProperties":false,"description":"Jupiter Create Limit Order input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Create Limit Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_executeTrigger","title":"Jupiter Execute Trigger","description":"Submit a signed limit-order transaction for on-chain execution. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"signedTransaction":{"type":"string","description":"Base64-encoded signed transaction"},"requestId":{"type":"string","description":"Request ID from createLimitOrder response"}},"required":["signedTransaction","requestId"],"additionalProperties":false,"description":"Jupiter Execute Trigger input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Execute Trigger","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_cancelLimitOrder","title":"Jupiter Cancel Limit Order","description":"Create an unsigned transaction to cancel a specific limit order. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"maker":{"type":"string","description":"Solana wallet public key (base58)"},"order":{"type":"string","description":"Order public key to cancel"},"computeUnitPrice":{"type":"string","description":"Compute Unit Price parameter for Jupiter Cancel Limit Order."}},"required":["maker","order"],"additionalProperties":false,"description":"Jupiter Cancel Limit Order input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Cancel Limit Order","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_cancelLimitOrders","title":"Jupiter Cancel Limit Orders","description":"Create unsigned transactions to cancel multiple limit orders in batch. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"maker":{"type":"string","description":"Solana wallet public key (base58)"},"orders":{"type":"array","items":{"type":"string","description":"Orders parameter for Jupiter Cancel Limit Orders."},"description":"Array of order public keys to cancel"},"computeUnitPrice":{"type":"string","description":"Compute Unit Price parameter for Jupiter Cancel Limit Orders."}},"required":["maker","orders"],"additionalProperties":false,"description":"Jupiter Cancel Limit Orders input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Cancel Limit Orders","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_getLimitOrders","title":"Jupiter Get Limit Orders","description":"Get all limit orders (active and optionally historical) for a wallet. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet address to query"},"orderStatus":{"type":"string","enum":["active","history"],"description":"Filter by order status: \"active\" for open orders, \"history\" for filled/cancelled"},"inputMint":{"type":"string","description":"Token mint address (base58)"},"outputMint":{"type":"string","description":"Token mint address (base58)"},"page":{"type":"number","description":"Page pagination control for Jupiter Get Limit Orders."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Jupiter Get Limit Orders."}},"required":["wallet","orderStatus"],"additionalProperties":false,"description":"Jupiter Get Limit Orders input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Get Limit Orders","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jupiter_createDCA","title":"Jupiter Create D C A","description":"Create a Dollar-Cost Averaging (DCA) recurring order. Returns an unsigned transaction. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"payer":{"type":"string","description":"Wallet paying for the DCA setup"},"user":{"type":"string","description":"Wallet executing the DCA"},"inputMint":{"type":"string","description":"Token mint address (base58)"},"outputMint":{"type":"string","description":"Token mint address (base58)"},"totalInAmount":{"type":"string","description":"Total amount of input token to DCA"},"frequency":{"type":"string","enum":["hourly","daily","weekly","monthly","yearly"],"description":"DCA interval"},"numberOfOrders":{"type":"number","description":"Total number of orders to split into"},"minOutAmountPerOrder":{"type":"string","description":"Raw token amount as string (no decimals)"},"maxOutAmountPerOrder":{"type":"string","description":"Raw token amount as string (no decimals)"},"startAt":{"type":"string","description":"ISO 8601 start timestamp (default: now)"}},"required":["payer","user","inputMint","outputMint","totalInAmount","frequency","numberOfOrders"],"additionalProperties":false,"description":"Jupiter Create D C A input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Create D C A","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_executeDCA","title":"Jupiter Execute D C A","description":"Submit a signed DCA order creation/cancellation transaction. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"signedTransaction":{"type":"string","description":"Base64-encoded signed transaction"},"requestId":{"type":"string","description":"Request ID from createDCA response"}},"required":["signedTransaction","requestId"],"additionalProperties":false,"description":"Jupiter Execute D C A input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Execute D C A","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_cancelDCA","title":"Jupiter Cancel D C A","description":"Create an unsigned transaction to cancel a DCA recurring order. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"user":{"type":"string","description":"Wallet that owns the DCA order"},"order":{"type":"string","description":"DCA order public key to cancel"},"recurringType":{"type":"string","enum":["time","price"],"description":"Recurring order type — \"time\" for time-based DCA, \"price\" for price-triggered"},"computeUnitPrice":{"type":"string","description":"Compute Unit Price parameter for Jupiter Cancel D C A."}},"required":["user","order","recurringType"],"additionalProperties":false,"description":"Jupiter Cancel D C A input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Cancel D C A","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"jupiter_getDCAOrders","title":"Jupiter Get D C A Orders","description":"Get all DCA orders (active and optionally historical) for a wallet. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"user":{"type":"string","description":"Wallet address to query (sent as \"user\" query param to Jupiter)"},"recurringType":{"type":"string","enum":["time","price","all"],"description":"Recurring order type — \"time\" for time-based DCA, \"price\" for price-triggered, \"all\" for both"},"orderStatus":{"type":"string","enum":["active","history"],"description":"Filter by order status: \"active\" for running orders, \"history\" for completed/cancelled"},"includeFailedTx":{"type":"boolean","description":"Include failed transactions in results (default: false)"},"inputMint":{"type":"string","description":"Token mint address (base58)"},"outputMint":{"type":"string","description":"Token mint address (base58)"},"page":{"type":"number","description":"Page pagination control for Jupiter Get D C A Orders."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Jupiter Get D C A Orders."}},"required":["user","recurringType","orderStatus"],"additionalProperties":false,"description":"Jupiter Get D C A Orders input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Get D C A Orders","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"jupiter_smartSwap","title":"Jupiter Smart Swap","description":"Smart Swap — all-in-one compound tool that fetches a quote and builds swap instructions in a single call. Provide input/output mints, amount, and wallet address to get back a quote, individual swap instructions, and a human-readable summary. The returned instructions can be assembled into a transaction and signed. This is the recommended entry-point for AI agents preparing a swap. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Source token mint address"},"outputMint":{"type":"string","description":"Destination token mint address"},"amount":{"type":"string","description":"Raw token amount to swap (in smallest unit, no decimals)"},"userPublicKey":{"type":"string","description":"Wallet public key that will sign the transaction"},"slippageBps":{"type":"number","description":"Slippage tolerance in bps (e.g. 50 = 0.5%)"},"swapMode":{"type":"string","enum":["ExactIn","ExactOut"],"description":"Swap mode (default: ExactIn)"},"onlyDirectRoutes":{"type":"boolean","description":"Restrict to single-hop routes for lower latency"},"dynamicSlippage":{"type":"boolean","description":"Enable dynamic slippage for better execution"},"asLegacyTransaction":{"type":"boolean","description":"Return a legacy transaction instead of v0"},"wrapAndUnwrapSol":{"type":"boolean","description":"Auto wrap/unwrap SOL (default: true)"},"destinationTokenAccount":{"type":"string","description":"Solana wallet public key (base58)"},"computeUnitPriceMicroLamports":{"type":"number","description":"Priority fee in micro-lamports per compute unit"},"dynamicComputeUnitLimit":{"type":"boolean","description":"Use dynamic compute unit limit based on simulation"},"maxAccounts":{"type":"number","description":"Max accounts in transaction (default: 64)"},"platformFeeBps":{"type":"number","description":"Platform fee in bps for referral revenue"},"feeAccount":{"type":"string","description":"Solana wallet public key (base58)"},"restrictIntermediateTokens":{"type":"boolean","description":"Restrict intermediate tokens to reduce risk"}},"required":["inputMint","outputMint","amount","userPublicKey"],"additionalProperties":false,"description":"Jupiter Smart Swap input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Jupiter Smart Swap","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_decode_transaction","title":"Decode Transaction","description":"Decode a serialized Solana transaction and return stable transaction metadata. Use this before signing when a SAP MCP, Jupiter, MagicBlock, SNS, Metaplex, or DeFi tool returns transactionBase64 or an unsigned transaction.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"transaction":{"type":"string","description":"Serialized transaction"},"encoding":{"type":"string","enum":["base64","base58"],"description":"Input encoding"}},"description":"Decode Transaction input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Decode Transaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_preview_transaction","title":"Preview Transaction","description":"Preview a Solana transaction before signing or submission. This is the required preflight step for agent workflows; do not create local signing scripts or read keypair files.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"transaction":{"type":"string","description":"Serialized transaction"},"encoding":{"type":"string","enum":["base64","base58"],"description":"Input encoding"}},"description":"Preview Transaction input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Preview Transaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_sign_transaction","title":"Sign Transaction","description":"Sign a serialized Solana transaction with the configured SAP MCP signer after sap_preview_transaction. This is the supported non-custodial signing path for agents; never read keypair JSON or sign raw message bytes in temporary scripts.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_finalize_transaction when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"transaction":{"type":"string","description":"Unsigned or partially signed transaction"},"encoding":{"type":"string","enum":["base64","base58"],"description":"Input encoding"}},"description":"Sign Transaction input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_finalize_transaction when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Sign Transaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_submit_signed_transaction","title":"Submit Signed Transaction","description":"Submit a signed Solana transaction produced by sap_sign_transaction through the configured RPC endpoint. Use this instead of custom sendRawTransaction scripts so policy, retries, and audit stay inside SAP MCP.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"signedTransaction":{"type":"string","description":"Signed serialized transaction"},"encoding":{"type":"string","enum":["base64","base58"],"description":"Input encoding"},"skipPreflight":{"type":"boolean","description":"Skip RPC preflight checks"},"maxRetries":{"type":"number","description":"Maximum RPC send retries"},"confirmationTimeoutMs":{"type":"number","description":"Bounded confirmation wait in milliseconds. Defaults to 90000; maximum 180000."},"commitment":{"type":"string","enum":["processed","confirmed","finalized"],"description":"Desired confirmation status before returning success. Defaults to confirmed."},"submitViaRelay":{"type":"boolean","description":"When true, submit through the hosted OOBE relay. The relay only broadcasts already-signed bytes and never signs. Defaults to false for this local tool."},"submitRelayUrl":{"type":"string","description":"Optional submit relay URL. Must be HTTPS, localhost, or 127.0.0.1."},"intentId":{"type":"string","description":"Optional caller-provided id binding submission, confirmation, and audit output."}},"description":"Submit Signed Transaction input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Submit Signed Transaction","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_build_sol_transfer","title":"Build Native SOL Transfer Transaction","description":"Build an unsigned native SOL transfer transaction using SystemProgram.transfer. Returns serialized base64 transaction for the agent to sign locally with sap_payments_finalize_transaction or sap_sign_transaction → sap_submit_signed_transaction. This is the hosted-safe equivalent of spl-token_transferSol (which is local-signer-only and cannot run on the hosted accountless server). Builder fee applies.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"fromPubkey":{"type":"string","description":"Sender public key in base58. This is the fee payer and must sign the transaction locally."},"toPubkey":{"type":"string","description":"Recipient public key in base58."},"lamports":{"type":"number","description":"Amount in lamports (1 SOL = 1,000,000,000 lamports). Use sap_estimate_tool_cost to check the builder fee before calling."}},"description":"Build Native SOL Transfer Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build Native SOL Transfer Transaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_build_spl_transfer","title":"Build SPL Token Transfer Transaction","description":"Build an unsigned SPL token transfer transaction. Returns serialized base64 transaction for the agent to sign locally with sap_payments_finalize_transaction or sap_sign_transaction → sap_submit_signed_transaction. This is the hosted-safe equivalent of spl-token_transfer (which is local-signer-only and cannot run on the hosted accountless server). Builder fee applies.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"sourceOwner":{"type":"string","description":"Source token account owner public key in base58. This is the fee payer and must sign the transaction locally."},"destinationOwner":{"type":"string","description":"Destination wallet public key in base58. The destination ATA will be created if it does not exist."},"mint":{"type":"string","description":"SPL token mint address in base58."},"amount":{"type":"number","description":"Amount of tokens to transfer in base units (respect the mint decimals)."},"decimals":{"type":"number","description":"Token decimals for the mint. Used for display purposes only — the on-chain amount is in base units."}},"description":"Build SPL Token Transfer Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Build SPL Token Transfer Transaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chat_derive_room","title":"SAP Chat Derive Room","description":"Derive a deterministic SAP chat room/session ID. Group and public room IDs are active; DM derivation is reserved for future native support.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Derive Room."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Derive Room input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chat Derive Room","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chat_start_room","title":"SAP Chat Start Room","description":"Start an on-chain SAP chat room by creating the backing vault, session, and ledger if needed.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Start Room."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Start Room input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chat Start Room","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chat_send_message","title":"SAP Chat Send Message","description":"Send a chunked SAP chat message to a room. Public messages store UTF-8 text; private messages store caller-provided ciphertext bytes.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Required thematic group topic when deriving or writing to topic-scoped groups."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Send Message."},"description":"Participant agent/wallet identifiers for DM or group rooms."},"content":{"type":"string","description":"Plain UTF-8 message content for public messages."},"payloadBase64":{"type":"string","description":"Base64 payload. Required for private/ciphertext messages."},"visibility":{"type":"string","enum":["public","private"],"description":"Message visibility. Defaults to public."},"contentType":{"type":"string","description":"MIME content type. Defaults to text/plain for public messages."},"replyTo":{"type":"string","description":"Optional parent message ID."},"policy":{"type":"object","description":"Optional compact group policy reference or policy hash. Full policy bodies should live off-chain and be linked by hash."},"links":{"type":"array","items":{"type":"object","description":"Links parameter for SAP Chat Send Message."},"description":"Optional signed link references. Each link must include url and may include kind, label, sha256."},"metadata":{"type":"object","description":"Optional JSON metadata. Keep small; large metadata should be stored off-chain and hashed."}},"description":"SAP Chat Send Message input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chat Send Message","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chat_publish_manifest","title":"SAP Chat Publish Manifest","description":"Publish a signed thematic room/group manifest for discovery indexers, policy-aware agents, and chat clients.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Publish Manifest."},"description":"Participant agent/wallet identifiers for DM or group rooms."},"description":{"type":"string","description":"Short public room/group description."},"tags":{"type":"array","items":{"type":"string","description":"Tags parameter for SAP Chat Publish Manifest."},"description":"Small topic tags used by discovery, for example openbook, markets, sol-usdc."},"policy":{"type":"object","description":"Compact group policy or content-addressed policy reference."},"links":{"type":"array","items":{"type":"object","description":"Links parameter for SAP Chat Publish Manifest."},"description":"Optional signed room links for docs, market references, IPFS manifests, or execution receipts."},"metadata":{"type":"object","description":"Optional compact manifest metadata."}},"description":"SAP Chat Publish Manifest input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chat Publish Manifest","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chat_read_latest","title":"SAP Chat Read Latest","description":"Read latest SAP chat messages from the room ring buffer.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Read Latest."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Read Latest input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chat Read Latest","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chat_read_all","title":"SAP Chat Read All","description":"Read all SAP chat messages from sealed ledger pages plus the latest ring buffer.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Read All."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Read All input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chat Read All","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chat_status","title":"SAP Chat Status","description":"Get backing SAP memory session status for a chat room.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Status."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chat Status","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chat_seal_room","title":"SAP Chat Seal Room","description":"Seal the current chat ring buffer into an immutable SAP ledger page for permanent history.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Seal Room."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Seal Room input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chat Seal Room","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_payments_fund_prepaid","title":"Fund Prepaid Payment Session","description":"Hosted paid tool that creates a prepaid session. The x402 charge for this tool IS the funding deposit. After settlement, creates a prepaid credit session with the specified amount and per-call cost. Returns sessionId, remainingUsd, and expiresAt. Pass the returned sessionId as prepaidSessionId to sap_payments_call_paid_tool for future calls to bypass per-call 402 challenges (x402 Lifecycle Hooks grantAccess pattern).\n\nSAP MCP execution guidance: Intent: local non-custodial payment/signing bridge. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"amountUsd":{"type":"number","description":"Total USDC to deposit into the prepaid session. This amount is charged via x402 when calling this tool.","minimum":0.01},"perCallCostUsd":{"type":"number","description":"Cost deducted from the prepaid balance per granted call. Defaults to 0.015 USD.","minimum":0.001},"ttlHours":{"type":"number","description":"Session TTL in hours. Defaults to 24.","minimum":1,"maximum":168}},"required":["amountUsd"],"additionalProperties":false,"description":"Fund Prepaid Payment Session input schema. Intent: local non-custodial payment/signing bridge. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fund Prepaid Payment Session","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_payments_prepaid_balance","title":"Check Prepaid Session Balance","description":"FREE local tool that checks the remaining balance of a prepaid session. No x402 charge. Returns the session ID, remaining USD, total USD, per-call cost, expiry, and call count. Use this before calling sap_payments_call_paid_tool with prepaidSessionId to verify the session still has balance.\n\nSAP MCP execution guidance: Intent: local non-custodial payment/signing bridge. Pricing: free; call directly without x402. Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","description":"Prepaid session ID returned by sap_payments_start_prepaid."}},"description":"Check Prepaid Session Balance input schema. Intent: local non-custodial payment/signing bridge. Pricing: free; call directly without x402. Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"sessionId":{"type":"string","description":"The prepaid session ID checked."},"remainingUsd":{"type":"number","description":"Remaining USDC balance in the session."},"totalUsd":{"type":"number","description":"Original USDC amount deposited when the session was created."},"perCallCostUsd":{"type":"number","description":"Cost deducted per granted call."},"expiresAt":{"type":"string","description":"ISO timestamp when the session expires."},"callCount":{"type":"number","description":"Number of calls made using this session."}},"required":["sessionId","remainingUsd","totalUsd","perCallCostUsd","expiresAt","callCount"]},"annotations":{"title":"Check Prepaid Session Balance","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_profile_current","title":"Show Current SAP MCP Profile","description":"Return the currently loaded SAP MCP profile and redacted signer/config metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"Show Current SAP MCP Profile input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Show Current SAP MCP Profile","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"sap_profile_list","title":"List SAP MCP Profiles","description":"List available SAP MCP profiles with redacted signer metadata and no wallet paths.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"List SAP MCP Profiles input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"List SAP MCP Profiles","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_profile_public_key","title":"Show SAP MCP Profile Agent Public Key","description":"Return the configured public agent key for a profile without reading or exposing keypair bytes.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"profileName":{"type":"string","description":"Profile name. Defaults to the loaded profile."}},"description":"Show SAP MCP Profile Agent Public Key input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Show SAP MCP Profile Agent Public Key","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"sap_profile_switch","title":"Switch Loaded SAP MCP Profile","description":"Switch the live SAP MCP runtime to another existing profile and reload client, signer, connection, and policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"profileName":{"type":"string","description":"Existing profile name to load."},"confirm":{"type":"boolean","description":"Must be true because switching profile can change signer, network, and policy."},"signature":{"type":"string","description":"Optional Ed25519 signature proving ownership of the target profile keypair. When provided, the server verifies that the signature matches the profile agentPubkey. This prevents impersonation via manual .active-profile file edits. If omitted, the switch proceeds without cryptographic verification (backward compat)."}},"description":"Switch Loaded SAP MCP Profile input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Switch Loaded SAP MCP Profile","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"sap_agent_start","title":"Start SAP MCP Agent Mode","description":"Return the concise startup playbook for agents using SAP MCP. Call this when the user says \"Start SAP MCP\", \"Initialize SAP MCP\", \"Load SAP\", or asks what SAP MCP can do.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"goal":{"type":"string","description":"Optional user goal to tailor the startup plan, such as \"register an agent\", \"check wallet balance\", or \"swap tokens\"."}},"description":"Start SAP MCP Agent Mode input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the bootstrap instructions were generated."},"activationPhrases":{"type":"array","description":"Short user phrases that should trigger this bootstrap behavior.","items":{"type":"string"}},"hostedEndpoint":{"type":"string","description":"Canonical hosted SAP MCP endpoint."},"serverMode":{"type":"string","description":"Current SAP MCP server mode."},"immediateToolCalls":{"type":"array","description":"Tool calls the agent should run first when available.","items":{"type":"object"}},"paymentFlow":{"type":"object","description":"How to handle hosted x402/pay.sh paid calls safely."},"sessionContextPacket":{"type":"object","description":"Machine-readable SAP MCP routing, freshness, memory, proof-tape, and forbidden-action rules for this session."},"connectionCheck":{"type":"object","description":"How agents should answer simple connection/status questions."},"userFacingSummary":{"type":"string","description":"Short text the agent can show the user after startup."},"repairCommand":{"type":"string","description":"Wizard command to repair local hosted/profile/payment bridge setup."}},"required":["success","activationPhrases","hostedEndpoint","serverMode","immediateToolCalls","paymentFlow","sessionContextPacket","connectionCheck","userFacingSummary","repairCommand"]},"annotations":{"title":"Start SAP MCP Agent Mode","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_agent_runtime_status","title":"Check SAP MCP Runtime Status","description":"Free machine-readable readiness and routing summary for SAP MCP. Use this for \"are you connected?\", paid/write readiness, local profile visibility, and exact next actions without dumping the whole tool catalog.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"intent":{"type":"string","enum":["connection","paid-call","registry-write","transaction-finalize","escrow","identity","general"],"description":"Optional user intent so the status can highlight the correct next tool path."}},"description":"Check SAP MCP Runtime Status input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether runtime status was generated."},"intent":{"type":"string","description":"Status intent used for routing."},"hosted":{"type":"object","description":"Observable hosted SAP MCP status for this server process."},"localBridge":{"type":"object","description":"Expected local sap_payments bridge status and verification tools."},"routing":{"type":"object","description":"Canonical tool routes for reads, paid calls, writes, and unsigned transactions."},"sessionContextPacket":{"type":"object","description":"Machine-readable SAP MCP routing, freshness, memory, proof-tape, and forbidden-action rules for this intent."},"nextToolCalls":{"type":"array","description":"Exact next tool calls agents should make when available.","items":{"type":"object"}},"userFacingSummary":{"type":"string","description":"Short summary safe to show to the user."},"forbiddenActions":{"type":"array","description":"Actions agents must not perform.","items":{"type":"string"}}},"required":["success","intent","hosted","localBridge","routing","sessionContextPacket","nextToolCalls","userFacingSummary","forbiddenActions"]},"annotations":{"title":"Check SAP MCP Runtime Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_prepare_action","title":"Prepare SAP MCP Action","description":"Free intent-level preflight planner for SAP MCP. Call before paid calls, swaps, registry writes, escrow, identity updates, external x402 calls, premium streams, or transaction finalization. It returns the correct hosted/local route, fresh-data requirements, max-price guidance, confirmation policy, retry rules, proof-tape shape, and forbidden actions without charging x402.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"intent":{"type":"string","enum":["connection","paid-call","registry-write","update-agent","transaction-finalize","escrow","identity","swap","external-x402","premium-stream","balance","discovery","general"],"description":"Closest user intent. Use registry-write for agent registration, update-agent for profile/image updates, swap for token swaps, escrow for SAP Escrow V2, external-x402 for third-party x402 agents, and premium-stream for premium plugin streams/webhooks."},"toolName":{"type":"string","description":"Exact hosted or local tool name being planned, such as jupiter_getOrder, sap_update_agent, sap_create_escrow_v2, or sap_payments_register_agent."},"userGoal":{"type":"string","description":"Short user-facing goal in natural language, used only to tailor the plan and proof-tape shape."},"maxPriceUsd":{"type":"number","description":"Optional user or policy x402 spend cap for this planned action. Agents should normally estimate first and use estimate × 1.25."},"estimatedNotionalUsd":{"type":"number","description":"Optional estimated trade, escrow, or value-moving notional in USD for confirmation-policy guidance."},"hasUnsignedTransaction":{"type":"boolean","description":"Set true when a hosted builder already returned unsigned transaction bytes that should be finalized locally."},"hasSubmittedSignature":{"type":"boolean","description":"Set true when a transaction signature was already submitted. The planner will route to verification before any retry."}},"description":"Prepare SAP MCP Action input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the action preparation plan was generated."},"intent":{"type":"string","description":"Normalized intent used for routing."},"userGoal":{"type":["string","null"],"description":"Goal provided by the user, or null when omitted."},"toolName":{"type":["string","null"],"description":"Tool name provided for the planned action, or null when omitted."},"sessionContextPacket":{"type":"object","description":"Shared SAP MCP session routing, freshness, memory, and forbidden-action rules."},"freshDataRequired":{"type":"array","description":"Fresh data that must be fetched before user-facing claims, payment, signing, or execution.","items":{"type":"string"}},"freePreflightTools":{"type":"array","description":"Free tools that should be called before paid/write execution for this intent.","items":{"type":"string"}},"paidOrWriteRoute":{"type":"object","description":"Canonical paid/write route, including local bridge or hosted builder path."},"maxPricePolicy":{"type":"object","description":"How to set maxPriceUsd and when to estimate paid call cost."},"confirmationPolicy":{"type":"object","description":"Whether confirmation is required and why."},"proofTapeTemplate":{"type":"object","description":"Audit object shape the agent should fill during execution."},"nextToolCalls":{"type":"array","description":"Exact recommended next tool calls.","items":{"type":"object"}},"retryRules":{"type":"object","description":"Safe retry rules for x402, RPC, hosted signer guards, and submitted signatures."},"userFacingPreviewShape":{"type":"array","description":"Fields that should appear in a compact human preview before value-moving work.","items":{"type":"string"}}},"required":["success","intent","userGoal","toolName","sessionContextPacket","freshDataRequired","freePreflightTools","paidOrWriteRoute","maxPricePolicy","confirmationPolicy","proofTapeTemplate","nextToolCalls","retryRules","userFacingPreviewShape"]},"annotations":{"title":"Prepare SAP MCP Action","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_agent_standard_context","title":"Get SAP Agentic Standards Context","description":"Free agentic-standards orientation for SAP MCP. Use this after sap_agent_start when an agent needs to understand how SAP MCP maps MCP, x402/pay.sh, A2A-style Agent Cards, OASF-style agent facts, AP2-style mandate planning, local signing, and hosted unsigned builders without guessing or over-claiming unsupported standards.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"intent":{"type":"string","enum":["connection","paid-call","registry-write","transaction-finalize","escrow","identity","swap","external-x402","premium-stream","general"],"description":"Closest user intent so the standards context can highlight the correct MCP/x402/local-signer route."},"includeRoadmap":{"type":"boolean","description":"Whether to include planned-but-not-claimed standards work such as MCP Apps, A2A signatures, AG-UI views, and full AP2 mandate signatures. Defaults to true."}},"description":"Get SAP Agentic Standards Context input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the standards context was generated."},"serverVersion":{"type":"string","description":"SAP MCP server version that generated this context."},"intent":{"type":"string","description":"Normalized intent used for routing."},"standards":{"type":"object","description":"SAP MCP mapping across MCP, x402/pay.sh, A2A-style metadata, OASF-style export, AP2-style mandates, and UI/runtime standards."},"trustBoundary":{"type":"object","description":"Non-custodial and local-signing boundaries agents must preserve."},"bootstrapSequence":{"type":"array","description":"Recommended first calls for agent runtimes.","items":{"type":"object"}},"claims":{"type":"object","description":"Public claims agents can safely make and claims they must avoid."},"nextToolCalls":{"type":"array","description":"Exact next tool calls for this standards-aware session.","items":{"type":"object"}},"roadmap":{"type":"array","description":"Planned standards improvements when includeRoadmap is true.","items":{"type":"object"}}},"required":["success","serverVersion","intent","standards","trustBoundary","bootstrapSequence","claims","nextToolCalls","roadmap"]},"annotations":{"title":"Get SAP Agentic Standards Context","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_prepare_mandate","title":"Prepare SAP Agent Mandate","description":"Free AP2-style mandate planner for SAP MCP agent commerce. It converts a user intent into a bounded, unsigned planning artifact with spend limits, tool/protocol allow-lists, freshness rules, confirmation thresholds, proof-tape fields, and the correct hosted/local signing route. This tool does not sign, submit, authorize payment, or replace wallet confirmation.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"intent":{"type":"string","description":"Human intent to bind, for example \"check solking.sol\", \"register Solking\", \"swap 0.05 SOL to USDC\", or \"open a $10 BONK short\"."},"operationType":{"type":"string","enum":["paid-tool","swap","perp-trade","registry-write","escrow","external-x402","premium-stream","transaction-finalize","other"],"description":"Closest operation family. Use registry-write for SAP agent registration/update, escrow for SAP Escrow V2, and transaction-finalize when an unsigned hosted transaction is already available."},"profile":{"type":"string","description":"Optional local SAP profile name the user expects the runtime to use. Do not guess wallet/keypair paths from this value."},"wallet":{"type":"string","description":"Optional expected owner/signer wallet public key in base58. Used only as a public constraint, never as a keypair path."},"maxX402Usd":{"type":"number","description":"Maximum x402/pay.sh fee the agent may auto-pay for one hosted tool call under the user policy."},"maxTotalX402Usd":{"type":"number","description":"Maximum total x402/pay.sh spend for this mandate before asking the user again."},"maxTradeUsd":{"type":"number","description":"Maximum value-moving notional in USD for swaps, perps, escrow, or transaction finalization under this mandate."},"maxSlippageBps":{"type":"number","description":"Maximum slippage in basis points for swap or trading routes. 100 means 1%."},"allowedProtocols":{"type":"array","description":"Protocol allow-list such as sap, mcp, x402, jupiter, adrena, pyth, metaplex, sns, magicblock, or custom protocol ids.","items":{"type":"string","description":"Allowed Protocols parameter for Prepare SAP Agent Mandate."}},"allowedTools":{"type":"array","description":"Exact SAP MCP tool allow-list for this mandate. Use exact names from tools/list and do not rewrite hyphenated tools.","items":{"type":"string","description":"Allowed Tools parameter for Prepare SAP Agent Mandate."}},"requireConfirmationAboveUsd":{"type":"number","description":"Require a human preview and explicit confirmation above this USD notional or spend threshold."},"expiresInSeconds":{"type":"number","description":"Mandate TTL in seconds. Defaults to 900 and is capped to 86400."}},"required":["intent"],"description":"Prepare SAP Agent Mandate input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the mandate draft was generated."},"mandate":{"type":"object","description":"Unsigned mandate planning artifact. This is not a signature and not a payment authorization."},"route":{"type":"object","description":"Canonical hosted/local route for this operation type."},"freshness":{"type":"array","description":"Data that must be fetched fresh before paid, signed, or value-moving actions.","items":{"type":"string"}},"confirmationPolicy":{"type":"object","description":"When the agent must show a compact preview and ask the user to confirm."},"proofTapeTemplate":{"type":"object","description":"Audit record shape to fill as execution proceeds."},"nextToolCalls":{"type":"array","description":"Exact next SAP MCP tool calls recommended for this mandate.","items":{"type":"object"}},"forbiddenActions":{"type":"array","description":"Actions agents must not perform under this mandate.","items":{"type":"string"}}},"required":["success","mandate","route","freshness","confirmationPolicy","proofTapeTemplate","nextToolCalls","forbiddenActions"]},"annotations":{"title":"Prepare SAP Agent Mandate","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_pricing_catalog","title":"Get SAP MCP Pricing Catalog","description":"Free machine-readable x402/pay.sh pricing catalog generated from the hosted SAP MCP pricing registry. Use before paid calls to understand free, micro-read, read-premium, builder, value-action, and batch tiers.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"Get SAP MCP Pricing Catalog input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"source":{"type":"string","description":"Pricing catalog source identifier."},"version":{"type":"number","description":"Pricing catalog schema version."},"strictTools":{"type":"boolean","description":"Whether strict hosted tool pricing is enabled."},"currency":{"type":"string","description":"Display currency for USD-denominated prices."},"tiers":{"type":"object","description":"Tier pricing rules and examples."},"toolSets":{"type":"object","description":"Current built-in tool sets for each tier."},"runtimeRules":{"type":"array","description":"Agent routing rules for paid and write flows.","items":{"type":"string"}}},"required":["source","version","strictTools","currency","tiers","toolSets","runtimeRules"]},"annotations":{"title":"Get SAP MCP Pricing Catalog","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_agent_next_action","title":"Resolve SAP MCP Next Action","description":"Free routing resolver for SAP MCP errors and partial results. Use this before retrying after payment_required, hosted_local_signer_required, BlockhashNotFound, missing sap_payments, timeout, or a submitted signature that has not confirmed.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"intent":{"type":"string","enum":["connection","paid-call","registry-write","transaction-finalize","escrow","identity","general"],"description":"Current user intent or workflow area."},"toolName":{"type":"string","description":"Tool that produced the error or partial result, for example sap_register_agent, sap_update_agent, or sap_create_escrow_v2."},"errorCode":{"type":"string","description":"Machine error code when available, for example hosted_local_signer_required, payment_required, BlockhashNotFound, or expired_or_not_landed."},"errorMessage":{"type":"string","description":"Human or structured error message returned by the runtime, hosted server, local bridge, or wallet/RPC layer."},"hasSignature":{"type":"boolean","description":"True when a transaction signature was already produced or submitted. This prevents unsafe duplicate retries."},"paymentRequired":{"type":"boolean","description":"True when the previous response was an x402/pay.sh payment challenge."}},"description":"Resolve SAP MCP Next Action input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the resolver produced guidance."},"classification":{"type":"string","description":"Normalized error or routing classification."},"retryable":{"type":"boolean","description":"Whether the underlying issue can generally be retried."},"safeToRetryNow":{"type":"boolean","description":"Whether the agent should retry immediately without risking duplicate writes or duplicate user charges."},"paymentCharged":{"type":"string","description":"Best-effort payment status: no, unknown, possible, or yes."},"nextTool":{"type":"string","description":"Exact preferred next SAP MCP tool, or null when user/runtime action is needed."},"nextAction":{"type":"string","description":"Concrete next action for the agent."},"userMessage":{"type":"string","description":"Short user-facing explanation."},"forbiddenActions":{"type":"array","description":"Actions the agent must not take for this case.","items":{"type":"string"}}},"required":["success","classification","retryable","safeToRetryNow","paymentCharged","nextTool","nextAction","userMessage","forbiddenActions"]},"annotations":{"title":"Resolve SAP MCP Next Action","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_estimate_tool_cost","title":"Estimate Tool Cost","description":"Free pre-call cost estimator (dry-run — no charge, no x402 challenge). Given a tool name, returns the hosted pricing tier, estimated USD cost, and the recommended maxPriceUsd to pass to sap_payments_call_paid_tool. Always call this before any paid tool to avoid silent cap aborts. Set your maxPriceUsd to the estimate × 1.25 to avoid abort-and-retry. This tool is always free and never triggers x402 settlement.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"toolName":{"type":"string","description":"The MCP tool name to estimate (e.g. \"jupiter_getQuote\", \"magicblock_swap\", \"sap_discover_agents\")."},"arguments":{"type":"object","description":"Optional tool arguments. For value-action tools, the amount/size may affect the price.","additionalProperties":true}},"required":["toolName"],"description":"Estimate Tool Cost input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Estimate Tool Cost","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_quick_context","title":"SAP MCP Quick Context","description":"Free single-call bootstrap aggregator. Returns a compact markdown-like summary with server version, total tools count, tools by category, pricing tiers summary, premium plugins/capabilities count, bundled skills list, and nextAction guidance. Pass agentKnownVersion with the version you currently know to get skillsUpdateRequired + skillsContents (full SKILL.md inline) when the server version differs — this lets you auto-update your local skills in 1 call without a separate sap_skills_bundle. Use this instead of calling sap_agent_start, sap_pricing_catalog, sap_premium_plugin_catalog, sap_skills_list, and sap_get_tool_category_summary separately to reduce bootstrap from 5+ tool calls to 1.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string","description":"Include parameter for SAP MCP Quick Context."},"description":"Optional subset of section names to include (version, tools, pricing, premium, skills, nextAction). When omitted, all sections are returned."},"compact":{"type":"boolean","description":"When true (default), the summary string is kept compact. When false, a more readable multi-line summary is returned."},"maxChars":{"type":"number","description":"Maximum character length for the summary string. Defaults to 4000. The summary is truncated if it exceeds this length."},"agentKnownVersion":{"type":"string","description":"The SAP MCP version the agent currently knows about. When this differs from the server version, skillsUpdateRequired is set to true and skillsContents is populated with full SKILL.md contents. Omit to always force a skills update (first bootstrap)."},"intent":{"type":"string","enum":["connection","paid-call","registry-write","update-agent","transaction-finalize","escrow","identity","swap","external-x402","premium-stream","balance","discovery","general"],"description":"Optional user intent for the embedded sessionContextPacket. Use this to route bootstrap toward paid calls, registry writes, swaps, escrow, external x402 agents, premium streams, balance reads, or discovery."}},"description":"SAP MCP Quick Context input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the quick context summary was generated."},"version":{"type":"string","description":"SAP MCP server version."},"serverCommit":{"type":"string","description":"Git commit hash of the running server build. Changes on every deploy even without version bump."},"totalTools":{"type":"number","description":"Total number of registered MCP tools."},"toolsByCategory":{"type":"object","description":"Tool counts by category (sap, sns, agentKit, premium, etc.)."},"pricingTiers":{"type":"array","description":"Pricing tier names available on the hosted server.","items":{"type":"string"}},"premiumPlugins":{"type":"number","description":"Number of discoverable premium plugins."},"premiumCapabilities":{"type":"number","description":"Number of premium capabilities across all plugins."},"premiumProvidersReady":{"type":"number","description":"Number of premium providers with configured environment variables."},"skills":{"type":"array","description":"Bundled skill names available via sap_skills_bundle.","items":{"type":"string"}},"skillsUpdateRequired":{"type":"boolean","description":"True when the server version differs from agentKnownVersion (or agentKnownVersion was omitted). When true, skillsContents contains the full SKILL.md contents of all bundled skills."},"skillsContents":{"type":"array","description":"Full SKILL.md contents of all bundled skills, included only when skillsUpdateRequired is true. Each entry has {name, content}.","items":{"type":"object"}},"environment":{"type":"object","description":"Server environment summary: network (mainnet/devnet), mode (hosted-api/local-dev-keypair/readonly), authType (none/bearer), rateLimitPerMinute.","properties":{"network":{"type":"string"},"mode":{"type":"string"},"authType":{"type":"string"},"rateLimitPerMinute":{"type":"number"}}},"recommendedFlow":{"type":"string","description":"Recommended agent workflow based on server mode. Hosted: build unsigned → sign locally. Local: preview → sign → submit."},"summary":{"type":"string","description":"Compact markdown-like summary string suitable for agent context loading."},"nextAction":{"type":"string","description":"Concrete next action for the agent after loading this context."},"sessionContextPacket":{"type":"object","description":"Machine-readable SAP MCP routing, freshness, memory, proof-tape, and forbidden-action rules for this session."},"truncated":{"type":"boolean","description":"Whether the summary was truncated to fit within maxChars."}},"required":["success","version","serverCommit","totalTools","toolsByCategory","pricingTiers","premiumPlugins","premiumCapabilities","premiumProvidersReady","skills","skillsUpdateRequired","environment","recommendedFlow","summary","nextAction","sessionContextPacket","truncated"]},"annotations":{"title":"SAP MCP Quick Context","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_premium_plugin_catalog","title":"Premium Plugin Catalog","description":"Free premium capability discovery. Lists SAP MCP stream, webhook, and premium tool plugin manifests with strict schemas, x402/pay.sh pricing contracts, provider readiness, and private enterprise plugin loader guidance. This tool never returns fake live data.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"includeSchemas":{"type":"boolean","description":"When true, include full input/output JSON Schemas for every capability so agent runtimes can validate calls before payment."}},"additionalProperties":false,"description":"Premium Plugin Catalog input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["version","plugins","providerStatus","privatePluginSupport"],"properties":{"version":{"type":"string","description":"Premium plugin catalog contract version."},"plugins":{"type":"array","description":"Installed premium plugin manifests and their stream/webhook/tool capabilities.","items":{"type":"object","additionalProperties":true,"description":"Premium plugin manifest."}},"providerStatus":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Provider environment readiness map. False means SAP MCP will not claim the feed is live."},"privatePluginSupport":{"type":"object","additionalProperties":true,"description":"Enterprise plugin loader contract for private or submodule-backed premium capabilities."}},"additionalProperties":false},"annotations":{"title":"Premium Plugin Catalog","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_stream_catalog","title":"Premium Stream Catalog","description":"Free stream discovery for paid real-time SAP MCP capabilities. Returns only stream contracts, including event names, latency targets, x402 pricing, strict schemas, provider env requirements, and whether each stream is live or waiting for provider configuration.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"pluginId":{"type":"string","description":"Optional premium plugin id used to narrow stream discovery, for example sap-premium-market-data."}},"additionalProperties":false,"description":"Premium Stream Catalog input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["version","type","capabilities","providerStatus"],"properties":{"version":{"type":"string","description":"Premium capability catalog contract version."},"type":{"type":"string","description":"Capability type requested by the caller."},"capabilities":{"type":"array","description":"Premium capabilities filtered by type with schemas, pricing, delivery contracts, and provider status.","items":{"type":"object","additionalProperties":true,"description":"Premium capability definition."}},"providerStatus":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Provider environment readiness map for capabilities that need external providers."}},"additionalProperties":false},"annotations":{"title":"Premium Stream Catalog","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_webhook_catalog","title":"Premium Webhook Catalog","description":"Free webhook discovery for paid SAP MCP event delivery. Returns webhook event contracts, signed-delivery expectations, replay windows, x402/pay.sh pricing, provider readiness, and strict subscription schemas.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"pluginId":{"type":"string","description":"Optional premium plugin id used to narrow webhook discovery, for example sap-premium-market-data."}},"additionalProperties":false,"description":"Premium Webhook Catalog input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["version","type","capabilities","providerStatus"],"properties":{"version":{"type":"string","description":"Premium capability catalog contract version."},"type":{"type":"string","description":"Capability type requested by the caller."},"capabilities":{"type":"array","description":"Premium capabilities filtered by type with schemas, pricing, delivery contracts, and provider status.","items":{"type":"object","additionalProperties":true,"description":"Premium capability definition."}},"providerStatus":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Provider environment readiness map for capabilities that need external providers."}},"additionalProperties":false},"annotations":{"title":"Premium Webhook Catalog","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_validate_plugin_manifest","title":"Validate Premium Plugin Manifest","description":"Free manifest validator for SAP MCP premium plugins. Validates ids, semver, descriptions, strict input/output schemas, x402/pay.sh pricing policies, and delivery contracts. It never executes plugin code or loads provider secrets.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["manifest"],"properties":{"manifest":{"type":"object","additionalProperties":true,"description":"Premium plugin manifest candidate to validate before publishing or loading from a private plugin directory."}},"additionalProperties":false,"description":"Validate Premium Plugin Manifest input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["valid","errors","warnings"],"properties":{"valid":{"type":"boolean","description":"True only when the manifest can be safely reviewed for premium plugin loading."},"errors":{"type":"array","description":"Blocking manifest issues. Do not load or publish the plugin until empty.","items":{"type":"object","additionalProperties":true,"description":"Manifest validation issue."}},"warnings":{"type":"array","description":"Non-blocking quality issues that should be fixed before marketplace publication.","items":{"type":"object","additionalProperties":true,"description":"Manifest validation warning."}}},"additionalProperties":false},"annotations":{"title":"Validate Premium Plugin Manifest","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_plugin_template","title":"Build Premium Plugin Template","description":"Free premium plugin manifest builder. Generates a strict, data-only stream/webhook/tool manifest template that teams can place in a private plugin subrepo, validate, plug, and unplug without executing untrusted code or exposing provider secrets.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["pluginId","capabilityId","capabilityType"],"properties":{"pluginId":{"type":"string","description":"Lowercase premium plugin id, for example sap-premium-custom-alpha. This becomes the manifest id."},"capabilityId":{"type":"string","description":"Lowercase capability id, for example custom.signal.stream or custom:tool:score."},"capabilityType":{"type":"string","enum":["stream","webhook","tool"],"description":"Capability type to template: stream, webhook, or tool."},"title":{"type":"string","description":"Human-readable plugin and capability title shown to agent runtimes."},"description":{"type":"string","description":"Full agent-facing description explaining the use case, provider boundary, pricing model, and what the capability delivers."},"publisher":{"type":"string","description":"Publisher name used for enterprise review and marketplace metadata."},"visibility":{"type":"string","enum":["public","private","enterprise"],"description":"Discovery visibility. Use private or enterprise for non-public provider contracts."},"unitPriceUsd":{"type":"number","description":"Suggested x402/pay.sh unit price in USD. Agents should see pricing before activation."},"providerEnv":{"type":"array","description":"Uppercase provider env var names required to make the capability live. Do not pass secret values.","items":{"type":"string","description":"Environment variable name, for example SAP_MCP_PREMIUM_CUSTOM_STREAM_URL."}}},"additionalProperties":false,"description":"Build Premium Plugin Template input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["manifest","validation","nextSteps"],"properties":{"manifest":{"type":"object","additionalProperties":true,"description":"Data-only premium plugin manifest template. Review, harden schemas, then store it in the private plugin subrepo."},"validation":{"type":"object","additionalProperties":true,"description":"Validation report for the generated template."},"nextSteps":{"type":"array","description":"Operator steps for validating, plugging, unplugging, and safely exposing this plugin.","items":{"type":"string","description":"One concrete next step."}}},"additionalProperties":false},"annotations":{"title":"Build Premium Plugin Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_session_start","title":"Plan Premium Session","description":"Free premium session planner. Creates a bounded session plan for a stream, webhook, or premium tool capability before any x402 charge. Use it to validate plugin id, capability id, requested units, TTL, provider readiness, and estimated price; paid activation happens only on the delivery rail.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["pluginId","capabilityId","capabilityType"],"properties":{"pluginId":{"type":"string","description":"Premium plugin id from sap_premium_plugin_catalog, for example sap-premium-market-data."},"capabilityId":{"type":"string","description":"Capability id from sap_stream_catalog or sap_webhook_catalog, for example jupiter.quote.delta."},"capabilityType":{"type":"string","enum":["stream","webhook","tool"],"description":"Capability type being planned: stream, webhook, or tool."},"requestedUnits":{"type":"number","description":"Requested paid units for the session. Streams use minutes, webhooks use events, tools use sessions."},"ttlSeconds":{"type":"number","description":"How long the unpaid planning object should remain valid. Clamped between 60 and 3600 seconds."},"maxPriceUsd":{"type":"number","description":"Optional buyer budget cap in USD. Agents should compare this to estimatedPriceUsd before paid activation."},"consumer":{"type":"string","description":"Optional runtime, agent id, wallet, or application identifier requesting the premium session plan."}},"additionalProperties":false,"description":"Plan Premium Session input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["session","providerStatus","monetization"],"properties":{"session":{"type":"object","additionalProperties":true,"description":"Premium session plan. This is a planning object and must be paid/activated by the delivery rail before live data is delivered."},"providerStatus":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Provider readiness at the moment the session was planned."},"monetization":{"type":"object","additionalProperties":true,"description":"x402/pay.sh payment guidance for the premium stream or webhook activation rail."}},"additionalProperties":false},"annotations":{"title":"Plan Premium Session","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_session_status","title":"Premium Session Status","description":"Free premium session status lookup. Returns the current planning status for a premium stream/webhook/tool session id, or lists recent in-memory session plans when no id is provided. It does not expose secrets or stream payload data.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","description":"Optional premium session id returned by sap_premium_session_start."}},"additionalProperties":false,"description":"Premium Session Status input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["sessions"],"properties":{"sessions":{"type":"array","description":"Matching premium session plans. Empty when the requested session id is unknown or expired from memory.","items":{"type":"object","additionalProperties":true,"description":"Premium session record."}}},"additionalProperties":false},"annotations":{"title":"Premium Session Status","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_activate_session","title":"Activate Premium Session","description":"Activates a pending premium session with a verified x402/pay.sh payment receipt. This tool is FREE — it does not charge x402. The paymentReceipt must be the actual Solana transaction signature (tx hash) from the x402 facilitator settlement, NOT \"pending\" or any placeholder. Flow: 1) sap_premium_session_start creates a pending session (free). 2) The x402 challenge is settled via the local bridge (sap_payments_call_paid_tool or direct facilitator payment) — the facilitator returns a tx signature. 3) Pass that tx signature as paymentReceipt to this tool. Do NOT pass \"pending\" — it will always be rejected and waste a tool call.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["sessionId","paymentReceipt"],"properties":{"sessionId":{"type":"string","description":"Premium session id returned by sap_premium_session_start."},"paymentReceipt":{"type":"string","description":"The Solana transaction signature (tx hash) from the x402 facilitator settlement. NOT \"pending\" — must be the real tx hash like \"3ozKaRujGGymu3s9q67qfwfG21s2BpjJQ5zEEFCWen1u...\". Get this by settling the payment challenge first, then pass the returned signature here."},"payerAddress":{"type":"string","description":"Optional Solana payer public key for audit binding."}},"additionalProperties":false,"description":"Activate Premium Session input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["activation"],"properties":{"activation":{"type":"object","additionalProperties":true,"description":"Activation result with status, activatedAt, receiptBound, unitsQuota, and reason."}},"additionalProperties":false},"annotations":{"title":"Activate Premium Session","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_close_session","title":"Close Premium Session","description":"Closes an active premium session, stopping all stream and webhook delivery. Use this when the buyer wants to stop delivery before the unit quota is exhausted. No refund is issued — the session is simply closed.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["sessionId","reason"],"properties":{"sessionId":{"type":"string","description":"The active premium session id to close."},"reason":{"type":"string","description":"Human-readable reason for closing the session."}},"additionalProperties":false,"description":"Close Premium Session input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["closed"],"properties":{"closed":{"type":"object","additionalProperties":true,"description":"Close result with sessionId, success boolean, and reason."}},"additionalProperties":false},"annotations":{"title":"Close Premium Session","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_webhook_register","title":"Register Premium Webhook","description":"Registers an HTTPS webhook target for signed premium event delivery. The session must be active (activated via sap_premium_activate_session). The target URL must be HTTPS, reachable, and not a private/localhost endpoint in production. Events are filtered to the exact event ids listed in the request.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["sessionId","targetUrl","events"],"properties":{"sessionId":{"type":"string","description":"Active premium session id."},"targetUrl":{"type":"string","description":"HTTPS webhook endpoint owned by the buyer. Localhost and private network URLs are rejected in production."},"events":{"type":"array","minItems":1,"items":{"type":"string","description":"Events parameter for Register Premium Webhook."},"description":"Exact event ids to deliver, from the capability delivery contract."},"signingPublicKey":{"type":"string","description":"Optional buyer public key for webhook signature verification."}},"additionalProperties":false,"description":"Register Premium Webhook input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["subscription"],"properties":{"subscription":{"type":"object","additionalProperties":true,"description":"Webhook subscription record with subscriptionId, targetUrl, events, and delivery stats."}},"additionalProperties":false},"annotations":{"title":"Register Premium Webhook","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_webhook_unregister","title":"Unregister Premium Webhook","description":"Deactivates and removes a webhook subscription. No further events will be delivered to the target URL.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["subscriptionId"],"properties":{"subscriptionId":{"type":"string","description":"Webhook subscription id returned by sap_premium_webhook_register."}},"additionalProperties":false,"description":"Unregister Premium Webhook input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["unregistered"],"properties":{"unregistered":{"type":"object","additionalProperties":true,"description":"Unregister result with subscriptionId and success boolean."}},"additionalProperties":false},"annotations":{"title":"Unregister Premium Webhook","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_webhook_status","title":"Premium Webhook Status","description":"Returns the current status of a webhook subscription, including delivery stats and recent delivery attempt records with HTTP status codes and signatures.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["subscriptionId"],"properties":{"subscriptionId":{"type":"string","description":"Webhook subscription id returned by sap_premium_webhook_register."},"includeDeliveries":{"type":"boolean","description":"When true, include recent delivery attempt records. Default: true."}},"additionalProperties":false,"description":"Premium Webhook Status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["subscription"],"properties":{"subscription":{"type":"object","additionalProperties":true,"description":"Webhook subscription record, or null if not found."},"deliveries":{"type":"array","description":"Recent delivery attempt records.","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false},"annotations":{"title":"Premium Webhook Status","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_webhook_relay","title":"Register Premium Webhook Relay (Buffer-Only)","description":"Registers a buffer-only webhook subscription for an active premium session. Unlike sap_premium_webhook_register, this does not require a public HTTPS endpoint — events matching the subscription are buffered server-side in the event store and the agent consumes them via sap_premium_stream_poll or sap_premium_stream_flush. Use this when the agent runs locally or behind NAT and cannot expose a publicly reachable HTTPS callback URL. The session must be active (activated via sap_premium_activate_session). Events are filtered to the exact event ids listed in the request.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["sessionId","events"],"properties":{"sessionId":{"type":"string","description":"Active premium session id to buffer webhook events for."},"events":{"type":"array","minItems":1,"items":{"type":"string","description":"Event id to buffer, from the capability delivery contract."},"description":"Exact event ids to buffer and deliver via poll/flush. At least one event id is required."},"filters":{"type":"object","additionalProperties":true,"description":"Optional narrow filters applied to the provider subscription, forwarded to the delivery loop."}},"additionalProperties":false,"description":"Register Premium Webhook Relay (Buffer-Only) input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["subscription","consumption"],"properties":{"subscription":{"type":"object","additionalProperties":true,"description":"Relay webhook subscription record with subscriptionId, targetUrl (relay://buffer), events, and delivery stats. Null if registration failed."},"consumption":{"type":"object","additionalProperties":true,"description":"Consumption guidance listing the poll and flush tool names the agent should use to drain the buffer."}},"additionalProperties":false},"annotations":{"title":"Register Premium Webhook Relay (Buffer-Only)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_webhook_relay_status","title":"Premium Webhook Relay Status","description":"Returns the status of buffer-only (relay) webhook subscriptions for a session, including the relay configuration, buffered event count, and per-subscription delivery stats. Use this to check how many events are waiting in the server-side buffer before calling sap_premium_stream_poll or sap_premium_stream_flush to consume them.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["sessionId"],"properties":{"sessionId":{"type":"string","description":"Premium session id to inspect relay subscriptions and buffered event counts for."}},"additionalProperties":false,"description":"Premium Webhook Relay Status input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["sessionId","relaySubscriptions","bufferedEventCount","sessionStatus"],"properties":{"sessionId":{"type":"string","description":"The session id that was queried."},"relaySubscriptions":{"type":"array","description":"Active relay (buffer-only) webhook subscriptions for the session.","items":{"type":"object","additionalProperties":true,"description":"Relay webhook subscription record."}},"bufferedEventCount":{"type":"number","description":"Total number of events currently buffered in the event store for this session (across all relay subscriptions)."},"sessionStatus":{"type":"string","description":"Current session status (active, closed, pending_payment, not_found)."}},"additionalProperties":false},"annotations":{"title":"Premium Webhook Relay Status","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_metrics","title":"Premium Subsystem Metrics","description":"Returns a point-in-time metrics snapshot of the premium subsystem: active/pending/blocked sessions, total events delivered, estimated revenue, active streams, active webhooks, and provider health status. Use this for monitoring and operational insights.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"description":"Premium Subsystem Metrics input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["metrics"],"properties":{"metrics":{"type":"object","additionalProperties":true,"description":"Premium metrics snapshot with session, event, revenue, stream, webhook, and provider health counts."}},"additionalProperties":false},"annotations":{"title":"Premium Subsystem Metrics","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_stream_poll","title":"Poll Premium Stream Events","description":"Long-poll buffered premium stream events for an active session. Returns events that have been delivered to the server-side event buffer since the last poll. This is the MCP-compatible alternative to holding open an SSE connection — call this tool periodically to drain the event buffer. This tool is transport-agnostic: because it is a standard MCP tool call (request/response), it works over any MCP transport including stdio, streamable-http, and WebSocket-based MCP transports. There is no need for a separate WebSocket endpoint — this poll tool IS the WebSocket-compatible consumption path. Events are returned oldest-first. Use the sinceEventId cursor from the last poll to fetch only new events. If no events are available, the tool will wait up to waitMs (default 15s, max 30s) for events to arrive before returning an empty array — this gives near-real-time delivery without repeated polling. Set waitMs=0 for instant return.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["sessionId"],"properties":{"sessionId":{"type":"string","description":"Active premium session id whose stream events should be polled."},"sinceEventId":{"type":"string","description":"Optional event id cursor. Only events delivered after this event id are returned. Use the last event id from the previous poll to paginate."},"maxEvents":{"type":"number","description":"Maximum number of events to return in a single poll. Default: 10, max: 100."},"waitMs":{"type":"number","description":"Long-poll wait timeout in milliseconds. If no events are available, the tool waits up to this duration for events to arrive before returning. Default: 15000 (15s). Max: 30000 (30s). Set to 0 for instant return.","minimum":0,"maximum":30000},"eventType":{"type":"string","description":"Optional event type filter. Only events matching this type are returned."}},"additionalProperties":false,"description":"Poll Premium Stream Events input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["events","hasMore","sessionStatus"],"properties":{"events":{"type":"array","description":"Buffered premium events matching the poll query, ordered oldest-first.","items":{"type":"object","additionalProperties":true,"description":"Premium event record with eventId, eventType, observedAt, payload, and deliveredAt."}},"hasMore":{"type":"boolean","description":"True if more events are available in the buffer beyond this batch. Call again to drain remaining events."},"sessionStatus":{"type":"string","description":"Current session status (active, closed, not_found)."},"unitsRemaining":{"type":"number","description":"Remaining billable units in the session quota, if the session is active."},"hint":{"type":"string","description":"Optional hint message, e.g. when delivery loop was just auto-started and no events have arrived yet."}},"additionalProperties":false},"annotations":{"title":"Poll Premium Stream Events","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_premium_stream_flush","title":"Flush Premium Stream Events","description":"Flush all buffered premium stream events for a session with cursor-based pagination. Unlike sap_premium_stream_poll (which returns a small batch for periodic polling), flush returns all events up to the cursor limit in a single call. Use this when an agent reconnects after a disconnection and needs to catch up on missed events. The nextCursor can be used as sinceEventId in subsequent calls to fetch only newer events.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","required":["sessionId"],"properties":{"sessionId":{"type":"string","description":"Active or recently active premium session id whose buffered events should be flushed."},"sinceEventId":{"type":"string","description":"Optional event id cursor. Only events delivered after this event id are returned. Use nextCursor from the previous flush call."},"limit":{"type":"number","description":"Maximum number of events to return. Default: 50, max: 500."},"eventType":{"type":"string","description":"Optional event type filter."}},"additionalProperties":false,"description":"Flush Premium Stream Events input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","required":["events","nextCursor","sessionStatus"],"properties":{"events":{"type":"array","description":"All buffered premium events matching the flush query, ordered oldest-first.","items":{"type":"object","additionalProperties":true,"description":"Premium event record with eventId, eventType, observedAt, payload, and deliveredAt."}},"nextCursor":{"type":"string","description":"Event id of the last event in this batch. Pass as sinceEventId in the next flush call to paginate. Null if no events were returned."},"sessionStatus":{"type":"string","description":"Current session status (active, closed, not_found)."},"totalReturned":{"type":"number","description":"Total number of events returned in this batch."}},"additionalProperties":false},"annotations":{"title":"Flush Premium Stream Events","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_perp_markets","title":"SAP Perp Markets","description":"List available Adrena perpetual futures markets from Pool/Custody accounts with funding/accounting fields, open interest, leverage caps, and oracle identifiers. Read-only analysis tool. Custody accounts do not expose a ready mark price, so markPrice is null until an oracle/feed decoder or configured Adrena data runtime is available. If markets are empty, treat it as data unavailable, not proof that markets do not exist. SAP MCP exposes execution only when sap_perp_builder_status reports a verified hosted unsigned builder.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Optional market symbol filter (e.g. \"SOL\", \"BTC\"). Empty = all markets."}},"additionalProperties":false,"description":"SAP Perp Markets input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Perp Markets","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_perp_position_info","title":"SAP Perp Position Info","description":"Read all open perpetual positions on Adrena for a given wallet address. Returns position key, market, side, size, collateral, entry price, leverage, unrealized PnL, and liquidation price from the on-chain Position account. markPrice mirrors entryPrice until SAP MCP has a live oracle/feed price decoder. Read-only — uses Solana RPC with PDA derivation (works on public RPC without getProgramAccounts).\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet public key (base58) to read positions for."}},"required":["wallet"],"additionalProperties":false,"description":"SAP Perp Position Info input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Perp Position Info","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_perp_funding_history","title":"SAP Perp Funding History","description":"Compute the current funding rate for an Adrena perpetual market from on-chain Custody account data. Pass the custodyAddress from sap_perp_markets. Returns current funding rate, cumulative funding, and open interest. Read-only — reads Custody account directly from Solana RPC (on-chain). Note: on-chain data provides the current funding snapshot only, not historical time-series.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"custodyAddress":{"type":"string","description":"Custody account public key (base58). Obtain from sap_perp_markets output — the custodyAddress field."},"market":{"type":"string","description":"Optional market symbol (e.g. \"SOL\", \"BTC\") for display purposes."},"limit":{"type":"number","description":"Maximum number of funding records to return (default 100). On-chain mode returns the current funding snapshot only.","minimum":1,"maximum":1000}},"required":["custodyAddress"],"additionalProperties":false,"description":"SAP Perp Funding History input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Perp Funding History","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chart_ohlc","title":"SAP Chart Ohlc","description":"Fetch OHLC candlestick data for any Solana token from DexScreener. Returns open, high, low, close, volume, liquidity, and FDV. Read-only — uses free DexScreener REST API.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58) to fetch OHLC data for."},"resolution":{"type":"string","description":"Chart resolution: \"5m\", \"1h\", \"6h\", \"24h\" (default \"1h\").","enum":["5m","1h","6h","24h"]}},"required":["mint"],"additionalProperties":false,"description":"SAP Chart Ohlc input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chart Ohlc","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chart_long_term","title":"SAP Chart Long Term","description":"Fetch long-term price history for a Solana token from DexScreener and optional protocol TVL data from DeFiLlama. Returns price changes, volume, liquidity, FDV, and TVL history. Read-only — uses free REST APIs.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58) for price history."},"protocol":{"type":"string","description":"Optional DeFiLlama protocol slug for TVL history (e.g. \"jupiter\", \"raydium\")."}},"required":["mint"],"additionalProperties":false,"description":"SAP Chart Long Term input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chart Long Term","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chart_volume_profile","title":"SAP Chart Volume Profile","description":"Compute volume profile (POC, VAH, VAL) for any Solana token using DexScreener price and volume data. Returns point of control, value area high/low, and bucket distribution. Read-only — uses free DexScreener REST API + local computation.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58) to compute volume profile for."},"buckets":{"type":"number","description":"Number of price buckets (default 20).","minimum":5,"maximum":100}},"required":["mint"],"additionalProperties":false,"description":"SAP Chart Volume Profile input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chart Volume Profile","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chart_multi_ohlc","title":"SAP Chart Multi Ohlc","description":"Fetch OHLC candlestick data for multiple resolutions in a single call. Returns open, high, low, close, and volume for each requested timeframe. Uses free DexScreener API — one fetch, multiple timeframes. Reduces multi-timeframe analysis cost by 5x.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)."},"resolutions":{"type":"array","items":{"type":"string","enum":["5m","1h","6h","24h"],"description":"Resolution timeframe."},"description":"Resolutions to fetch (e.g. [\"5m\",\"1h\",\"6h\",\"24h\"])."}},"required":["mint","resolutions"],"additionalProperties":false,"description":"SAP Chart Multi Ohlc input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chart Multi Ohlc","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_chart_indicators","title":"SAP Chart Indicators","description":"Compute technical indicators (RSI, EMA-20, EMA-50, MACD, Bollinger Bands, ATR) from DexScreener price data. Returns pre-calculated values with trend/momentum/volatility signals. Reduces analysis time by 5-10 tool calls.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)."},"resolution":{"type":"string","description":"Chart resolution for indicator calculation.","enum":["5m","1h","6h","24h"]},"indicators":{"type":"array","items":{"type":"string","enum":["rsi","ema_20","ema_50","macd","bollinger","atr"],"description":"Indicator name."},"description":"Indicators to compute. Default: all."}},"required":["mint"],"additionalProperties":false,"description":"SAP Chart Indicators input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Chart Indicators","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_perp_liquidation_zones","title":"SAP Perp Liquidation Zones","description":"Compute liquidation zones for all open Adrena perp positions of a wallet. Reads on-chain positions via Solana RPC and calculates liquidation geometry from entry price, leverage, and liquidation price. currentPrice mirrors entryPrice until SAP MCP has a live oracle/feed price decoder. Read-only.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet public key (base58) to compute liquidation zones for."}},"required":["wallet"],"additionalProperties":false,"description":"SAP Perp Liquidation Zones input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Perp Liquidation Zones","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_perp_trade_plan","title":"SAP Perp Trade Plan","description":"Create a trader-grade perpetual futures plan from a simple intent. Returns notional size, stop risk, reward/risk, liquidation estimate, preflight checklist, and the exact SAP MCP read tools to call next. This is analysis-only: SAP MCP does not expose Adrena execution builders until they are IDL-backed and locally finalizable. Required fields: market, side, collateralAmountUsd, leverage, entryPrice. Get entryPrice from sap_adrena_get_trading_prices or sap_adrena_get_prices before calling this tool.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Perp market symbol or pair, for example SOL-PERP, BTC-PERP, or ETH-PERP."},"side":{"type":"string","description":"Intended direction for the trade.","enum":["long","short"]},"collateralAmountUsd":{"type":"number","description":"Collateral to allocate in USD. This is the margin budget, not notional size.","minimum":0},"leverage":{"type":"number","description":"Requested leverage multiplier. Keep conservative unless user policy explicitly allows more.","minimum":1,"maximum":100},"entryPrice":{"type":"number","description":"Reference entry price in USD used for risk math. Required. Get the current price from sap_adrena_get_trading_prices or sap_adrena_get_prices before calling this tool.","minimum":0},"stopLossPrice":{"type":"number","description":"Optional stop loss price in USD. Strongly recommended before execution.","minimum":0},"takeProfitPrice":{"type":"number","description":"Optional take profit price in USD used to compute reward/risk.","minimum":0},"maxAccountRiskPct":{"type":"number","description":"Maximum account risk percentage allowed by local policy. Default 1%.","minimum":0,"maximum":100},"maxSlippageBps":{"type":"number","description":"Maximum execution slippage in basis points. Default 50 bps.","minimum":0,"maximum":10000},"timeframe":{"type":"string","description":"Trading horizon such as scalp, intraday, swing, or hedge."},"notes":{"type":"string","description":"Optional user notes, catalyst, invalidation thesis, or strategy context."}},"required":["market","side","collateralAmountUsd","leverage","entryPrice"],"additionalProperties":false,"description":"SAP Perp Trade Plan input schema. Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Perp Trade Plan","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_perp_builder_status","title":"SAP Perp Builder Status","description":"Free readiness check for perps execution. Returns whether SAP MCP has native Adrena perps builders (available since 0.9.38) or a configured hosted unsigned transaction builder. If builderAvailable is false, agents must stop before execution and must not route direct signer-only perps tools through x402 paid-call replay.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"venue":{"type":"string","description":"Optional perp venue to check, for example \"adrena\" or \"sap-perps-provider\"."}},"additionalProperties":false,"description":"SAP Perp Builder Status input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Perp Builder Status","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_open_long","title":"SAP Adrena Build Open Long","description":"Build an unsigned transaction to open or increase a long perp position on Adrena. Returns transactionBase64 for local signing via sap_payments_finalize_transaction. The agent must sign locally — SAP MCP never signs user-owned perp transactions.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58). This is the fee payer and signer."},"principalToken":{"type":"string","description":"Asset to trade (long). Supported: JITOSOL, WBTC, BONK.","enum":["JITOSOL","WBTC","BONK"]},"collateralToken":{"type":"string","description":"Collateral token. Must match principal for longs. Supported: JITOSOL, WBTC, BONK.","enum":["USDC","JITOSOL","WBTC","BONK"]},"collateralAmount":{"type":"number","description":"Collateral amount in human-readable units (e.g. 10 = 10 JITOSOL).","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier (e.g. 3 = 3x).","minimum":1,"maximum":100},"priceUsd":{"type":"number","description":"Optional limit price in USD. Omit for market order.","minimum":0},"stopLossPriceUsd":{"type":"number","description":"Optional stop-loss price in USD. When provided, the policy engine treats this trade as having a stop loss. Omit to skip the SL requirement (if policy requires SL, this field must be present).","minimum":0}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage"],"additionalProperties":false,"description":"SAP Adrena Build Open Long input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Open Long","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_open_short","title":"SAP Adrena Build Open Short","description":"Build an unsigned transaction to open or increase a short perp position on Adrena. Collateral must be USDC for shorts. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset to short. Supported: JITOSOL, WBTC, BONK.","enum":["JITOSOL","WBTC","BONK"]},"collateralToken":{"type":"string","description":"Collateral token. Must be USDC for shorts.","enum":["USDC"]},"collateralAmount":{"type":"number","description":"Collateral (USDC) amount in human-readable units.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier.","minimum":1,"maximum":100},"priceUsd":{"type":"number","description":"Optional limit price in USD. Omit for market order.","minimum":0},"stopLossPriceUsd":{"type":"number","description":"Optional stop-loss price in USD. When provided, the policy engine treats this trade as having a stop loss. Omit to skip the SL requirement (if policy requires SL, this field must be present).","minimum":0}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage"],"additionalProperties":false,"description":"SAP Adrena Build Open Short input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Open Short","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_close_long","title":"SAP Adrena Build Close Long","description":"Build an unsigned transaction to close a long perp position on Adrena. Default closes 100% at market price. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position. Supported: JITOSOL, WBTC, BONK.","enum":["JITOSOL","WBTC","BONK"]},"priceUsd":{"type":"number","description":"Optional close price in USD. Omit for market close.","minimum":0},"percentage":{"type":"number","description":"Percentage to close (0-1000000, where 1000000 = 100%). Default 1000000.","minimum":0,"maximum":1000000}},"required":["owner","principalToken"],"additionalProperties":false,"description":"SAP Adrena Build Close Long input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Close Long","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_close_short","title":"SAP Adrena Build Close Short","description":"Build an unsigned transaction to close a short perp position on Adrena. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK"]},"collateralToken":{"type":"string","description":"Collateral token. USDC for shorts.","enum":["USDC"]},"priceUsd":{"type":"number","description":"Optional close price in USD.","minimum":0},"percentage":{"type":"number","description":"Percentage to close (0-1000000). Default 1000000.","minimum":0,"maximum":1000000}},"required":["owner","principalToken","collateralToken"],"additionalProperties":false,"description":"SAP Adrena Build Close Short input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Close Short","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_set_stop_loss","title":"SAP Adrena Build Set Stop Loss","description":"Build an unsigned transaction to set stop loss on an Adrena position. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"stopLossPriceUsd":{"type":"number","description":"Stop loss trigger price in USD.","minimum":0},"closePositionPriceUsd":{"type":"number","description":"Optional close position price in USD. If set, the position closes at this price when triggered.","minimum":0}},"required":["owner","principalToken","side","stopLossPriceUsd"],"additionalProperties":false,"description":"SAP Adrena Build Set Stop Loss input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Set Stop Loss","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_set_take_profit","title":"SAP Adrena Build Set Take Profit","description":"Build an unsigned transaction to set take profit on an Adrena position. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"takeProfitPriceUsd":{"type":"number","description":"Take profit trigger price in USD.","minimum":0}},"required":["owner","principalToken","side","takeProfitPriceUsd"],"additionalProperties":false,"description":"SAP Adrena Build Set Take Profit input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Set Take Profit","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_cancel_stop_loss","title":"SAP Adrena Build Cancel Stop Loss","description":"Build an unsigned transaction to cancel stop loss on an Adrena position. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"side":{"type":"string","description":"Position side.","enum":["long","short"]}},"required":["owner","principalToken","side"],"additionalProperties":false,"description":"SAP Adrena Build Cancel Stop Loss input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Cancel Stop Loss","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_cancel_take_profit","title":"SAP Adrena Build Cancel Take Profit","description":"Build an unsigned transaction to cancel take profit on an Adrena position. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"side":{"type":"string","description":"Position side.","enum":["long","short"]}},"required":["owner","principalToken","side"],"additionalProperties":false,"description":"SAP Adrena Build Cancel Take Profit input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Cancel Take Profit","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_simulate_position","title":"SAP Adrena Simulate Position","description":"FREE dry-run tool (no x402 charge): simulates opening a perp position on Adrena by building the same instructions as the open position builder, then calling connection.simulateTransaction(). Returns Adrena program logs, compute units consumed, whether the position would succeed, and the pre-flight balance check — without serializing or returning transaction bytes. Use this to validate position parameters and diagnose on-chain failures before building a paid transaction.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58). This is the fee payer and signer."},"principalToken":{"type":"string","description":"Asset to trade. Supported: JITOSOL, WBTC, BONK, plus XAU, XAG, WTI in the commodities pool.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"collateralToken":{"type":"string","description":"Collateral token. For longs must match principal (main pool) or be USDC (commodities pool). For shorts must be USDC. Supported: USDC, JITOSOL, WBTC, BONK.","enum":["USDC","JITOSOL","WBTC","BONK"]},"collateralAmount":{"type":"number","description":"Collateral amount in human-readable units (e.g. 10 = 10 JITOSOL or 10 USDC).","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier (e.g. 3 = 3x).","minimum":1,"maximum":100},"side":{"type":"string","description":"Position side: long or short.","enum":["long","short"]},"poolName":{"type":"string","description":"Pool to use. Default: main-pool. Use commodities-pool for XAU/XAG/WTI.","enum":["main-pool","commodities-pool"]}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage","side"],"additionalProperties":false,"description":"SAP Adrena Simulate Position input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Simulate Position","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_position_package","title":"SAP Adrena Build Position Package","description":"Build a single unsigned transaction that atomically opens a perp position AND sets stop loss AND take profit in one transaction. 1 payment, 1 signing, 1 submit — instead of 3 separate calls. If stopLossPriceUsd or takeProfitPriceUsd is omitted, that instruction is skipped. Returns transactionBase64 for local signing via sap_payments_finalize_transaction. Includes balanceCheck.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset to trade.","enum":["JITOSOL","WBTC","BONK"]},"collateralToken":{"type":"string","description":"Collateral token. USDC for shorts, match principal for longs.","enum":["USDC","JITOSOL","WBTC","BONK"]},"collateralAmount":{"type":"number","description":"Collateral amount in human-readable units.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier (e.g. 3 = 3x).","minimum":1,"maximum":100},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"stopLossPriceUsd":{"type":"number","description":"Optional stop loss trigger price in USD. Omit to skip.","minimum":0},"takeProfitPriceUsd":{"type":"number","description":"Optional take profit trigger price in USD. Omit to skip.","minimum":0},"priceUsd":{"type":"number","description":"Optional limit price in USD for the open. Omit for market order.","minimum":0}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage","side"],"additionalProperties":false,"description":"SAP Adrena Build Position Package input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Position Package","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_trade_intent","title":"SAP Adrena Trade Intent","description":"Intent-level Adrena trading API. Pass market name, side, USD collateral, and leverage (or \"max\"). The tool resolves mint addresses, decimals, max leverage from on-chain custody accounts, converts USD collateral to token amounts via oracle price, validates parameters, and returns a ready-to-sign transaction. Supports optional stopLossPct and takeProfitPct for atomic position+SL+TP in one transaction. Reduces 5 tool calls to 1.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Wallet public key (base58)."},"market":{"type":"string","description":"Market symbol: BONK, JITOSOL, WBTC, USDC, XAU, XAG, WTI."},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"collateralUsd":{"type":"number","description":"Collateral amount in USD. Converted to token amount using oracle price.","minimum":0},"leverage":{"type":"string","description":"Leverage multiplier (e.g. \"3\" for 3x) or \"max\" for maxInitialLeverage."},"stopLossPct":{"type":"number","description":"Optional stop loss as % from entry (e.g. 5 = 5% away). Omit to skip."},"takeProfitPct":{"type":"number","description":"Optional take profit as % from entry (e.g. 15 = 15% away). Omit to skip."},"poolName":{"type":"string","description":"Pool: main-pool (default) or commodities-pool.","enum":["main-pool","commodities-pool"]}},"required":["owner","market","side","collateralUsd","leverage"],"additionalProperties":false,"description":"SAP Adrena Trade Intent input schema. Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Trade Intent","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_trailing_stop","title":"SAP Adrena Build Trailing Stop","description":"Build an unsigned transaction to set a trailing stop loss on an Adrena position. Reads the current oracle price and computes the stop loss at the specified percentage distance. For longs: SL below current price. For shorts: SL above current price. Returns transactionBase64 for local signing. Call this repeatedly to keep the stop trailing the price.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"trailPct":{"type":"number","description":"Trailing distance as percentage from current price (e.g. 3 = 3% away).","minimum":0.1,"maximum":50}},"required":["owner","principalToken","side","trailPct"],"additionalProperties":false,"description":"SAP Adrena Build Trailing Stop input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Trailing Stop","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_modify_position","title":"SAP Adrena Build Modify Position","description":"Build an unsigned transaction to modify an existing Adrena position by adding collateral. Uses openOrIncreasePosition which atomically adds collateral to an existing position. The leverage parameter can be changed to adjust the position risk. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"collateralToken":{"type":"string","description":"Collateral token.","enum":["USDC","JITOSOL","WBTC","BONK"]},"collateralAmount":{"type":"number","description":"Additional collateral amount in human-readable units to add to the position.","minimum":0},"leverage":{"type":"number","description":"New leverage multiplier. Pass the same value to keep current leverage, or a different value to change it.","minimum":1,"maximum":100},"side":{"type":"string","description":"Position side.","enum":["long","short"]}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage","side"],"additionalProperties":false,"description":"SAP Adrena Build Modify Position input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Modify Position","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_market_snapshot","title":"SAP Market Snapshot","description":"Returns a complete market snapshot: all Adrena market data (leverage, OI, flags), live oracle prices, and pool health (AUM, LP supply) in one call. Includes a 30-second TTL cache — repeated calls within the cache window return cached data without re-fetching. Reduces market data costs by 20x for polling bots.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"forceRefresh":{"type":"boolean","description":"When true, bypasses the cache and fetches fresh data. Default false."}},"additionalProperties":false,"description":"SAP Market Snapshot input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Market Snapshot","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_add_limit_order","title":"SAP Adrena Build Add Limit Order","description":"Build an unsigned transaction to place a limit order on Adrena. The order fills when the oracle price reaches the trigger price. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Order owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset to trade.","enum":["JITOSOL","WBTC","BONK"]},"collateralToken":{"type":"string","description":"Collateral token.","enum":["USDC","JITOSOL","WBTC","BONK"]},"collateralAmount":{"type":"number","description":"Collateral amount in human-readable units.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier.","minimum":1,"maximum":100},"side":{"type":"string","description":"Order side.","enum":["long","short"]},"triggerPriceUsd":{"type":"number","description":"Trigger price in USD. Order fills when oracle reaches this price.","minimum":0},"limitPriceUsd":{"type":"number","description":"Optional limit price cap. Omit for market price at fill.","minimum":0}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage","side","triggerPriceUsd"],"additionalProperties":false,"description":"SAP Adrena Build Add Limit Order input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Add Limit Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_cancel_limit_order","title":"SAP Adrena Build Cancel Limit Order","description":"Build an unsigned transaction to cancel a limit order on Adrena. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Order owner wallet public key (base58)."},"collateralToken":{"type":"string","description":"Collateral token used for the order.","enum":["USDC","JITOSOL","WBTC","BONK"]},"orderId":{"type":"number","description":"Limit order ID to cancel."}},"required":["owner","collateralToken","orderId"],"additionalProperties":false,"description":"SAP Adrena Build Cancel Limit Order input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Cancel Limit Order","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_open_commodity_long","title":"SAP Adrena Build Open Commodity Long","description":"Build an unsigned transaction to open a long position on a synthetic commodity (XAU, XAG, WTI) on Adrena. Uses the commodities pool with USDC collateral. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Commodity to trade.","enum":["XAU","XAG","WTI"]},"collateralAmount":{"type":"number","description":"USDC collateral amount in human-readable units.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier.","minimum":1,"maximum":100},"priceUsd":{"type":"number","description":"Optional limit price in USD.","minimum":0}},"required":["owner","principalToken","collateralAmount","leverage"],"additionalProperties":false,"description":"SAP Adrena Build Open Commodity Long input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Open Commodity Long","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_open_commodity_short","title":"SAP Adrena Build Open Commodity Short","description":"Build an unsigned transaction to open a short position on a synthetic commodity (XAU, XAG, WTI) on Adrena. Uses the commodities pool with USDC collateral. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Commodity to short.","enum":["XAU","XAG","WTI"]},"collateralAmount":{"type":"number","description":"USDC collateral amount.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier.","minimum":1,"maximum":100},"priceUsd":{"type":"number","description":"Optional limit price in USD.","minimum":0}},"required":["owner","principalToken","collateralAmount","leverage"],"additionalProperties":false,"description":"SAP Adrena Build Open Commodity Short input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Open Commodity Short","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_close_commodity_long","title":"SAP Adrena Build Close Commodity Long","description":"Build an unsigned transaction to close a long commodity position on Adrena. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Commodity of the position.","enum":["XAU","XAG","WTI"]},"priceUsd":{"type":"number","description":"Optional close price in USD.","minimum":0},"percentage":{"type":"number","description":"Percentage to close (0-1000000). Default 1000000.","minimum":0,"maximum":1000000}},"required":["owner","principalToken"],"additionalProperties":false,"description":"SAP Adrena Build Close Commodity Long input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Close Commodity Long","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_close_commodity_short","title":"SAP Adrena Build Close Commodity Short","description":"Build an unsigned transaction to close a short commodity position on Adrena. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Commodity of the position.","enum":["XAU","XAG","WTI"]},"priceUsd":{"type":"number","description":"Optional close price in USD.","minimum":0},"percentage":{"type":"number","description":"Percentage to close (0-1000000). Default 1000000.","minimum":0,"maximum":1000000}},"required":["owner","principalToken"],"additionalProperties":false,"description":"SAP Adrena Build Close Commodity Short input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Close Commodity Short","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_add_liquidity","title":"SAP Adrena Build Add Liquidity","description":"Build an unsigned transaction to add liquidity to an Adrena pool. Deposits collateral and receives LP tokens. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Liquidity provider wallet public key (base58)."},"collateralToken":{"type":"string","description":"Collateral token to deposit.","enum":["USDC","JITOSOL","WBTC","BONK"]},"amount":{"type":"number","description":"Amount in human-readable units.","minimum":0},"minLpAmountOut":{"type":"number","description":"Minimum LP tokens to receive (raw). 0 for no slippage protection.","minimum":0},"poolName":{"type":"string","description":"Pool to add liquidity to.","enum":["main-pool","commodities-pool"]}},"required":["owner","collateralToken","amount"],"additionalProperties":false,"description":"SAP Adrena Build Add Liquidity input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Add Liquidity","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_remove_liquidity","title":"SAP Adrena Build Remove Liquidity","description":"Build an unsigned transaction to remove liquidity from an Adrena pool. Burns LP tokens and receives collateral. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Liquidity provider wallet public key (base58)."},"collateralToken":{"type":"string","description":"Collateral token to receive.","enum":["USDC","JITOSOL","WBTC","BONK"]},"lpAmountIn":{"type":"number","description":"LP tokens to burn (raw, 6 decimals).","minimum":0},"minAmountOut":{"type":"number","description":"Minimum collateral to receive (raw). 0 for no slippage protection.","minimum":0},"poolName":{"type":"string","description":"Pool to remove liquidity from.","enum":["main-pool","commodities-pool"]}},"required":["owner","collateralToken","lpAmountIn"],"additionalProperties":false,"description":"SAP Adrena Build Remove Liquidity input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Remove Liquidity","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_swap","title":"SAP Adrena Build Swap","description":"Build an unsigned transaction to swap tokens through an Adrena pool. Uses zero-slippage oracle pricing. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Swapper wallet public key (base58)."},"fromToken":{"type":"string","description":"Token to swap from.","enum":["USDC","JITOSOL","WBTC","BONK"]},"toToken":{"type":"string","description":"Token to swap to.","enum":["USDC","JITOSOL","WBTC","BONK"]},"amount":{"type":"number","description":"Amount to swap in human-readable units.","minimum":0},"minAmountOut":{"type":"number","description":"Minimum amount to receive (raw). 0 for no slippage protection.","minimum":0}},"required":["owner","fromToken","toToken","amount"],"additionalProperties":false,"description":"SAP Adrena Build Swap input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Swap","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_init_user_staking","title":"SAP Adrena Build Init User Staking","description":"Build an unsigned transaction to initialize a user staking account on Adrena. Must be called before add_liquid_stake or add_locked_stake. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Staker wallet public key (base58)."}},"required":["owner"],"additionalProperties":false,"description":"SAP Adrena Build Init User Staking input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Init User Staking","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_add_liquid_stake","title":"SAP Adrena Build Add Liquid Stake","description":"Build an unsigned transaction to add a liquid stake on Adrena (stake LP tokens). Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Staker wallet public key (base58)."},"amount":{"type":"number","description":"Amount of LP tokens to stake (raw, 6 decimals).","minimum":0}},"required":["owner","amount"],"additionalProperties":false,"description":"SAP Adrena Build Add Liquid Stake input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Add Liquid Stake","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_remove_liquid_stake","title":"SAP Adrena Build Remove Liquid Stake","description":"Build an unsigned transaction to remove a liquid stake on Adrena (unstake LP tokens). Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Staker wallet public key (base58)."},"amount":{"type":"number","description":"Amount of staked LP tokens to withdraw (raw, 6 decimals).","minimum":0}},"required":["owner","amount"],"additionalProperties":false,"description":"SAP Adrena Build Remove Liquid Stake input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Remove Liquid Stake","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_add_locked_stake","title":"SAP Adrena Build Add Locked Stake","description":"Build an unsigned transaction to add a locked stake on Adrena. LP tokens are locked for a specified duration. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Staker wallet public key (base58)."},"amount":{"type":"number","description":"Amount of LP tokens to lock (raw, 6 decimals).","minimum":0},"lockedDays":{"type":"number","description":"Lock duration in days.","minimum":1}},"required":["owner","amount","lockedDays"],"additionalProperties":false,"description":"SAP Adrena Build Add Locked Stake input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Add Locked Stake","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_build_claim_stakes","title":"SAP Adrena Build Claim Stakes","description":"Build an unsigned transaction to claim staking rewards on Adrena. Returns transactionBase64 for local signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Staker wallet public key (base58)."},"lockedStakeIndexes":{"type":"string","description":"Optional comma-separated list of locked stake indexes to claim. Omit to claim all."}},"required":["owner"],"additionalProperties":false,"description":"SAP Adrena Build Claim Stakes input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Build Claim Stakes","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_adrena_get_positions","title":"SAP Adrena Get Positions","description":"Fetch position history for a wallet from the Adrena Data API. Returns closed and open positions with P&L, entry/exit prices, and status.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet public key (base58)."}},"required":["wallet"],"additionalProperties":false,"description":"SAP Adrena Get Positions input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Positions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_adrena_get_pool_info","title":"SAP Adrena Get Pool Info","description":"Read Adrena pool statistics directly from the on-chain Pool account. Returns TVL (AUM), LP token price, pool name, custody list, trade/swap flags, and fees debt. Reads from Solana mainnet via RPC. Use this before opening positions to check pool health and available custodies.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"poolName":{"type":"string","description":"Pool name. Supported: main-pool (default), commodities-pool.","enum":["main-pool","commodities-pool"]}},"additionalProperties":false,"description":"SAP Adrena Get Pool Info input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Pool Info","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_adrena_get_custody_info","title":"SAP Adrena Get Custody Info","description":"Fetch per-asset custody statistics from the Adrena Data API. Returns open interest, utilization, volume, and fees for each custody.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"Optional symbol filter (e.g. JITOSOL, WBTC)."}},"additionalProperties":false,"description":"SAP Adrena Get Custody Info input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Custody Info","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_adrena_get_trader_info","title":"SAP Adrena Get Trader Info","description":"Fetch trader performance metrics from the Adrena Data API. Returns total volume, P&L, fees, win rate, and rank.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Trader wallet public key (base58)."}},"required":["wallet"],"additionalProperties":false,"description":"SAP Adrena Get Trader Info input schema. Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Trader Info","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_adrena_get_trader_leaderboard","title":"SAP Adrena Get Trader Leaderboard","description":"Fetch trader leaderboard from the Adrena Data API. Returns top traders by volume and P&L.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"Optional limit. Default 50.","minimum":1,"maximum":500}},"additionalProperties":false,"description":"SAP Adrena Get Trader Leaderboard input schema. Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Trader Leaderboard","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_adrena_get_mutagen","title":"SAP Adrena Get Mutagen","description":"Fetch Mutagen points for a wallet from the Adrena Data API. Returns total points, rank, and breakdown.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet public key (base58)."}},"required":["wallet"],"additionalProperties":false,"description":"SAP Adrena Get Mutagen input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Mutagen","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_adrena_get_mutagen_leaderboard","title":"SAP Adrena Get Mutagen Leaderboard","description":"Fetch Mutagen points leaderboard from the Adrena Data API. Returns top wallets by points.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"Optional limit. Default 50.","minimum":1,"maximum":500}},"additionalProperties":false,"description":"SAP Adrena Get Mutagen Leaderboard input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Mutagen Leaderboard","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_adrena_get_prices","title":"SAP Adrena Get Prices","description":"Fetch current ADX and ALP token prices from the Adrena Data API.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"description":"SAP Adrena Get Prices input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Prices","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_adrena_get_trading_prices","title":"SAP Adrena Get Trading Prices","description":"Fetch latest oracle trading prices for all Adrena assets. Returns price and custody address for each traded asset.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"description":"SAP Adrena Get Trading Prices input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Trading Prices","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_adrena_get_position_status","title":"SAP Adrena Get Position Status","description":"Fetch live position status (P&L, size, liquidation price, entry price, oracle price) from the Adrena Data API for a specific wallet and token.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet public key (base58)."},"principalToken":{"type":"string","description":"Principal token symbol (e.g. JITOSOL, WBTC, BONK, XAU)."},"side":{"type":"string","description":"Position side.","enum":["long","short"]}},"required":["wallet","principalToken","side"],"additionalProperties":false,"description":"SAP Adrena Get Position Status input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Position Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_adrena_get_markets","title":"SAP Adrena Get Markets","description":"Read all Adrena custody accounts directly from Solana mainnet and return real market data for every supported asset: mint address, decimals, max initial leverage, max leverage, allowTrade/allowSwap flags, oracle feed IDs, open interest (long/short USD), locked amounts, borrow rates, and funding rates. This is the authoritative source for what markets Adrena supports and their current on-chain parameters. Use this before opening positions to verify leverage limits and trade availability.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"poolName":{"type":"string","description":"Optional pool filter. Supported: main-pool, commodities-pool. Omit for all pools.","enum":["main-pool","commodities-pool"]}},"additionalProperties":false,"description":"SAP Adrena Get Markets input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"SAP Adrena Get Markets","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_perp_risk_check","title":"Perp Risk Check","description":"Pre-trade dynamic risk gate. Reads the trade journal to compute daily P&L, drawdown, and cooldown status. Returns allowed/disallowed with a risk score (0-1) and recommendation (PROCEED/WAIT/BLOCK). Call this before sap_adrena_build_open_long or sap_adrena_build_open_short. Combines with the static policy engine for full risk management.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Market symbol (e.g. BONK, JITOSOL, WBTC, XAU)."},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"collateralUsd":{"type":"number","description":"Collateral amount in USD.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier (e.g. 3 for 3x).","minimum":1}},"required":["market","side","collateralUsd","leverage"],"additionalProperties":false,"description":"Perp Risk Check input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Perp Risk Check","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_perp_signal_score","title":"Perp Signal Score","description":"Aggregate technical signal score (0-1) from RSI, EMA, MACD, Bollinger Bands, price action, and on-chain funding rate. Returns a single score with LONG/SHORT/WAIT recommendation and confidence. Replaces 5-7 individual indicator calls with 1 aggregation call. Use this before opening a position to get a quantitative decision baseline.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58) for DexScreener price data."},"market":{"type":"string","description":"Market symbol for on-chain funding rate (e.g. BONK, JITOSOL, WBTC)."}},"required":["mint","market"],"additionalProperties":false,"description":"Perp Signal Score input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Perp Signal Score","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_perp_portfolio_risk","title":"Portfolio Risk Score","description":"Compute an aggregate portfolio risk score from the trade journal and open positions. Returns total exposure, weighted leverage, diversification score, and a risk recommendation (SAFE/MODERATE/HIGH/CRITICAL). Use this to assess overall portfolio health before opening new positions or when monitoring existing ones.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"description":"Portfolio Risk Score input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Portfolio Risk Score","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_perp_fear_greed","title":"Fear & Greed Index","description":"Fetch the Crypto Fear & Greed Index from alternative.me (free, no API key). Returns current value (0-100), classification (Extreme Fear to Extreme Greed), historical values (yesterday, last week, last month), and a risk_on/risk_off recommendation. Use this as a market sentiment overlay before opening positions. Extreme Fear (<25) can indicate capitulation (contrarian bullish). Extreme Greed (>75) can indicate euphoria (contrarian bearish).\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"description":"Fear & Greed Index input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Fear & Greed Index","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_skills_list","title":"List SAP MCP Skills","description":"List bundled SAP MCP skills and their files.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"skills":{"type":"array","items":{"type":"string","description":"Skills parameter for List SAP MCP Skills."},"description":"Skills parameter for List SAP MCP Skills."}},"description":"List SAP MCP Skills input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"List SAP MCP Skills","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_skills_bundle","title":"Bundle SAP MCP Skills","description":"Return bundled SAP MCP skills as JSON so an agent can load or write them itself. Pass skills: [\"name1\",\"name2\"] to bundle only specific skills (filterNames pattern). Pass includeContents: false to get only file paths without content (metadata-only mode for cheap discovery). Combine both for efficient loading: skills:[\"sap-defi\"], includeContents:true returns only the sap-defi skill files with full content, avoiding context bloat from unused skills.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"skills":{"type":"array","items":{"type":"string","description":"Skills parameter for Bundle SAP MCP Skills."},"description":"Optional subset of bundled skill names to bundle. When omitted, all bundled skills are returned. Use this to load only the skills you need and avoid context bloat."},"includeContents":{"type":"boolean","description":"When false, only file paths are returned without file content (metadata-only). When true (default), full file contents are included. Set to false for cheap discovery, then call again with skills:[\"name\"] and includeContents:true for only the skills you need."}},"description":"Bundle SAP MCP Skills input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Bundle SAP MCP Skills","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"sap_skills_install","title":"Install SAP MCP Skills","description":"Install bundled SAP MCP skills into a local agent skill directory. Requires confirm: true.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agent":{"type":"string","enum":["claude","codex","hermes","openclaw","clawpump","custom"],"description":"Agent parameter for Install SAP MCP Skills."},"targetDir":{"type":"string","description":"Target Dir parameter for Install SAP MCP Skills."},"skills":{"type":"array","items":{"type":"string","description":"Skills parameter for Install SAP MCP Skills."},"description":"Skills parameter for Install SAP MCP Skills."},"confirm":{"type":"boolean","description":"Confirm flag required before local signing, payment, or write execution. Set true only after the user approves the preview/cost."}},"description":"Install SAP MCP Skills input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Install SAP MCP Skills","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"sap_skills_upgrade_plan","title":"Plan SAP MCP Skills Upgrade","description":"Free helper that returns exact latest-release commands and target directories for upgrading SAP MCP skills. Hosted mode returns a local action plan; local mode can then use sap_skills_install to write files.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agent":{"type":"string","enum":["claude","codex","hermes","openclaw","clawpump","custom"],"description":"Optional target runtime whose default skill directory should be used."},"targetDir":{"type":"string","description":"Optional explicit local skill directory."},"skills":{"type":"array","description":"Optional subset of bundled skill names to upgrade.","items":{"type":"string","description":"Skills parameter for Plan SAP MCP Skills Upgrade."}}},"description":"Plan SAP MCP Skills Upgrade input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the upgrade plan was generated."},"action":{"type":"string","description":"Plan type."},"latestVersion":{"type":"string","description":"Pinned SAP MCP package version for the upgrade."},"package":{"type":"string","description":"Pinned npm package spec."},"hostedEndpoint":{"type":"string","description":"Hosted SAP MCP endpoint."},"serverMode":{"type":"string","description":"Current server mode."},"canWriteLocalFiles":{"type":"boolean","description":"Whether this MCP process can write skill files locally."},"selectedSkills":{"type":"array","description":"Bundled skills included in the plan.","items":{"type":"object"}},"fileCount":{"type":"number","description":"Number of bundled skill files selected."},"targetDir":{"type":["string","null"],"description":"Resolved target directory when known."},"targetDirs":{"type":"object","description":"Default local skill directories by runtime."},"commands":{"type":"object","description":"Pinned commands to run locally."},"agentInstructions":{"type":"array","description":"Instructions agents should follow without guessing.","items":{"type":"string"}},"nextToolCalls":{"type":"array","description":"Suggested next MCP tool calls.","items":{"type":"object"}}},"required":["success","action","latestVersion","package","hostedEndpoint","serverMode","canWriteLocalFiles","selectedSkills","fileCount","targetDir","targetDirs","commands","agentInstructions","nextToolCalls"]},"annotations":{"title":"Plan SAP MCP Skills Upgrade","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_runtime_repair_plan","title":"Plan SAP Runtime Repair","description":"Free helper that returns the pinned latest-release repair command for hosted SAP MCP plus local sap_payments bridge setup. Use this before asking users to manually edit runtime config.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agent":{"type":"string","enum":["claude","codex","hermes","openclaw","clawpump","custom"],"description":"Optional runtime to focus repair instructions on."}},"description":"Plan SAP Runtime Repair input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the repair plan was generated."},"action":{"type":"string","description":"Plan type."},"latestVersion":{"type":"string","description":"Pinned SAP MCP package version for repair."},"package":{"type":"string","description":"Pinned npm package spec."},"hostedEndpoint":{"type":"string","description":"Hosted SAP MCP endpoint."},"serverMode":{"type":"string","description":"Current server mode."},"targetRuntime":{"type":"string","description":"Runtime selected for repair guidance."},"repairCommand":{"type":"string","description":"Primary local command to repair hosted MCP and sap_payments bridge config."},"wizardCommand":{"type":"string","description":"Full local wizard command for profile creation or full setup."},"commands":{"type":"object","description":"OS-specific repair command aliases."},"whatRepairDoes":{"type":"array","description":"Concrete operations performed by repair.","items":{"type":"string"}},"expectedAfterRestart":{"type":"object","description":"Tool namespaces and bridge tools expected after restarting the runtime."},"agentInstructions":{"type":"array","description":"Instructions agents should follow without guessing.","items":{"type":"string"}}},"required":["success","action","latestVersion","package","hostedEndpoint","serverMode","targetRuntime","repairCommand","wizardCommand","commands","whatRepairDoes","expectedAfterRestart","agentInstructions"]},"annotations":{"title":"Plan SAP Runtime Repair","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_skills_check_updates","title":"Check SAP MCP Skills Updates","description":"Compare the bundled skill version with the latest published npm package and report which local agent skill directories are stale. Read-only. Works in every server mode.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agent":{"type":"string","enum":["claude","codex","hermes","openclaw","clawpump","custom"],"description":"Optional runtime whose default skill directory should be checked."},"targetDir":{"type":"string","description":"Optional explicit local skill directory to check."}},"description":"Check SAP MCP Skills Updates input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"currentVersion":{"type":"string"},"latestVersion":{"type":["string","null"]},"updateAvailable":{"type":"boolean"},"registryReachable":{"type":"boolean"},"checkedDirs":{"type":"array","items":{"type":"object"}}},"required":["success","currentVersion","latestVersion","updateAvailable","registryReachable","checkedDirs"]},"annotations":{"title":"Check SAP MCP Skills Updates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_skills_self_update","title":"Self-Update SAP MCP Skills","description":"Refresh local agent skill files from the latest published @oobe-protocol-labs/sap-mcp-server package. Local-mode only (hosted MCP cannot write to the caller machine). Requires confirm: true. Uses npm pack + tar extraction; no shell interpolation of paths.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"agent":{"type":"string","enum":["claude","codex","hermes","openclaw","clawpump","custom"],"description":"Agent parameter for Self-Update SAP MCP Skills."},"targetDir":{"type":"string","description":"Target Dir parameter for Self-Update SAP MCP Skills."},"skills":{"type":"array","items":{"type":"string","description":"Skills parameter for Self-Update SAP MCP Skills."},"description":"Skills parameter for Self-Update SAP MCP Skills."},"confirm":{"type":"boolean","description":"Confirm flag required before local signing, payment, or write execution. Set true only after the user approves the preview/cost."}},"description":"Self-Update SAP MCP Skills input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Self-Update SAP MCP Skills","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"magicblock_getRoutes","title":"magicblock getRoutes","description":"List available Ephemeral Rollup nodes from the Magic Router (identity, FQDN, fee, block time, country)..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"description":"magicblock getRoutes input schema. Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock getRoutes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"magicblock_getIdentity","title":"magicblock getIdentity","description":"Get the identity and FQDN of the current ER Validator node..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"description":"magicblock getIdentity input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock getIdentity","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"magicblock_getDelegationStatus","title":"magicblock getDelegationStatus","description":"Check whether a Solana account is delegated to an Ephemeral Rollup. Returns authority, owner, delegation slot, and lamports..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"account":{"type":"string","description":"Account pubkey to check delegation status for"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["account"],"description":"magicblock getDelegationStatus input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock getDelegationStatus","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"magicblock_getAccountInfo","title":"magicblock getAccountInfo","description":"Fetch account information (data, lamports, owner, executable, space) via the Magic Router..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"account":{"type":"string","description":"Account pubkey to fetch info for"},"encoding":{"type":"string","enum":["base64","base64+zstd"],"description":"Encoding for account data"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["account"],"description":"magicblock getAccountInfo input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock getAccountInfo","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"magicblock_getBlockhashForAccounts","title":"magicblock getBlockhashForAccounts","description":"Get a blockhash and last valid block height for a batch of account addresses (max 100)..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"string","description":"Account pubkey"},"description":"Array of account addresses (max 100)"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["accounts"],"description":"magicblock getBlockhashForAccounts input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock getBlockhashForAccounts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"magicblock_getSignatureStatuses","title":"magicblock getSignatureStatuses","description":"Check the confirmation status (processed/confirmed/finalized) of one or more transaction signatures..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"signatures":{"type":"array","items":{"type":"string","description":"Transaction signature (base58)"},"description":"Array of transaction signatures"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["signatures"],"description":"magicblock getSignatureStatuses input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock getSignatureStatuses","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"magicblock_health","title":"magicblock health","description":"Check the health status of the MagicBlock Private Payments API..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"magicblock health input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock health","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_challenge","title":"magicblock challenge","description":"Generate a challenge string for the wallet to sign (step 1 of the PER auth flow)..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"pubkey":{"type":"string","description":"Wallet pubkey that will sign the challenge"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"}},"required":["pubkey"],"description":"magicblock challenge input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock challenge","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_login","title":"magicblock login","description":"Exchange a signed challenge for a bearer token (step 2 of PER auth flow). The token is used for private-balance and private transfers..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"pubkey":{"type":"string","description":"Wallet pubkey that signed the challenge"},"challenge":{"type":"string","description":"Challenge string from magicblock_challenge"},"signature":{"type":"string","description":"Wallet signature over the challenge string"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"}},"required":["pubkey","challenge","signature"],"description":"magicblock login input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock login","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_balance","title":"magicblock balance","description":"Read the base-chain SPL token balance for an address (public, no auth required)..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Owner wallet pubkey"},"mint":{"type":"string","description":"SPL mint pubkey"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"}},"required":["address","mint"],"description":"magicblock balance input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock balance","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_privateBalance","title":"magicblock privateBalance","description":"Read the ephemeral-rollup SPL token balance for an address (requires bearer token from login)..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Owner wallet pubkey"},"mint":{"type":"string","description":"SPL mint pubkey"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"authToken":{"type":"string","description":"Bearer token from magicblock_login (required for private reads)"}},"required":["address","mint","authToken"],"description":"magicblock privateBalance input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock privateBalance","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_deposit","title":"magicblock deposit","description":"Build an unsigned transaction to deposit SPL tokens from Solana into an Ephemeral Rollup. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Do not create local signing scripts. Builder fee applies.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Wallet pubkey that owns the tokens and will sign"},"amount":{"type":"number","description":"Base-unit amount to deposit (integer, minimum 1)"},"mint":{"type":"string","description":"SPL mint. Defaults to USDC (mainnet) or devnet USDC"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey. Defaults to the selected ephemeral RPC identity."},"initIfMissing":{"type":"boolean","description":"Initialize the transfer queue if missing (default true)"},"initVaultIfMissing":{"type":"boolean","description":"Initialize the vault if missing (default true)"},"initAtasIfMissing":{"type":"boolean","description":"Initialize associated token accounts if missing (default true)"},"idempotent":{"type":"boolean","description":"Use idempotent variants for preparatory init instructions (default true)"}},"required":["owner","amount"],"description":"magicblock deposit input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock deposit","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_transfer","title":"magicblock transfer","description":"Build an unsigned SPL token transfer (public or private) through an Ephemeral Rollup. Supports base/ephemeral source and destination, delayed settlement, split transfers, and gasless mode. Private mode defaults: minDelayMs=0, maxDelayMs=0, split=1 — override for delayed or split settlements. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Builder fee applies.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"from":{"type":"string","description":"Sender wallet pubkey"},"to":{"type":"string","description":"Recipient wallet pubkey"},"mint":{"type":"string","description":"SPL mint pubkey"},"amount":{"type":"number","description":"Base-unit amount to transfer (integer, minimum 1)"},"visibility":{"type":"string","enum":["public","private"],"description":"'public' = transparent SPL transfer, 'private' = routed through Private ER with delayed+split settlement"},"fromBalance":{"type":"string","enum":["base","ephemeral"],"description":"Where the sender's balance is held"},"toBalance":{"type":"string","enum":["base","ephemeral"],"description":"Where the recipient should receive funds"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey"},"authToken":{"type":"string","description":"Bearer token from login (required for private transfers)"},"initIfMissing":{"type":"boolean","description":"Initialize transfer queue if missing (default true)"},"initAtasIfMissing":{"type":"boolean","description":"Initialize recipient ATA if missing (default true)"},"initVaultIfMissing":{"type":"boolean","description":"Initialize vault if missing (default false). WARNING: when legacy=true, setting this to true can exceed the 1232-byte legacy transaction limit and produce TRANSACTION_TOO_LARGE errors. Prefer v0 (legacy=false) when vault init is needed."},"memo":{"type":"string","description":"Optional memo appended to the transaction"},"minDelayMs":{"type":"string","description":"Private only. Earliest (ms) the queued transfer may settle. Default '0'"},"maxDelayMs":{"type":"string","description":"Private only. Latest (ms) the queued transfer may settle (<= 600000)"},"clientRefId":{"type":"string","description":"Private only. Encrypted client reference ID for payment confirmation"},"split":{"type":"number","description":"Private only. Number of queue entries to split across (1-15, default 1)"},"gasless":{"type":"boolean","description":"When true, uses configured sponsor as fee payer (default false)"},"legacy":{"type":"boolean","description":"Skip lookup-table compilation, return a legacy transaction (default false)"}},"required":["from","to","mint","amount","visibility","fromBalance","toBalance"],"description":"magicblock transfer input schema. Intent: local-signer write workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock transfer","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_withdraw","title":"magicblock withdraw","description":"Build an unsigned transaction to withdraw SPL tokens from an Ephemeral Rollup back to Solana. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Builder fee applies.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Wallet pubkey that owns the tokens and will sign"},"mint":{"type":"string","description":"SPL mint on Solana"},"amount":{"type":"number","description":"Base-unit amount to withdraw (integer, minimum 1)"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey"},"initIfMissing":{"type":"boolean","description":"Initialize transfer queue if missing (default true)"},"initAtasIfMissing":{"type":"boolean","description":"Initialize ATAs if missing (default true)"},"escrowIndex":{"type":"number","description":"Optional escrow index for the withdrawal"},"idempotent":{"type":"boolean","description":"Use idempotent variants for preparatory init instructions (default true)"}},"required":["owner","mint","amount"],"description":"magicblock withdraw input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock withdraw","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_swapQuote","title":"magicblock swapQuote","description":"Get a swap quote between two SPL mints (proxies Triton Metis swap API). Pass the result into magicblock_swap. Lightweight read tier; use this before any value-moving swap.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Input token mint address"},"outputMint":{"type":"string","description":"Output token mint address"},"amount":{"type":"string","description":"Raw amount to swap (unsigned integer string, e.g. '1000000')"},"slippageBps":{"type":"number","description":"Slippage threshold in basis points (e.g. 50 = 0.5%)"},"swapMode":{"type":"string","enum":["ExactIn","ExactOut"],"description":"Swap mode: fixed input or fixed output amount"},"onlyDirectRoutes":{"type":"boolean","description":"Limit routing to a single hop (default false)"},"restrictIntermediateTokens":{"type":"boolean","description":"Restrict intermediate tokens to a more stable set (default false)"},"platformFeeBps":{"type":"number","description":"Optional platform fee in basis points"},"maxAccounts":{"type":"number","description":"Approximate maximum account budget for the route (default 64)"}},"required":["inputMint","outputMint","amount"],"description":"magicblock swapQuote input schema. Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock swapQuote","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_swap","title":"magicblock swap","description":"Build an unsigned swap transaction from a quote. 'public' mode passes through Jupiter. 'private' mode routes output through a scheduled private transfer: requires destination, minDelayMs (string ms), maxDelayMs (string ms, <= 600000), and split (1-14). The API appends a schedule_private_transfer instruction that registers a one-shot Hydra crank for delivery. Legacy transactions are not allowed in private mode. Agents must continue with sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction; never write temporary signing scripts or read keypair JSON. Value-action fee applies.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"userPublicKey":{"type":"string","description":"Wallet that will sign the swap transaction"},"quoteResponse":{"type":"object","properties":{},"description":"Quote response object from magicblock_swapQuote (pass as-is)"},"visibility":{"type":"string","enum":["public","private"],"description":"'public' = transparent Jupiter pass-through, 'private' = output routed through scheduled private transfer"},"destination":{"type":"string","description":"Final private-transfer recipient (required when visibility='private')"},"minDelayMs":{"type":"string","description":"Private only. Earliest (ms) the queued transfer may settle"},"maxDelayMs":{"type":"string","description":"Private only. Latest (ms) the queued transfer may settle (<= 600000)"},"split":{"type":"number","description":"Private only. Number of queue entries to split across (1-14)"},"clientRefId":{"type":"string","description":"Private only. Optional u64 client correlation ID"},"validator":{"type":"string","description":"Optional validator pubkey for the transfer-queue PDA"},"wrapAndUnwrapSol":{"type":"boolean","description":"Auto wrap/unwrap native SOL when needed (default true)"},"asLegacyTransaction":{"type":"boolean","description":"Build a legacy transaction (not allowed when visibility=private, default false)"}},"required":["userPublicKey","quoteResponse"],"description":"magicblock swap input schema. Intent: Solana value-action or trading workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock swap","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_initializeMint","title":"magicblock initializeMint","description":"Build an unsigned transaction that initializes a validator-scoped transfer queue for a mint. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Builder fee applies.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Wallet pubkey that will sign the transaction"},"mint":{"type":"string","description":"SPL mint to initialize a transfer queue for"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey"}},"required":["owner","mint"],"description":"magicblock initializeMint input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock initializeMint","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_isMintInitialized","title":"magicblock isMintInitialized","description":"Check whether a mint has a validator-scoped transfer queue on the ephemeral RPC..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"SPL mint to check"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey"}},"required":["mint"],"description":"magicblock isMintInitialized input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock isMintInitialized","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_ensureCrank","title":"magicblock ensureCrank","description":"Force a transfer queue crank attempt for a mint. Use this after a private transfer or private swap if the Hydra delivery crank has not yet delivered funds to the recipient. The API verifies the validator-scoped transfer queue and forces one crank attempt, returning the crank signature. Read-only tier: this does not move funds, it triggers the existing queued delivery..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"SPL mint to crank the transfer queue for"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey. Defaults to the well-known MagicBlock validator (MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57)"}},"required":["mint"],"description":"magicblock ensureCrank input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock ensureCrank","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_requestRandomness","title":"magicblock requestRandomness","description":"Request provably fair on-chain randomness from the MagicBlock VRF oracle (Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz). Builds an unsigned transaction that invokes request_randomness on the VRF program. Use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction; do not create local signing scripts. The oracle queue defaults to the base-layer queue (Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh); set ephemeral=true to use the ER queue for delegated programs. Builder fee applies.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"payer":{"type":"string","description":"Wallet pubkey that will pay for the request and sign the transaction"},"callbackProgramId":{"type":"string","description":"Program ID of the callback program (the program that will consume the randomness)"},"callbackDiscriminator":{"type":"string","description":"Base58 or hex discriminator for the callback instruction in your program"},"callerSeed":{"type":"string","description":"Seed string for the VRF request — committed before randomness is produced. The seed is hashed to 32 bytes."},"callbackAccounts":{"type":"array","items":{"type":"object","properties":{"pubkey":{"type":"string","description":"Account pubkey"},"isSigner":{"type":"boolean","description":"Whether the account is a signer"},"isWritable":{"type":"boolean","description":"Whether the account is writable"}},"description":"Callback account metadata"},"description":"Accounts to pass to the callback instruction"},"ephemeral":{"type":"boolean","description":"Use the Ephemeral Rollup oracle queue instead of the base-layer queue (default false)"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["payer","callbackProgramId","callbackDiscriminator","callerSeed","callbackAccounts"],"description":"magicblock requestRandomness input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock requestRandomness","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"magicblock_getRandomnessResult","title":"magicblock getRandomnessResult","description":"Check whether a VRF request has been fulfilled by reading the RandomnessRequest account on-chain. Returns fulfilled status, random bytes (if available), and the request metadata..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"requestKey":{"type":"string","description":"VRF request PDA key from magicblock_requestRandomness"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["requestKey"],"description":"magicblock getRandomnessResult input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"magicblock getRandomnessResult","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"sap_memory_record","title":"Record Tool Call","description":"Free local tool. Records a tool call execution in the agent memory database (SQLite FTS5). Auto-call after any paid or significant tool call to build searchable history. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"toolName":{"type":"string","description":"MCP tool name that was called."},"sessionId":{"type":"string","description":"Optional session identifier."},"callerProfile":{"type":"string","description":"Optional signer profile used."},"input":{"type":"string","description":"JSON-serialized tool input."},"output":{"type":"string","description":"JSON-serialized tool output (truncated to 8KB)."},"outcome":{"type":"string","enum":["success","error","partial"],"description":"Execution outcome."},"costUsd":{"type":"number","description":"x402 cost in USD if the tool was paid."},"txSignature":{"type":"string","description":"Solana transaction signature if applicable."},"latencyMs":{"type":"number","description":"Execution latency in milliseconds."}},"required":["toolName","outcome"],"description":"Record Tool Call input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Record Tool Call","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"sap_memory_search","title":"Search Tool Call History","description":"Free local tool. Full-text search (FTS5) across tool call history. Find patterns, failures, and successes by natural language query. No x402 charge.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"FTS5 search query (e.g. \"swap failure slippage\")."},"toolName":{"type":"string","description":"Filter by tool name."},"outcome":{"type":"string","enum":["success","error","partial"],"description":"Filter by outcome."},"limit":{"type":"number","description":"Max results. Default 20, max 100."},"offset":{"type":"number","description":"Pagination offset."},"sort":{"type":"string","enum":["relevance","newest","oldest"],"description":"Sort order. Default relevance."}},"required":["query"],"description":"Search Tool Call History input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Search Tool Call History","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_memory_summarize","title":"Create Agent Memory","description":"Free local tool. Creates an LLM-compressed summary memory from tool call patterns. The agent calls this after analyzing search results to persist lessons, patterns, failures, or successes. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"memoryType":{"type":"string","enum":["lesson","pattern","failure","success"],"description":"Type of memory."},"category":{"type":"string","description":"Tool category (e.g. \"jupiter\", \"adrena\", \"premium\")."},"summary":{"type":"string","description":"LLM-compressed summary text. Max 4KB."},"sourceToolCalls":{"type":"string","description":"JSON array of tool_call IDs that were the source."},"relevance":{"type":"number","description":"Initial relevance score 0-1. Default 0.8."},"expiresAt":{"type":"string","description":"ISO 8601 expiry. Null = never expires."}},"required":["memoryType","category","summary"],"description":"Create Agent Memory input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Create Agent Memory","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"sap_memory_recall","title":"Recall Agent Memories","description":"Free local tool. Returns the most relevant memories for a category, ordered by decayed relevance. Use this for prompt injection — the agent gets top N memories for the task at hand. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Tool category to recall memories for."},"limit":{"type":"number","description":"Max memories. Default 5."}},"required":["category"],"description":"Recall Agent Memories input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Recall Agent Memories","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_memory_prune","title":"Prune Old Memories","description":"Free local tool. Removes expired memories and memories with relevance below threshold after decay. Also archives tool call records older than retention period. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"minRelevance":{"type":"number","description":"Minimum decayed relevance to keep. Default 0.05."},"archiveDays":{"type":"number","description":"Archive tool calls older than N days. Default 90."}},"description":"Prune Old Memories input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Prune Old Memories","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_strategy_save","title":"Save Strategy","description":"Free local tool. Saves or updates a strategy JSON in ~/.config/mcp-sap/strategies/. Strategies persist agent learnings (e.g. buyback rules, slippage thresholds, risk limits) across sessions. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Strategy category (defi, trading, meme, payments, premium)."},"name":{"type":"string","description":"Strategy name (e.g. \"volatility-breakout\")."},"config":{"type":"string","description":"JSON strategy configuration."},"activate":{"type":"boolean","description":"Whether to activate the strategy immediately. Default true."}},"required":["category","name","config"],"description":"Save Strategy input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Save Strategy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_strategy_load","title":"Load Strategy","description":"Free local tool. Loads a strategy JSON by category and name. Returns the full strategy config including version and active status. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Strategy category."},"name":{"type":"string","description":"Strategy name."}},"required":["category","name"],"description":"Load Strategy input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Load Strategy","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_strategy_list","title":"List Strategies","description":"Free local tool. Lists all strategies, optionally filtered by category and active status. No x402 charge.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Optional category filter."},"activeOnly":{"type":"boolean","description":"Only return active strategies. Default false."}},"description":"List Strategies input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"List Strategies","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_strategy_activate","title":"Activate/Deactivate Strategy","description":"Free local tool. Activates or deactivates a strategy by category and name. Inactive strategies are skipped during agent execution. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Strategy category."},"name":{"type":"string","description":"Strategy name."},"active":{"type":"boolean","description":"True to activate, false to deactivate."}},"required":["category","name","active"],"description":"Activate/Deactivate Strategy input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Activate/Deactivate Strategy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_stream_buffer","title":"Buffer Stream Event","description":"Free local tool. Buffers a premium stream event in the local SQLite database for offline consumption. Deduplicates by (streamType, eventId). No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"streamType":{"type":"string","description":"Stream type (e.g. \"pyth-price\", \"meme-alerts\", \"volatility\")."},"eventId":{"type":"string","description":"Unique event ID from the provider."},"eventType":{"type":"string","description":"Event type (e.g. \"price.tick\", \"volatility.breakout\")."},"payload":{"type":"string","description":"JSON-serialized event payload."}},"required":["streamType","eventId","eventType","payload"],"description":"Buffer Stream Event input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Buffer Stream Event","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_stream_consume","title":"Consume Stream Events","description":"Free local tool. Returns unconsumed stream events for a stream type (FIFO order) and marks them consumed. Use this instead of sap_premium_stream_poll for local offline access. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"streamType":{"type":"string","description":"Stream type to consume."},"limit":{"type":"number","description":"Max events to consume. Default 20."}},"required":["streamType"],"description":"Consume Stream Events input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Consume Stream Events","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"sap_stream_replay","title":"Replay Stream Events","description":"Free local tool. Returns all events (consumed + unconsumed) for a stream type within a time range. Used for backtest and analysis. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"streamType":{"type":"string","description":"Stream type to replay."},"since":{"type":"string","description":"ISO 8601 timestamp. Events created after this time."},"limit":{"type":"number","description":"Max events. Default 100."}},"required":["streamType"],"description":"Replay Stream Events input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Replay Stream Events","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_audit_query","title":"Query Audit Trail","description":"Free local tool. Queries the immutable audit trail for x402 settlements and transaction signatures. Search by tool name, outcome, or time range. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"FTS5 search query."},"outcome":{"type":"string","enum":["success","error","partial"],"description":"Filter by outcome."},"limit":{"type":"number","description":"Max results. Default 20."}},"description":"Query Audit Trail input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Query Audit Trail","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_audit_record","title":"Record Audit Entry","description":"Free local tool. Records a manual audit entry in the tool call history. Use this to log custom events (e.g. manual interventions, external transactions, policy decisions). No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"toolName":{"type":"string","description":"Label for the audit entry."},"input":{"type":"string","description":"JSON details."},"output":{"type":"string","description":"JSON result."},"outcome":{"type":"string","enum":["success","error","partial"],"description":"Outcome."},"txSignature":{"type":"string","description":"Transaction signature if applicable."}},"required":["toolName","outcome"],"description":"Record Audit Entry input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Record Audit Entry","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"sap_audit_stats","title":"Memory & Audit Stats","description":"Free local tool. Returns aggregate statistics about the memory database: tool call counts, memory counts, stream buffer counts, outcome breakdown, DB size. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{},"description":"Memory & Audit Stats input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Memory & Audit Stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_hermes_search","title":"Search Hermes Sessions","description":"Free local tool. Searches Hermes Agent session history for relevant past conversations. Enables cross-session context recall. If Hermes is not installed, returns empty results. No x402 charge.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language search query."},"limit":{"type":"number","description":"Max results. Default 5."}},"required":["query"],"description":"Search Hermes Sessions input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Search Hermes Sessions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_hermes_recent","title":"Recent Hermes Sessions","description":"Free local tool. Returns recent Hermes Agent sessions for context injection. Use this at session start to recall what the agent worked on recently. If Hermes is not installed, returns empty results. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"Max sessions. Default 3."}},"description":"Recent Hermes Sessions input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Recent Hermes Sessions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"sap_strategy_execute","title":"Execute Strategy","description":"Free local tool. Loads a saved strategy by category and name, resolves trading parameters, validates against trading policy, and returns either a dry-run simulation or a ready-to-sign transaction. When dryRun is true, returns resolved params only. When dryRun is false, builds a transactionBase64. No x402 charge for this tool itself.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Strategy category (e.g. \"trading\")."},"name":{"type":"string","description":"Strategy name (e.g. \"bonk-short-v1\")."},"dryRun":{"type":"boolean","description":"When true, simulate only. When false, build tx. Default true."},"adjustCollateralUsd":{"type":"number","description":"Override collateral USD."},"adjustLeverage":{"type":"number","description":"Override leverage."}},"required":["category","name"],"description":"Execute Strategy input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Execute Strategy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"sap_trade_journal","title":"Append Trade Journal Entry","description":"Free local tool. Appends a trade entry to the journal. Call after every trade open/close/SL/TP/liquidation for tracking and P&L analysis. No x402 charge.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["open","close","liquidation","sl_triggered","tp_triggered"],"description":"Trade event type."},"market":{"type":"string","description":"Market symbol."},"side":{"type":"string","enum":["long","short"],"description":"Position side."},"collateralUsd":{"type":"number","description":"Collateral in USD."},"leverage":{"type":"number","description":"Leverage multiplier."},"priceUsd":{"type":"number","description":"Entry or exit price."},"stopLossUsd":{"type":"number","description":"Stop loss price."},"takeProfitUsd":{"type":"number","description":"Take profit price."},"txSignature":{"type":"string","description":"Transaction signature."},"positionAddress":{"type":"string","description":"Position PDA address."},"feesPaidUsd":{"type":"number","description":"Fees paid in USD."},"status":{"type":"string","enum":["open","closed","liquidated"],"description":"Position status."},"pnlUsd":{"type":"number","description":"P&L in USD."},"notes":{"type":"string","description":"Optional notes."}},"required":["type","market","side","collateralUsd","leverage","priceUsd","feesPaidUsd","status"],"description":"Append Trade Journal Entry input schema. Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Append Trade Journal Entry","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"sap_trade_journal_query","title":"Query Trade Journal","description":"Free local tool. Queries the trade journal with filters. Returns matching entries with count and total P&L. No x402 charge.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Filter by market."},"type":{"type":"string","enum":["open","close","liquidation","sl_triggered","tp_triggered"],"description":"Filter by type."},"status":{"type":"string","enum":["open","closed","liquidated"],"description":"Filter by status."},"from":{"type":"string","description":"Start date ISO 8601."},"to":{"type":"string","description":"End date ISO 8601."},"limit":{"type":"number","description":"Max results. Default 100."}},"description":"Query Trade Journal input schema. Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."},"outputSchema":{"type":"object","properties":{"content":{"type":"array","description":"MCP content blocks returned to the caller.","items":{"type":"object","properties":{"type":{"type":"string","description":"MCP content block type, usually text."},"text":{"type":"string","description":"Human-readable JSON or text returned by the tool."}},"required":["type"]}},"isError":{"type":"boolean","description":"True when the tool result represents an application-level error."}},"required":["content"]},"annotations":{"title":"Query Trade Journal","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}],"resources":[],"resourceTemplates":[{"uriTemplate":"sap://registry/agent/{pubkey}","name":"SAP Agent","description":"Agent registration data and capabilities","mimeType":"application/json"},{"uriTemplate":"sap://registry/global","name":"SAP Global Registry","description":"Global registry of all SAP agents","mimeType":"application/json"},{"uriTemplate":"sap://memory/{agent}","name":"SAP Memory Vault","description":"Access agent memory vault and session ledger data","mimeType":"application/json"},{"uriTemplate":"sap://execution-proof/{hash}","name":"SAP Execution Record","description":"Proof of execution records and audit trails","mimeType":"application/json"},{"uriTemplate":"sap://reputation/{pubkey}","name":"SAP Reputation","description":"Agent reputation and attestation data","mimeType":"application/json"},{"uriTemplate":"sap://tool-schema/{toolName}","name":"SAP Tool Schema","description":"Tool schema definitions and metadata","mimeType":"application/json"},{"uriTemplate":"sap://config/current","name":"Current SAP MCP Configuration","description":"The active configuration for this SAP MCP server instance, including profile, wallet, and security settings.","mimeType":"application/json"},{"uriTemplate":"sap://profile/active","name":"Active SAP MCP Profile","description":"The currently active agent profile and list of all available profiles.","mimeType":"application/json"},{"uriTemplate":"sap://stats/network","name":"SAP Network Statistics","description":"SAP network counters from synapse-sap-sdk DiscoveryRegistry and GlobalRegistry.","mimeType":"application/json"}],"prompts":[{"name":"register-sap-agent","description":"Step-by-step guide to register as SAP agent on Solana blockchain","arguments":[{"name":"agentType","description":"Type of agent: \"citizen\", \"merchant\", \"hybrid\" (default: \"citizen\")","required":false},{"name":"network","description":"Solana network: \"mainnet\", \"devnet\", \"testnet\" (default: \"devnet\")","required":false},{"name":"includeSNS","description":"Register SNS domain: \"yes\", \"no\" (default: \"no\")","required":false}]},{"name":"analyze-sap-agent","description":"Analyze SAP agent registration, capabilities, reputation, and on-chain activity","arguments":[{"name":"agentWallet","description":"Agent wallet address to analyze","required":true},{"name":"includeTransactions","description":"Include transaction history: \"yes\", \"no\" (default: \"no\")","required":false},{"name":"detailed","description":"Include detailed PDA analysis: \"yes\", \"no\" (default: \"no\")","required":false}]},{"name":"generate-sap-integration","description":"Generate code snippets and configuration for integrating SAP SDK into a TypeScript project","arguments":[{"name":"projectType","description":"Type of project: \"nodejs\", \"browser\", \"nextjs\", \"tauri\"","required":true},{"name":"features","description":"Comma-separated features: \"agent\", \"escrow\", \"vault\", \"tools\", \"attestation\"","required":false},{"name":"cluster","description":"Solana cluster: \"mainnet-beta\", \"devnet\", \"testnet\" (default: \"devnet\")","required":false}]},{"name":"debug-sap-error","description":"Systematic debugging workflow for SAP SDK errors, transaction failures, and on-chain issues","arguments":[{"name":"errorMessage","description":"The error message or transaction error code","required":true},{"name":"transactionSignature","description":"Optional transaction signature for on-chain lookup","required":false},{"name":"cluster","description":"Solana cluster where the error occurred","required":false}]},{"name":"explain-x402-settlement","description":"Explain x402 payment protocol, settlement flows, and escrow mechanics for AI agent payments","arguments":[{"name":"includeCode","description":"Include current SAP MCP JSON tool-call examples: \"typescript\", \"both\", or omit for default examples.","required":false},{"name":"detailed","description":"Include detailed cryptographic proofs: \"yes\", \"no\" (default: \"no\")","required":false}]},{"name":"create-paid-api","description":"Create paid API endpoint with x402 payment protection for AI agent services","arguments":[{"name":"serviceName","description":"Name of the API service","required":true},{"name":"priceSol","description":"Price per call in SOL (e.g., 0.001)","required":true},{"name":"endpoint","description":"API endpoint path (e.g., /api/v1/analyze)","required":true},{"name":"timeout","description":"Execution timeout in seconds (default: 300)","required":false}]},{"name":"explain-proof-of-execution","description":"Explain proof-of-execution cryptography, hash chains, and audit trail verification for AI agent calls","arguments":[{"name":"executionHash","description":"Execution hash to analyze","required":false},{"name":"agentWallet","description":"Agent wallet for context","required":false},{"name":"includeCode","description":"Include code examples: \"rust\", \"typescript\", \"both\" (default: \"typescript\")","required":false}]},{"name":"verify-execution-proof","description":"Verify execution proofs, validate hash chains, and audit AI agent call histories on-chain","arguments":[{"name":"proofData","description":"Proof data or receipt JSON to verify","required":true},{"name":"agentWallet","description":"Agent wallet that generated the proof","required":false},{"name":"expectedHash","description":"Expected execution hash for comparison","required":false},{"name":"onChain","description":"Verify on-chain: \"yes\", \"no\" (default: \"yes\")","required":false}]},{"name":"sap-agent-start","description":"Start SAP MCP agent mode. Use when the user says \"Start SAP MCP\", \"Initialize SAP MCP\", \"Load SAP\", or asks the agent to use SAP MCP.","arguments":[{"name":"goal","description":"Optional user goal to focus the startup, such as wallet balance, agent registration, SNS, swap, or analytics.","required":false}]},{"name":"sap-agent-context","description":"Get complete context about the current SAP MCP configuration, active profile, redacted signer status, and available capabilities. Use this before any SAP operations.","arguments":[{"name":"includeWallet","description":"Include redacted signer status only; keypair paths and bytes are never exposed (default: false)","required":false},{"name":"includeProfiles","description":"Include list of all available profiles (default: true)","required":false}]},{"name":"sap-agent-intent-router","description":"Route a user SAP MCP request to the correct hosted/read, paid-call, local-signing, unsigned-builder, or repair flow. Use before paid/write operations and after routing errors.","arguments":[{"name":"userIntent","description":"Plain-language user goal, e.g. \"check balance\", \"register my agent\", \"update metadata image\", \"swap SOL to USDC\", \"create escrow\", or \"is SAP connected?\".","required":false},{"name":"targetTool","description":"Optional exact MCP tool name being considered. Use exact names from tools/list; do not rewrite hyphenated names.","required":false},{"name":"lastError","description":"Optional last error string or JSON-RPC error data. The router maps common SAP/x402/MCP errors to the next safe tool.","required":false}]}]}