{"name":"io.github.TradeRouter/trade-router-mcp","slug":"traderouter-trade-router-mcp-228cf9","title":null,"description":"Non-custodial Solana swap & limit order engine for AI agents.","url":"https://mcp.market/server/traderouter-trade-router-mcp-228cf9","rating":null,"grade":"B","score":71,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce"],"presence":{"score":21,"stars":3,"forks":1,"downloads_week":74,"last_push_at":"2026-04-28T10:20:35.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/TradeRouter/trade-router-mcp","website":null,"version":"1.0.9","remotes":[],"packages":[{"registryType":"npm","identifier":"@traderouter/trade-router-mcp","version":"1.0.9","transport":{"type":"stdio"},"environmentVariables":[{"description":"Solana base58-encoded private key. Local signing only, never transmitted. See SECURITY.md.","isRequired":true,"isSecret":true,"name":"TRADEROUTER_PRIVATE_KEY"},{"description":"Optional RPC endpoint override (default https://api.mainnet-beta.solana.com).","name":"SOLANA_RPC_URL"},{"description":"Optional override for the server public key used to verify order_filled ed25519 signatures.","name":"TRADEROUTER_SERVER_PUBKEY"},{"description":"Optional second server public key accepted during key rotation.","name":"TRADEROUTER_SERVER_PUBKEY_NEXT"},{"description":"Default 'true'. Verify server signatures on order_filled / twap_execution.","name":"TRADEROUTER_REQUIRE_SERVER_SIGNATURE"},{"description":"Default 'true'. Verify server signatures on order_created.","name":"TRADEROUTER_REQUIRE_ORDER_CREATED_SIGNATURE"},{"description":"Default 'false'. When 'true', write-action tools (submit_signed_swap, auto_swap, place_*_order, cancel_order, extend_order) short-circuit and return { dry_run: true, ... } instead of calling the API. Read-only tools execute normally.","name":"TRADEROUTER_DRY_RUN"}]}],"tools":[{"name":"auto_swap","description":"Build + sign + submit in one step. Requires TRADEROUTER_PRIVATE_KEY.","write_action":false,"price_micros":0,"input_schema":null},{"name":"build_swap","description":"Build an unsigned Solana swap tx via REST. Returns base58 swap_tx. Pass to submit_signed_swap or use auto_swap.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cancel_order","description":"Cancel an active limit or trailing order.","write_action":true,"price_micros":0,"input_schema":null},{"name":"check_order","description":"Check the status of a specific order by order_id.","write_action":true,"price_micros":0,"input_schema":null},{"name":"connect_websocket","description":"Connect WS for a wallet and wait until registered (up to 25s). Call before placing orders.","write_action":false,"price_micros":0,"input_schema":null},{"name":"connection_status","description":"Return live WS connection state for a wallet.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extend_order","description":"Extend an order's expiry. expiry_hours is the new total (1–336).","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_fill_log","description":"Return all order_filled events received since process start (capped at 200).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_flex_card","description":"Get the URL for a flex trade card PNG for a wallet and token. GET /flex. Returns the URL to display the image.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_holdings","description":"Scan SPL token holdings for a Solana wallet. Slow — up to 100s.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_mcap","description":"Get market cap (and price/pool) data for one or more token addresses. GET /mcap.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_wallet_address","description":"Derive the Solana wallet address from TRADEROUTER_PRIVATE_KEY. Call first at session start — also starts WebSocket connection.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_orders","description":"List all active limit/trailing orders for a wallet.","write_action":false,"price_micros":0,"input_schema":null},{"name":"place_limit_order","description":"Place a market-cap-based limit order over WS. action: sell|buy. target: bps vs current mcap at placement.","write_action":true,"price_micros":0,"input_schema":null},{"name":"place_limit_trailing_order","description":"Place a limit-then-trailing order. Wait for limit, then trailing phase; when trail triggers, single swap. action: limit_trailing_sell|limit_trailing_buy.","write_action":true,"price_micros":0,"input_schema":null},{"name":"place_limit_trailing_twap_order","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"place_limit_twap_order","description":"Place a limit-then-TWAP order. Wait for limit target (bps), then execute via TWAP. action: limit_twap_sell|limit_twap_buy.","write_action":true,"price_micros":0,"input_schema":null},{"name":"place_trailing_order","description":"Place a trailing stop or trailing buy over WS. action: trailing_sell|trailing_buy. trail: bps distance.","write_action":true,"price_micros":0,"input_schema":null},{"name":"place_trailing_twap_order","description":"Place a trailing-then-TWAP order. When trail triggers, execute via TWAP. action: trailing_twap_sell|trailing_twap_buy.","write_action":true,"price_micros":0,"input_schema":null},{"name":"place_twap_order","description":"Place a TWAP (time-weighted) buy or sell order. Splits total amount into frequency slices over duration seconds. action: twap_buy|twap_sell.","write_action":true,"price_micros":0,"input_schema":null},{"name":"submit_signed_swap","description":"Submit a base64-encoded signed Solana transaction via MEV-protected lane.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":71,"grade":"B","scanned_at":"2026-09-27T21:52:04.939Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:52:04.882Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":8,"max":15,"notes":["last push 152 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@traderouter/trade-router-mcp","version":"1.0.9","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":5,"publishedAt":"2026-04-24T20:36:32.562Z","repositoryUrl":"git+https://github.com/TradeRouter/trade-router-mcp.git","weeklyDownloads":74}],"repo":{"found":true,"owner":"TradeRouter","repo":"trade-router-mcp","archived":false,"pushedAt":"2026-04-28T10:20:35Z","stars":3,"forks":1,"openIssues":2,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/266610582?v=4","ownerCreatedAt":"2026-03-09T02:33:28Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/266610582?v=4&s=128","source":"github"},"presence":{"stars":3,"forks":1,"downloadsWeek":74,"license":"MIT","lastPushAt":"2026-04-28T10:20:35.000Z","score":21}}}},"grade_history":[],"reviews":[]}