onestop

trade.onestop由 onestop.trade 发布v1.0.2更新于 Nov 4, 2026

无Gas费Solana兑换、市值上限、追踪止损与TWAP订单及计划。您的密钥保存在本地。

AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。

原文描述

Gasless Solana swaps, market-cap limit, trailing and TWAP orders, and plans. Your key stays local.

已验证STDIO仅桌面

概览

onestop 的本地 MCP 服务,由 onestop.trade 发布;无需登录;STDIO;19 个工具。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

发布者
onestop.trade

安装

在 SourceWeft 中

  1. 打开 控制台中的 onestop,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

onestop MCP

Lets an AI agent trade Solana tokens through onestop: gasless swaps (no SOL needed; the network cost and any fee are taken from the trade), market-cap orders (limit, trailing, limit then trail, TWAP) and plans that buy and then protect the position. Your wallet's key stays on your machine.

json
{ "mcpServers": { "onestop": { "command": "npx", "args": ["-y", "@onestop-trade/onestop-mcp"],    "env": { "ONESTOP_PRIVATE_KEY": "your-wallet-private-key" } } } }

Node 20.18 or later.

Setting
ONESTOP_PRIVATE_KEY or ONESTOP_KEYPAIR_PATHthe wallet that trades: its private key as your wallet exports it (Phantom: Settings → your account → Show private key), or the path to a keypair file. Use a wallet you keep for trading
SOLANA_RPC_URLyour RPC, used to simulate every transaction before signing (default: public mainnet)
ONESTOP_DRY_RUN=1trade nothing: order and plan tools answer without calling onestop, and swaps stop after the guard. Paper orders still run
ONESTOP_SKIP_SPEND_CHECK=1turn off the guard's balance checks (the structural checks stay). For debugging only
ONESTOP_STATEwhere the MCP keeps the orders and plans it placed (default ~/.onestop-mcp/<wallet>.json)
ONESTOP_API_URL, ONESTOP_SERVER_PUBKEY (+ _NEXT)for a self-hosted engine: its URL, its signing key

Tools

Amounts are raw units (lamports for SOL); levels and shares are basis points (20000 = 2x, 10000 = all).

Walletwallet (address and link, no network call), connect (wait for the engine login)
Swapsquote (price it, get the unsigned transaction), submit_swap (trade a quoted transaction), swap (both in one call)
Market datatokens (price, market cap, liquidity), holdings (balances in USD)
Orderslimit_order, trailing_order, limit_trailing_order, twap_order; each but the TWAP can also fill in slices. list_orders, get_order, cancel_order, extend_order
Plansplace_plan (an entry buy, then a protect or take-profit exit for exactly what it bought), get_plan, cancel_plan
Logactivity: fills signed or refused (and why), paper fills, order and plan updates

paper: true on an order or plan rehearses it with real prices: fills are priced from the route and recorded, and nothing is signed or traded.

What it signs

Every message from onestop must carry onestop's engine signature. A fill is signed only for an order this MCP placed, after checking onestop committed to exactly what was asked, or for the exit of one of its plans, selling no more than the entry bought. Before signing, the transaction is simulated on your RPC and checked: onestop's gas wallet pays the fee and your wallet is the only other signer; your SOL can't fall by more than the quote says; no token balance falls except the one you're selling, by at most the amount; the output arrives; no approvals, authority changes or account reassignment; nothing closes an account you already had.

It has to be running

onestop watches the market 24/7, but this MCP signs each fill, so it needs to be running: if it's closed when an order fires, the fill waits and runs when it's back, at the price then.

来源:README.md,提交 41fd681

工具

19

wallet

This MCP's wallet address and its link to onestop: whether it's logged in to the engine, the API it uses, whether dry run is on, and how many orders and plans it's tracking. No network call. Call it first: every other tool acts for this wallet.

无需输入参数。

connect

Wait up to 20 seconds for the engine login, then report the same as wallet. The MCP logs in by itself at start and again after any drop, backing off up to 30 seconds between tries, so use this to wait for it rather than retrying another tool.

无需输入参数。

quote

Price a swap without trading. Returns amount_in, expected_out, min_out, the fee and the gas (both taken from the trade), and transaction.base64: the unsigned transaction, good for about 45 seconds. Nothing is signed or sent. Pass the transaction to submit_swap to trade it after looking at the quote, or use swap to do both at once.

输入参数input必填amountoutput必填holdings_bpsslippage_bps

submit_swap

Trade a transaction from quote. The MCP checks it with the guard first, simulating it on the wallet's own RPC: onestop pays the fee, only this wallet signs besides it, nothing approves or reassigns the wallet's accounts, the wallet loses no more than the quote says, and the output arrives. Then it signs, sends it through onestop's MEV-protected lane and waits for it to land. Only a transaction this MCP quoted recently is accepted, because the guard needs its quote and onestop co-signs only trades it quoted. Returns confirmed with the signature and the wallet's balance changes, or refused with the guard's reasons. With dry run it stops after the guard.

输入参数transaction必填

swap

Swap now in one call: quote, guard, sign and send, the same as quote followed by submit_swap. No SOL needed for gas: onestop pays it and takes it, with any fee, from the trade. Returns the amounts and the result: confirmed with the signature and balance changes, refused with the guard's reasons, or dry_run.

