Skip to main content
Glama

magicblock swap

magicblock_swap
Destructive

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.

SAP 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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
splitNoPrivate only. Number of queue entries to split across (1-14)
validatorNoOptional validator pubkey for the transfer-queue PDA
maxDelayMsNoPrivate only. Latest (ms) the queued transfer may settle (<= 600000)
minDelayMsNoPrivate only. Earliest (ms) the queued transfer may settle
visibilityNo'public' = transparent Jupiter pass-through, 'private' = output routed through scheduled private transfer
clientRefIdNoPrivate only. Optional u64 client correlation ID
destinationNoFinal private-transfer recipient (required when visibility='private')
quoteResponseYesQuote response object from magicblock_swapQuote (pass as-is)
userPublicKeyYesWallet that will sign the swap transaction
wrapAndUnwrapSolNoAuto wrap/unwrap native SOL when needed (default true)
asLegacyTransactionNoBuild a legacy transaction (not allowed when visibility=private, default false)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint=false, destructiveHint=true), the description discloses that the tool only builds an unsigned transaction, appends a schedule_private_transfer instruction, registers a one-shot Hydra crank, and prohibits legacy transactions. It also warns against writing signing scripts and reading keypair JSON, and mentions the value-action fee. This provides rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and mode explanation, followed by operational guidance. It is reasonably concise, though there is slight redundancy between 'Value-action fee applies' and the SAP MCP guidance's 'Pricing: paid value-action'. Each sentence earns its place overall, but minor overlap prevents a perfect 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, nested objects, and an output schema, the description covers the essential behaviors: public/private routing, parameter relationships, legacy restriction, and the required follow-up workflow. Since an output schema exists, not describing return values is acceptable. The description is sufficiently complete for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all parameters with 100% description coverage, so baseline is 3. The description adds value by clarifying that destination, minDelayMs, maxDelayMs, and split are required in private mode, and that asLegacyTransaction is disallowed in private mode. This goes beyond individual schema descriptions to explain mode-dependent behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Build an unsigned swap transaction from a quote,' specifying the verb, resource, and input. It distinguishes public versus private modes and explains the private transfer mechanism, setting it apart from sibling tools like jupiter_swap by the added scheduling behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear when-to-use context: public mode passes through Jupiter, private mode requires specific parameters and disallows legacy transactions. It also directs agents through the post-build workflow (sap_preview_transaction, sap_sign_transaction, sap_submit_signed_transaction) and includes SAP MCP routing guidance. However, it does not explicitly name alternative tools to avoid, hence not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.2/5.0
Disambiguation4/5

Tools are organized by protocol prefix (e.g., adrena_, jupiter_, sap_) which helps distinguish domains. Within each protocol, tool names clearly indicate actions (e.g., openPosition, getQuote). However, with 360 tools, some cross-protocol overlaps (e.g., multiple swap tools) and many similar fetch tools in the sap_* family require careful reading of descriptions to disambiguate.

Naming Consistency4/5

Each protocol group follows a consistent naming convention (e.g., snake_case for adrena_, camelCase for 3land, sap_ prefix for SAP SDK tools). The mix of conventions across protocols is acceptable, though a uniform style would improve predictability. Minor inconsistency: hyphenated names like metaplex-nft_ vs underscores.

Tool Count2/5

360 tools is far too many for a well-scoped MCP server. This aggregates dozens of protocols and SAP-specific features, making navigation difficult. The server would benefit from being split into focused micro-servers (e.g., SAP identity, Jupiter DEX, NFT tools). The current count overwhelms the coherence of the set.

Completeness4/5

The tool set covers a vast range of Solana ecosystem activities: token operations, swaps, staking, NFT management, bridging, oracle data, identity registration, chat, escrow, subscriptions, and premium streaming. Major lifecycle operations are present, though some niche subdomains may have missing functions (e.g., detailed governance or lending management). Overall, it's comprehensive for the intended scope.