Skip to main content
Glama

create_execution_intent

Destructive

Create a propose-only execution intent; returns an approval URL to hand to the user.

Lane 1 (non-custodial default): builds the unsigned swap transaction server-side, persists it as an intent, and returns {intent_id, approval_url}. NOTHING executes until the user opens the approval URL in their browser and signs with their own wallet. This tool never signs and never sees a key. amount is in input-token base units. The quote includes the technology service fee. After the user approves, poll get_intent_status and report ONLY the persisted on-chain state (CONFIRMED before any success claim).

FEE PARITY (follow-up to ): the on-chain technology service fee baked into the unsigned tx is now resolved through the SAME discount-aware pipeline as jupiter_swap -- the tokenized-security classification is resolved ONCE here via the authoritative registry-backed classifier (parity with jupiter_swap's call site) and, together with pay_in_crank, determines the quoted platformFeeBps. Without this an intent proposed via this Lane 1 rail could be fee-classified differently from the identical swap executed via jupiter_swap. Decision: pay_in_crank IS exposed here (not just is_security) -- the fee rate is a quote-time input baked into the unsigned tx before the user ever reaches the approve page, so an agent must be able to request the pay-in-$CRANK discount at proposal time, same as it can on the direct swap path.

GEO GATE: when either leg is a tokenized security this call is geo-gated (Reg S = no US persons) and OFAC-screened, same control jupiter_swap/trade_equity enforce -- jurisdiction declares the caller's jurisdiction once, ip is the caller's origin IP for the Reg-S IP layer.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ipNo
amountYes
caller_idNo
input_tokenYes
jurisdictionNo
output_tokenYes
pay_in_crankNo
slippage_bpsNo
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A3.9/5.0
Behavior5/5

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

Annotations (readOnlyHint=false, destructiveHint=true, not idempotent, openWorld=true) are dramatically enriched by text explaining the timing and locus of side effects: 'NOTHING executes until the user opens the approval URL and signs', 'never signs and never sees a key', the distinction between proposing an intent (this tool) and executing (user action), fee-quote-baked-into-tx semantics, and the Reg S/OFAC compliance layer for security tokens. This converts a terse 'destructive + not idempotent' annotation into an actionable mental model.

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

Conciseness3/5

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

The definition is genuinely front-loaded (the single most important fact — propose-only, user approval required — is first), and the return shape {intent_id, approval_url} is repeated for emphasis. However, at ~400 words it is long, and the FEE PARITY paragraph is bloated with internal design reasoning ('Decision: pay_in_crank IS exposed here...') and rationale ('Without this an intent proposed via this Lane 1 rail could be fee-classified differently') that an agent doesn't need to invoke the tool. There's also an empty link '(follow-up to )' and the return value is described twice. The meaningful info could be cut in half.

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

Completeness3/5

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

For a tool with 0% schema coverage and full behavioral annotations, the description covers the most safety-critical aspects: keys are never touched, nothing executes without user signature, fee parity is guaranteed, geo/OFAC gating applies, and amount units are pinned down. But it omits several agent-relevant behaviors: what happens on slippage/who passes validator keys, retry semantics for a non-idempotent call (the existence of idempotency_key is mentioned nowhere), and whether wallet_address must be pre-verified. The description is rich where it matters for compliance and safety, but thin on the operational edge cases an agent would hit when actually retrying or recovering.

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

Parameters3/5

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

With 0% schema coverage and 11 parameters, the description carries the full documentation burden and only partially delivers. It explicitly documents amount ('in input-token base units'), implicitly documents pay_in_crank (quoted via the discount-aware classifier pipeline), jurisdiction (declared once for Reg S), and ip (origin for the identity-proof layer). But slippage_bps semantics on an unsigned proposal, allow_unverified behavior, idempotency_key semantics on a non-idempotent call, wallet_address binding, and the two token params are entirely undocumented.

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

Purpose4/5

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

The opening line 'Create a propose-only execution intent; returns an approval URL to hand to the user' pairs a specific verb with a clear resource and a distinctive behavioral qualifier ('propose-only') that separates this from a direct execution tool. The 'Lane 1 (non-custodial default)' framing further clarifies scope. It doesn't earn a 5 because it never names a sibling to differentiate from (e.g., jupiter_swap for direct execution), so an agent must infer the exact nature of the alternative path.

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?

Provides explicit follow-up guidance — 'poll get_intent_status and report ONLY the persisted on-chain state (CONFIRMED before any success claim)' — which is a clear directive on how to chain this tool with its sibling. The Geo Gate section tells agents which control applies ('same control jupiter_swap/trade_equity enforce') and the non-custodial framing implies the correct invocation context. However, it never explicitly says 'use X instead when you need direct (custodial) execution,' so the when-NOT-to call decision is left to inference.

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
Disambiguation2/5

Multiple tools overlap significantly: close_perp_position vs perp_close, get_leaderboard vs get_score_leaderboard vs get_strategy_leaderboard, get_venue_status vs get_all_venues_status, send_token_social vs bulk_send_social, and get_crank_score vs get_score. Several read-only tools have nearly identical purposes, and the descriptions do not always clarify boundaries.

Naming Consistency4/5

Most tools follow a consistent verb_noun snake_case pattern (get_balances, create_strategy, set_alert, list_webhooks). However, there are deviations like 'lst_swap', 'jupiter_swap', 'flash_loan', 'sr_backtest', and the use of both 'get_' and 'list_' for reads, plus category prefixes like 'perp_' and 'strategy_' that vary in order. Overall still readable and predictable.

Tool Count1/5

177 tools is an extreme count for any server, far exceeding the 25+ threshold for 'too many'. Even a full DeFi platform does not need this many separate operations; the surface is overwhelming and clearly not well-scoped.

Completeness3/5

The domain (Solana DeFi trading) is covered extensively across swaps, perps, lending, staking, strategies, signals, and support. However, there are notable gaps: no lend_withdraw, no direct way to close a lending position, no spot order cancellation (though aggregator-based swaps may not need it), and a general lack of tiered account management. The huge number of tools makes it hard to identify missing lifecycle steps.

Resources