trade-router-mcp
OfficialThe trade-router-mcp server provides a non-custodial Solana trading engine for AI agents, enabling wallet management, market data, direct swaps, advanced conditional orders, and order management via TradeRouter.ai.
Wallet & Account
get_wallet_address— Retrieve the configured wallet's public Solana addressget_holdings— Scan and list all SPL token holdings for a wallet
Swapping
build_swap— Build an unsigned swap transaction across multiple DEXes (Raydium, PumpSwap, Orca, Meteora)submit_signed_swap— Submit a pre-signed transaction via MEV-protected Jito bundleauto_swap— One-shot build + sign + submit swap in a single call
Advanced Order Types
place_limit_order— Market-cap-based limit buy or sellplace_trailing_order— Trailing stop or trailing buyplace_twap_order— Time-weighted average price buy or sellplace_limit_twap_order— Limit trigger → TWAP executionplace_trailing_twap_order— Trailing trigger → TWAP executionplace_limit_trailing_order— Limit trigger → trailing stopplace_limit_trailing_twap_order— Limit → trailing → TWAP combo
Order Management
list_orders— List all active orderscheck_order— Get status of a specific order by IDcancel_order— Cancel an active orderextend_order— Extend an order's expiry timeget_fill_log— Retrieve a log of filled order events
Market Data & Visualization
get_mcap— Fetch market cap and price data for one or more tokensget_flex_card— Get a trade card PNG URL for a wallet + token pair
WebSocket & Connectivity
connect_websocket— Establish a persistent WebSocket connection (required before placing orders)connection_status— Check current WebSocket connection state
Allows integration with LangChain by providing MCP tools that can be used with LangChain's MultiServerMCPClient for building AI agent workflows.
Provides tools to interact with the Solana blockchain for swapping tokens, placing limit/trailing/TWAP/combo orders, checking holdings, and managing orders.
@traderouter/trade-router-mcp
A Model Context Protocol server for TradeRouter.ai — non-custodial Solana swap, limit, trailing, DCA, TWAP, and combo-order engine for AI agents.
Is this safe?
Yes, and here's exactly why. The private key is read once from TRADEROUTER_PRIVATE_KEY, used for local signing with @solana/web3.js + tweetnacl, and never transmitted, logged, or persisted. Only signed transactions leave your machine. Server messages are Ed25519-verified against a hard-coded trust anchor. See SECURITY.md for the full threat model, data-flow diagram, and permissions manifest.
Signing flow:
Agent calls
build_swap→ MCP sends wallet address (public key) to api.traderouter.aiAPI returns an unsigned transaction
MCP signs the tx locally using
TRADEROUTER_PRIVATE_KEYThe signed transaction is submitted to
/protect(Jito MEV-protected bundle)Server confirms and returns balance changes. The private key never crosses the network.
Related MCP server: RefundYourSOL
Requirements
Node.js ≥ 18
A Solana wallet private key in base58 format (use a dedicated trading wallet, not your main holdings)
Install
npx -y @traderouter/trade-router-mcpOr wire it into an MCP client (Claude Desktop, Cursor, Cline, etc.):
{
"mcpServers": {
"traderouter": {
"command": "npx",
"args": ["-y", "@traderouter/trade-router-mcp"],
"env": {
"TRADEROUTER_PRIVATE_KEY": "your_base58_private_key"
}
}
}
}OS | Claude Desktop config path |
macOS |
|
Windows |
|
Linux |
|
Environment variables
Variable | Required | Default | Purpose |
| ✅ | — | Solana wallet private key (base58). Local use only. |
| ❌ |
| Custom RPC for reads |
| ❌ | baked-in trust anchor | Override the server's Ed25519 trust anchor |
| ❌ | (unset) | Accept messages signed by this key in addition to the primary (key rotation) |
| ❌ |
| Verify server signatures on |
| ❌ |
| Verify server signatures on |
| ❌ |
| When |
Tools
Tool | Purpose |
| Get the configured wallet's public address |
| Build an unsigned swap transaction |
| Submit a manually signed transaction |
| Build + sign + submit in one call |
| Get token holdings for a wallet |
| Market cap and price for a token |
| Trade card PNG URL for wallet + token |
| Limit buy/sell by price or market cap |
| Trailing stop buy/sell |
| TWAP (time-weighted) buy/sell |
| Limit trigger → TWAP execution |
| Trailing trigger → TWAP execution |
| Limit trigger → trailing execution (single swap on trigger) |
| Limit trigger → trailing trigger → TWAP execution |
| List active orders for a wallet |
| Get status of a specific order |
| Cancel an active order |
| Extend an order's expiry |
| Register a wallet over the persistent WebSocket |
| Current WebSocket connection state |
| Log of filled orders |
REST endpoints (under the hood)
Endpoint | Purpose |
| Build unsigned swap (multi-DEX: Raydium, PumpSwap, Orca, Meteora) |
| Submit signed tx via Jito bundle — MEV-protected |
| Wallet scan — catches tokens standard RPC misses |
| Market cap + price |
| Trade card PNG generation |
| Persistent WebSocket for limits / trailing / DCA / TWAP / combo orders |
Trust anchor
The baked-in server public key is EXX3nRzfDUvbjZSmxFzHDdiSYeGVP1EGr77iziFZ4Jd4. Every order_filled, order_created, and twap_execution message from the server is verified with Ed25519 before being treated as authoritative. See SECURITY.md for details and the rotation mechanism (TRADEROUTER_SERVER_PUBKEY_NEXT).
Use with LangChain
Any MCP server works in LangChain via the official adapter:
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({
"traderouter": {
"command": "npx",
"args": ["-y", "@traderouter/trade-router-mcp"],
"transport": "stdio",
"env": {"TRADEROUTER_PRIVATE_KEY": "<base58>"},
},
})
tools = await client.get_tools()Fees
Flat 1% fee on swap volume, embedded in routing at /protect. No subscription, no API key, no monthly minimums. Read-only endpoints (/holdings, /mcap) are free.
Machine-readable specs (live on traderouter.ai)
URL | Format | Purpose |
OpenAPI 3.1 (JSON) | Canonical API contract — generate SDKs in any language | |
OpenAPI 3.1 (YAML) | Same spec, YAML format (regenerated from the JSON) | |
text | LLM-readable API guide (per llmstxt.org) | |
markdown | Anthropic Agent Skills format — full implementation guide | |
markdown | Threat model + data-flow diagram + permissions manifest (mirrors ./SECURITY.md here) | |
markdown | Unified changelog across the API / MCP server / Site version tracks |
Quick SDK generation:
# TypeScript
openapi-generator-cli generate -i https://traderouter.ai/openapi.yaml -g typescript-axios -o ./sdk-ts
# Python
openapi-generator-cli generate -i https://traderouter.ai/openapi.yaml -g python -o ./sdk-pySecurity disclosure
Email security@traderouter.ai or use GitHub Security Advisories on this repo. 48-hour acknowledgement. See SECURITY.md (or the hosted version if you'd rather link to a stable URL).
License
MIT. See LICENSE.
Changelog
See CHANGELOG.md.
Available Tools
21 toolsauto_swapB
Build + sign + submit in one step. Requires TRADEROUTER_PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| token_address | Yes | ||
| action | Yes | ||
| amount | No | ||
| holdings_percentage | No | ||
| slippage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it performs multiple operations in one step and requires a private key, but lacks details on side effects, error handling, or additional requirements. No annotations to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two pithy sentences, immediately informative without extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 6 parameters and no output schema, the description omits explanation of parameters and return value, severely limiting practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no information about the 6 parameters, failing to explain fields like holdings_percentage, slippage, or amount.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool combines build, sign, and submit in one step, differentiating it from siblings like build_swap and submit_signed_swap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only mentions the requirement of TRADEROUTER_PRIVATE_KEY but provides no guidance on when to use this tool versus alternatives like build_swap or submit_signed_swap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_swapA
Build an unsigned Solana swap tx via REST. Returns base58 swap_tx. Pass to submit_signed_swap or use auto_swap.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| token_address | Yes | ||
| action | Yes | ||
| amount | No | Lamports (buy only) | |
| holdings_percentage | No | Bps (sell only, 10000=100%) | |
| slippage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that the transaction is unsigned and returns base58, but lacks details on side effects, error conditions, or authentication needs. It gives the core behavioral trait but misses richer context expected for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, with no superfluous words. It front-loads the action and method in the first sentence, and the output and next steps in the second. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no output schema, and no annotations, the description is too sparse to fully understand the tool's behavior. It does not explain the return format beyond 'base58 swap_tx', nor error conditions or dependencies. Given the complexity, more detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only amount and holdings_percentage have descriptions). The description adds no parameter-level information, failing to compensate for the missing schema descriptions. For example, it does not explain wallet_address, token_address, action, or slippage beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it builds an unsigned Solana swap transaction via REST. It specifies the output (base58 swap_tx) and distinguishes from siblings by mentioning submit_signed_swap and auto_swap as next steps or alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage flow: build the unsigned tx, then either pass to submit_signed_swap or use auto_swap. However, it does not explicitly state when not to use this tool or contrast with other swap-related siblings beyond those two.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_orderC
Cancel an active limit or trailing order.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| order_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only states 'Cancel' without disclosing side effects, authorizations, or behavior for non-existent orders. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler, but could benefit from structured bullet points for clarity. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks details on return values, error cases, or steps to get order_id. Incomplete given the context of no output schema and no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description adds no meaning beyond parameter names; it does not explain what wallet_address or order_id represent or how to obtain them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it cancels active limit or trailing orders, with a specific verb and resource, and distinguishes from related tools like place_order variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like check_order or extend_order. No context on prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_orderB
Check the status of a specific order by order_id.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| order_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description suggests read-only but lacks details on side effects, auth, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Low complexity but lacks detail on return values or error conditions. Could be more helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 0%; description adds no info beyond parameter names. Does not explain wallet_address or order_id format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'check' and resource 'status of a specific order'. Distinguishes from siblings like cancel_order or list_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use when order_id is known, but no explicit guidance on when not to use or comparison with list_orders.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connection_statusC
Return live WS connection state for a wallet.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose side effects, whether the tool reads or creates state, or what 'connection state' entails. Insufficient behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded, but extremely minimal. While efficient, it lacks detail that would justify a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple input, the description fails to explain what 'live WS connection state' means or how to interpret results. Incomplete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool description adds no meaning to the 'wallet_address' parameter. Cannot infer its format or constraints from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and resource 'live WS connection state' scoped to 'a wallet'. It effectively distinguishes from sibling tools like connect_websocket.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or exclusions mentioned. The description lacks contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_websocketA
Connect WS for a wallet and wait until registered (up to 25s). Call before placing orders.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses connection and wait with timeout (up to 25s). Lacks details on idempotency, error handling, or what 'registered' means. Without annotations, more behavioral context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action and constraint. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and usage prerequisite. Missing return value or error scenario details, but simple tool with one parameter and clear context from sibling tools is adequately described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter 'wallet_address' has no schema description. Description mentions 'for a wallet' but doesn't specify format or constraints. Schema coverage is 0%, so description partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it connects a websocket for a wallet and waits for registration, with a specific timeout. It also explicitly says 'Call before placing orders,' distinguishing it from order placement siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call before placing orders,' providing clear when-to-use guidance. Does not mention alternatives or when not to use, but the context implies it's a prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extend_orderC
Extend an order's expiry. expiry_hours is the new total (1–336).
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| order_id | Yes | ||
| expiry_hours | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clarifies that 'expiry_hours is the new total', implying it overrides the previous expiry rather than adding to it. However, it does not disclose if the order must be active or any authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but could be better structured by front-loading the purpose and separating parameter details. It lacks a clear hierarchy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with three required parameters and no output schema, the description is minimal. It does not explain the return value, side effects, or whether the extension is conditional on order state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds meaning only for the expiry_hours parameter (new total). It provides no semantic help for wallet_address or order_id, leaving those unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Extend' combined with 'an order's expiry' clearly indicates the action and resource. It naturally distinguishes from siblings like cancel_order or place_limit_order by focusing on extending the expiry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., placing a new order with a longer expiry). There is no mention of prerequisites or scenarios where extension is applicable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fill_logC
Return all order_filled events received since process start (capped at 200).
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It mentions capping at 200 and start time but fails to disclose whether events persist, are deleted after retrieval, or require active connection. Behavior around event retention or stream versus snapshot is unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with key information (return all events, capped at 200). No filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks details about output format, error cases, and interaction with other tools (e.g., connect_websocket). No output schema, so return structure is wholly unspecified. Incomplete for a reliable tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter wallet_address is described only by its schema type (string). Description adds no format, example, or usage context. Schema coverage is 0%, and description does not compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'order_filled events' with specific constraints (since process start, capped at 200). It distinguishes from sibling tools like list_orders which likely list current orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_orders or check_order. Missing context about prerequisites (e.g., need to connect websocket first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_flex_cardC
Get the URL for a flex trade card PNG for a wallet and token. GET /flex. Returns the URL to display the image.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| token_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does not state that the operation is read-only, idempotent, or free of side effects. It merely says it returns a URL, leaving the agent to infer safety and side-effect profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences covering purpose and the return value. It is front-loaded and wastes no words. However, it could be slightly more detailed without becoming verbose, so it is not a perfect 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameter descriptions, the tool description is insufficiently complete. It does not explain what a 'flex trade card PNG' is, how the URL is generated, or any potential errors. The agent cannot fully understand the tool's behavior from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning to parameters. It only mentions 'wallet and token' without providing any details on format, examples, constraints, or types beyond the schema field names. This does little to help the agent provide correct values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to get a URL for a flex trade card PNG for a given wallet and token. It adds the HTTP method and endpoint, making the action unmistakable. This distinguishes it from sibling tools like auto_swap or list_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when no token address is available or for other image retrieval tools. The description does not mention any prerequisites or contexts where the tool is appropriate or inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_holdingsA
Scan SPL token holdings for a Solana wallet. Slow — up to 100s.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It reveals slowness, a key behavioral trait, but lacks details on read-only nature, error handling, or response characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences with no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the purpose and a critical performance note, but is incomplete regarding output format and error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not add any explanation, format, or example for the sole parameter 'wallet_address', providing minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (scan) and resource (SPL token holdings for a Solana wallet), and distinguishes from sibling tools like auto_swap and place_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes the tool is slow (up to 100s), guiding agents to consider latency. However, it does not provide explicit when-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mcapA
Get market cap (and price/pool) data for one or more token addresses. GET /mcap.
| Name | Required | Description | Default |
|---|---|---|---|
| tokens | Yes | Comma-separated Solana mint addresses |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It implies a read operation without mentioning destructive behavior, but it does not disclose authentication needs, rate limits, or data freshness. This is adequate for a simple getter but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus the endpoint, with no redundant words. It is front-loaded with the verb and resource, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter, no output schema, and no annotations, the description provides essential information. It could be improved by mentioning return format or limits, but it is largely sufficient for a straightforward read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the 'tokens' parameter already described as 'Comma-separated Solana mint addresses'. The description adds minimal extra meaning (e.g., 'for one or more token addresses'), but since coverage is high, the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'market cap (and price/pool) data', and the input 'token addresses'. It also mentions the HTTP endpoint 'GET /mcap'. This is specific and distinguishes from sibling tools like 'auto_swap' or 'place_limit_order'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool over alternatives, when not to use it, or any prerequisites. Given the context of many trading-related siblings, explicit guidelines would be valuable but are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_addressA
Derive the Solana wallet address from TRADEROUTER_PRIVATE_KEY. Call first at session start — also starts WebSocket connection.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool starts a WebSocket connection as a side effect, which goes beyond mere derivation. It does not mention prerequisites like the private key being set, but the description is transparent about the key action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The main action is front-loaded, and the side effect is stated concisely. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description explains the main function and side effect. It does not describe the return format of the wallet address, which is a minor gap, but overall the tool is simple enough that this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema description coverage is 100%. The description adds meaning by specifying the source (TRADEROUTER_PRIVATE_KEY), which is not in the schema. This compensates fully for the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it derives a Solana wallet address from TRADEROUTER_PRIVATE_KEY. The verb 'derive' is specific, and the resource is the wallet address. This tool is distinct from siblings like auto_swap or place_order, which handle trading operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly indicates 'Call first at session start' and mentions starting a WebSocket connection, providing clear temporal and contextual guidance. No alternative tools are listed, but the unique initialization role makes this sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ordersC
List all active limit/trailing orders for a wallet.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description indicates a read-only operation but does not disclose behavioral traits such as authentication requirements, rate limits, or potential side effects. It is minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is efficient and front-loaded, but it may be too minimal, sacrificing clarity on important details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple structure (one required parameter, no output schema), the description covers the basic purpose and scope. However, it omits details about the response format or any pagination limits, making it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'wallet_address' parameter beyond implying its purpose. No format, constraints, or additional context are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists all active limit/trailing orders for a wallet, using a specific verb and resource. It distinguishes from sibling tools like 'check_order' (single order) and 'cancel_order'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'check_order' or other order management tools. There is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_limit_orderC
Place a market-cap-based limit order over WS. action: sell|buy. target: bps vs current mcap at placement.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| token_address | Yes | ||
| action | Yes | ||
| target | Yes | ||
| amount | No | ||
| holdings_percentage | No | ||
| slippage | No | ||
| expiry_hours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions 'over WS' implying WebSocket usage but does not disclose behavioral traits like order lifetime, execution guarantees, or required permissions for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, concise but not well-structured. Lacks separation of concerns (e.g., parameters, behavior). Could be reorganized for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and no annotations, the description provides minimal context. Missing prerequisites, return values, and usage examples for a complex order placement tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description only explains the 'action' and 'target' parameters. The other six parameters (wallet_address, token_address, amount, holdings_percentage, slippage, expiry_hours) are not described, despite schema coverage being 0%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool places a market-cap-based limit order, specifying the action (sell/buy) and target as bps relative to market cap. This distinguishes it from sibling tools like trailing or TWAP orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., trailing, TWAP, or simple swaps). The description lacks context for selection among many similar siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_limit_trailing_orderC
Place a limit-then-trailing order. Wait for limit, then trailing phase; when trail triggers, single swap. action: limit_trailing_sell|limit_trailing_buy.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| token_address | Yes | ||
| action | Yes | ||
| target | Yes | ||
| trail | Yes | ||
| amount | No | ||
| holdings_percentage | No | ||
| slippage | No | ||
| expiry_hours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations, the description must fully convey behavior. It explains the two-phase execution ('Wait for limit, then trailing phase; when trail triggers, single swap'), which provides moderate transparency. However, it omits details on order lifecycle (expiry, cancellation, partial fills) and does not mention authorization requirements or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) but sacrifices necessary detail. While brevity is good, it omits vital information like parameter explanations and usage guidance. It is not well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, two-phase order), the description is far from complete. It lacks return value information (no output schema), does not explain how the limit and trail parameters interact, and provides no help for the agent to choose among many sibling order tools. The description is insufficient for reliable tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should explain all parameters. It only mentions the 'action' enum. Critical parameters like 'wallet_address', 'token_address', 'target', 'trail', 'amount', 'holdings_percentage', 'slippage', and 'expiry_hours' are left completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it places a limit-then-trailing order with a two-phase process (wait for limit, then trailing). It specifies the action field with the allowed values, distinguishing it from simple limit or trailing orders. However, it does not differentiate from the similar 'place_limit_trailing_twap_order' sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for limit-then-trailing orders but does not mention when to choose this over limit, trailing, or TWAP variations. No when-not-to-use or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_limit_trailing_twap_orderB
Place a limit-then-trailing-then-TWAP order. Limit → trail → on trail trigger, execute via TWAP. action: limit_trailing_twap_sell|limit_trailing_twap_buy.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| token_address | Yes | ||
| action | Yes | ||
| target | Yes | ||
| trail | Yes | ||
| frequency | Yes | ||
| duration | Yes | ||
| amount | No | Lamports (buy) or raw token units (sell) | |
| holdings_percentage | No | Sell only: bps | |
| slippage | No | ||
| expiry_hours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the behavioral sequence (limit → trailing → on trigger TWAP), which is valuable. However, with no annotations provided, the description carries full burden. It lacks details on side effects, required permissions, or failure behavior, so it is only moderately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that efficiently convey the order type and the action parameter. Every sentence adds value, and the structure is front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, 7 required, no output schema), the description is incomplete. It does not explain return values, side effects, or provide enough context for an agent to understand the full behavior. More details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 18%, so most parameters lack explanations. The description only clarifies the 'action' parameter's enum values. Parameters like 'target', 'trail', 'frequency', and 'duration' are left unexplained, making it hard for an agent to use correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Place' and the resource 'limit-then-trailing-then-TWAP order'. It explains the sequential logic and provides the action enum values. This differentiates it from sibling tools like place_limit_order, place_trailing_order, and place_twap_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention prerequisites, when-not-to-use, or compare with other order types. This forces the agent to infer use cases from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_limit_twap_orderB
Place a limit-then-TWAP order. Wait for limit target (bps), then execute via TWAP. action: limit_twap_sell|limit_twap_buy.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| token_address | Yes | ||
| action | Yes | ||
| target | Yes | Target mcap bps vs entry | |
| frequency | Yes | ||
| duration | Yes | ||
| amount | No | Lamports (buy) or raw token units (sell) | |
| holdings_percentage | No | Sell only: bps | |
| slippage | No | ||
| expiry_hours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only states the order type and action, omitting whether it's destructive, requires authorization, or has rate limits. No mention of order lifecycle or failure handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose. However, the parameter details could be better structured (e.g., listing key params). Still, it wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 params, no output schema, many siblings), the description lacks completeness. It does not explain return values, prerequisites, or how to use correctly. A more detailed description is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 30% (target, amount, holdings_percentage have descriptions). The description adds no parameter meanings beyond the action enum. For a 10-parameter tool, this is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool places a 'limit-then-TWAP order' and specifies the action enum values. This distinguishes it from siblings like place_limit_order or place_twap_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the order flow (wait for limit target, then TWAP) but provides no guidance on when to prefer this over other limit or TWAP combinations. No exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_trailing_orderC
Place a trailing stop or trailing buy over WS. action: trailing_sell|trailing_buy. trail: bps distance.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| token_address | Yes | ||
| action | Yes | ||
| trail | Yes | ||
| amount | No | ||
| holdings_percentage | No | ||
| slippage | No | ||
| expiry_hours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It mentions 'over WS' but does not explain order lifecycle, error handling, or state changes. Lacks details on connectivity, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise at two sentences, but brevity sacrifices clarity. Could be better structured with parameter explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no output schema and many siblings, this description is insufficient. Missing return info, parameter tips, and usage examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description only mentions action and trail, ignoring 6 other parameters like wallet_address, amount, slippage. No added meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool places a trailing stop or buy order, specifying action types and trail meaning. It distinguishes from some siblings like limit or TWAP orders, but does not explicitly differentiate from similar trailing order variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines on when to use this tool vs alternatives like place_limit_trailing_order or place_trailing_twap_order. No context about prerequisites or best practices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_trailing_twap_orderB
Place a trailing-then-TWAP order. When trail triggers, execute via TWAP. action: trailing_twap_sell|trailing_twap_buy.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| token_address | Yes | ||
| action | Yes | ||
| trail | Yes | Trail bps | |
| frequency | Yes | ||
| duration | Yes | ||
| amount | No | Lamports (buy) or raw token units (sell) | |
| holdings_percentage | No | Sell only: bps | |
| slippage | No | ||
| expiry_hours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It explains the order sequence but omits details on execution, side effects, permissions, or irreversibility. For a complex order with 10 parameters, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. First sentence states purpose, second adds action enum and trigger explanation. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 params, no output schema, and no annotations, the description is insufficient. It lacks details on edge cases, parameter semantics (e.g., how amount differs buy/sell), and what happens on trigger failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 30% (descriptions for trail, amount, holdings_percentage). The description adds the composite behavior logic but does not elaborate on parameters like frequency, duration, or slippage. It partially compensates but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Place a trailing-then-TWAP order' and explains the composite behavior (trail triggers, then TWAP execution). This distinguishes it from siblings like place_trailing_order and place_twap_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs. alternatives. The description implies usage for combined trailing/TWAP orders but does not contrast with other order types or specify prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_twap_orderC
Place a TWAP (time-weighted) buy or sell order. Splits total amount into frequency slices over duration seconds. action: twap_buy|twap_sell.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | ||
| token_address | Yes | ||
| action | Yes | ||
| frequency | Yes | Number of executions | |
| duration | Yes | Total run time in seconds (max 30 days) | |
| amount | No | Total lamports (buy) or raw token units (sell) | |
| holdings_percentage | No | Sell only: bps of holdings at creation | |
| slippage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only discloses the basic order splitting behavior. It does not mention side effects like order creation, destruction, authorization needs, or rate limits—important for a trading action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences, front-loading the key purpose. However, the second sentence could be integrated more efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no output schema, multiple sibling variants), the description omits critical context such as prerequisites, error handling, order lifetime, and differentiation from similar TWAP orders.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, placing the burden on the description to add meaning. The description only restates the action enum values already in the schema, adding no new insight for other parameters like wallet_address, token_address, or slippage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool places a TWAP buy or sell order and explains the slicing mechanism. However, it does not distinguish this TWAP order from sibling tools like place_limit_twap_order or place_trailing_twap_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as limit or trailing TWAP orders. There is no explicit context about prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_signed_swapB
Submit a base64-encoded signed Solana transaction via MEV-protected lane.
| Name | Required | Description | Default |
|---|---|---|---|
| signed_tx_base64 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses submission via an MEV-protected lane, which is a behavioral trait, but does not explain implications, success conditions, or other behaviors like gas fees or transaction status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key action and context without any wasted words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal annotations, the description is adequate but incomplete. It states the action but lacks context on return values, prerequisites, or how it integrates with sibling tools like build_swap. For a submission tool, more detail about expected outcomes would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description does not add meaning beyond the parameter name 'signed_tx_base64'. The name is self-explanatory, but no format, constraints, or examples are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Submit') and clearly identifies the resource ('base64-encoded signed Solana transaction via MEV-protected lane'). It distinguishes itself from siblings like build_swap or auto_swap by specifying that the transaction is already signed and submitted through an MEV-protected lane.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., after building and signing a swap). No explicit when-not-to-use or comparison to siblings is included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools target distinct actions (swap, order types, connection, data). However, the variety of order placement tools (limit, trailing, TWAP, and composite types) could cause minor confusion, though their descriptions differentiate them.
Tools follow a consistent verb_noun pattern in snake_case (e.g., cancel_order, get_holdings). Minor inconsistencies like 'connection_status' vs 'connect_websocket' and 'auto_swap' using an adverb instead of a verb are present but not disruptive.
21 tools is slightly high but justified by the server's breadth (swap, multiple order types, connection, data). Each tool serves a specific purpose, though some consolidation could reduce the count.
Covers core trading lifecycle: swaps, order placement/cancellation/check, connection setup, and data queries. Missing: historical trade log beyond in-memory events and token price discovery (only market cap), but these are minor gaps for the intended use.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Non-custodial DeFi tools for AI agents on Solana: swaps, perps, lending, staking, equities.
Safe Solana swaps for AI agents with risk checks, unsigned transactions, x402, and 3-bp fees.
Native Solana staking for AI agents. 26 MCP tools, one-shot signing, webhooks.
Non-custodial DeFi for AI agents: swaps, concentrated liquidity (V3/V4) zaps + ranges, 5 EVM chains
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI agents to interact with cryptocurrency ecosystems through wallet management, trading operations (swaps, DCA, limit orders), staking, and multi-chain support starting with Solana.37GPL 3.0
- AlicenseAqualityDmaintenanceSolana wallet cleanup, token trading on 12+ DEXes, and market data. Scan wallets for reclaimable SOL, close empty token accounts, burn dust tokens, buy/sell with Jito MEV protection. 7 tools for AI agents.417MIT
- FlicenseAqualityFmaintenanceDeFi execution and agent-to-agent economy tools for AI agents — swaps, yield, transfers, policy enforcement, trust scoring, A2A jobs, and P\&L across Ethereum, Base, Arbitrum, and Polygon.311
- AlicenseAqualityDmaintenanceEnables AI agents to read chain data, execute transactions, swap tokens, and manage wallets on Solana through 38 tools across 7 modules. Supports write operations with a private key and includes built-in prompts for common workflows.381MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TradeRouter/trade-router-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server