输入参数input必填amountoutput必填holdings_bpsslippage_bps

tokens

Price, market cap, liquidity and main pool for up to 100 tokens. Read only.

输入参数mints必填

holdings

A wallet's SOL and token balances, valued in USD. Read only.

输入参数wallet

limit_order

A limit order: buy or sell when the market cap crosses a level, given as target_bps of the market cap now (above it, a take profit or a breakout buy; below it, a stop loss or a dip buy) or as target_mcap_usd. It fires only on a cross after placement. Add twap_slices and twap_interval_s to fill in slices. A buy takes amount in lamports; a sell takes amount in raw token units or holdings_bps of the balance when it fires. paper: true rehearses with real prices and never trades. It lapses after expires_h hours if it hasn't fired. Returns the order with its order_id; follow it with get_order. Signing: fills are signed by this MCP process. If it isn't running when an order fires, the fill is queued and executed on reconnect at the then-current price.

输入参数mint必填side必填paperamountexpires_htarget_bpstwap_slicesholdings_bpsslippage_bpstarget_mcap_usdtwap_interval_s

trailing_order

A trailing order: a sell follows the market cap up and fires when it falls trail_bps from its high; a buy follows it down and fires when it rises trail_bps from its low. Add twap_slices and twap_interval_s to fill in slices. A buy takes amount in lamports; a sell takes amount in raw token units or holdings_bps of the balance when it fires. paper: true rehearses with real prices and never trades. It lapses after expires_h hours if it hasn't fired. Returns the order with its order_id; follow it with get_order. Signing: fills are signed by this MCP process. If it isn't running when an order fires, the fill is queued and executed on reconnect at the then-current price.

输入参数mint必填side必填paperamountexpires_htrail_bps必填twap_slicesholdings_bpsslippage_bpstwap_interval_s

limit_trailing_order

A limit, then a trail: it waits for the market cap to reach the level (target_bps of the market cap now, or target_mcap_usd), then trails from there and fires when the market cap moves back trail_bps from its best. A sell above the market cap now lets a winner run past the target and keeps the gain. Add twap_slices and twap_interval_s to fill in slices. A buy takes amount in lamports; a sell takes amount in raw token units or holdings_bps of the balance when it fires. paper: true rehearses with real prices and never trades. It lapses after expires_h hours if it hasn't fired. Returns the order with its order_id; follow it with get_order. Signing: fills are signed by this MCP process. If it isn't running when an order fires, the fill is queued and executed on reconnect at the then-current price.

输入参数mint必填side必填paperamountexpires_htrail_bps必填target_bpstwap_slicesholdings_bpsslippage_bpstarget_mcap_usdtwap_interval_s

twap_order

A TWAP order: buy or sell now in twap_slices swaps twap_interval_s seconds apart, to spread the price impact. Each slice is what's left divided by the slices left. A buy takes amount in lamports; a sell takes amount in raw token units or holdings_bps of the balance when it fires. paper: true rehearses with real prices and never trades. It lapses after expires_h hours if it hasn't fired. Returns the order with its order_id; follow it with get_order. Signing: fills are signed by this MCP process. If it isn't running when an order fires, the fill is queued and executed on reconnect at the then-current price.

输入参数mint必填side必填paperamountexpires_htwap_slices必填holdings_bpsslippage_bpstwap_interval_s必填

list_orders

This wallet's orders, newest first. An order is waiting, armed (trailing from its best), filling, then filled, cancelled, expired or failed.

无需输入参数。

get_order

One order: its status, trigger levels, the market cap it saw last, its slices and its fills with their signatures.

输入参数order_id必填

cancel_order

Cancel an order. A slice that's already signed can't be called back; the rest of the order stops. A plan's orders are cancelled with cancel_plan.

输入参数order_id必填

extend_order

Set an open order's expiry to expires_h hours from now.

输入参数order_id必填expires_h必填

place_plan

A plan: an entry buy, then an exit onestop creates for exactly the tokens the entry bought. protect arms once the market cap reaches arm_bps of the entry's (30000 = 3x) and then sells when it falls trail_bps from its high. exit takes profit at target_bps of the entry market cap, or shapes the protected sell (twap, and sell_bps of the tokens); with neither level the exit sells at once. A plan needs protect or exit. To protect tokens already held, leave out entry and give amount or holdings_bps. Returns the plan with its plan_id; follow it with get_plan. Signing: fills are signed by this MCP process. If it isn't running when an order fires, the fill is queued and executed on reconnect at the then-current price.

输入参数exitmint必填entrypaperamountprotectexpires_hholdings_bpsslippage_bps

get_plan

A plan's progress: the entry's fills, the tokens it bought and its average entry market cap, the exit (armed with its high and stop, or its take-profit level), and the market cap now as a multiple of the entry.

输入参数plan_id必填

cancel_plan

Cancel a plan and every stage that hasn't run. Tokens already bought stay in the wallet.

输入参数plan_id必填

activity

What this MCP did since it started, newest first: fills it signed (with signatures) or refused (with the reason), paper fills, exits it took on, and order and plan updates.

输入参数limit

版本历史

1
  1. v1.0.2最新Nov 4, 2026

评分

已满足适用检查项的 80%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。