Voyager

Solana MCP server / Jupiter

Hosted Solana MCP server for AI agents.

One MCP endpoint gives Claude, ChatGPT, Cursor or any MCP client tools to check prices, swap tokens and set limit orders on Solana through Jupiter. Each agent trades from its own wallet, within the spending limits you set, and no private key goes into your AI client.

https://www.runvoyager.com/api/mcp

Tools

Solana tools your agent can call.

The same tools are served over MCP and returned by the TypeScript SDK adapters for OpenAI, Anthropic and the Vercel AI SDK.

get_account
Returns this agent's Solana wallet address, the spending policy its owner set (per-trade cap, daily and monthly caps, allowed tokens, max slippage, approval threshold) and how much budget is left. Call this before trading so you stay inside the limits.
get_balances
Lists the tokens held by the agent's wallet with amounts and USD values.
search_tokens
Finds Solana tokens by symbol, name or mint address. Returns mint, decimals, USD price, liquidity, and whether Jupiter has verified the token or flagged it as suspicious. Many scam tokens copy popular symbols, so use the returned mint address when trading anything outside the majors.
get_prices
Current USD prices for up to 50 tokens, with the 24h change in percent.
get_quote
Quotes a swap through Jupiter without executing it: expected output, minimum output after slippage, price impact, fees, and whether the owner's spending policy would allow it (policy.allowed, policy.requiresApproval, policy.violations). Give exactly one of amount or amountUsd.
swap
Swaps tokens from the agent's wallet through Jupiter, at the best route available, and waits for the result. The owner's spending policy is enforced: a trade over a limit is rejected with the rule it broke, and a trade over the approval threshold returns status "awaiting_approval" until the owner approves it in the dashboard. Give exactly one of amount or amountUsd. Pass an idempotencyKey if you might retry.
get_trade
Returns the current status of a trade by ID, including the transaction signature and explorer link once it lands.
list_trades
Lists the agent's most recent trades, newest first, including rejected and pending ones.
create_limit_order
Places a price-triggered order: when the trigger token's USD price crosses triggerPriceUsd in the given direction, Voyager swaps the input token for the output token at market. Use it for buy-the-dip ("buy SOL with 50 USDC if SOL goes below $120"), take-profit ("sell 2 SOL if SOL goes above $250") or stop-loss ("sell 2 SOL if SOL goes below $90"). Funds stay in the wallet until the order fires, and the spending policy is checked again at that moment. If other waiting orders already sell the same token and, with this one, would sell more than the wallet holds, the call fails with a "conflict" error whose details.orders lists them. Do not choose for your user: show them those orders and ask which they mean, then call again with the same request plus onOverlap. "link" makes them one-cancels-other, so only the first to fire trades (the usual take-profit plus stop-loss). "replace" cancels them and places this order instead; use it to change an existing order, since orders cannot be edited. "independent" keeps them all, and any that fires after the tokens are gone fails. Pass overlapOrderIds to link or replace only some of them. Orders that fit within the balance together, such as a ladder of partial take-profits, are placed with no question asked.
list_limit_orders
Lists the agent's limit orders, optionally filtered by status (open, held, triggered, filled, cancelled, expired, failed). Orders with the same ocoGroupId are one-cancels-other: while one is triggered the others are "held", and once it fills they are cancelled.
cancel_limit_order
Cancels an open or held limit order. Nothing moves on-chain, since funds never left the wallet. Other orders in its one-cancels-other group stay as they are.

Hosted vs self-hosted

A Solana MCP server without a private key in your config.

Most open-source Solana and Jupiter MCP servers sign with a key read from a local file. Voyager puts a policy check and a transaction check between the model and the key.

FeatureTypical self-hosted serverVoyager
Wallet keyA private key in a local config or .env fileA wallet per agent, its key encrypted on Voyager's servers
Spending limitsNone, unless you build themPer-trade, 24-hour and 30-day caps in USD
Token checksWhatever mint the model passesMajors pinned to canonical mints, verified-only buys
Before signingSigns the transaction it builtDecodes and simulates every Jupiter transaction
Limit ordersRarelyPrice-triggered, with one-cancels-other links
TransfersOften a send or transfer toolNo transfer tool; withdrawals are owner-only
HostingYou run and update itHosted endpoint, OAuth sign-in for Claude and ChatGPT

Jupiter MCP server

Jupiter routing, with limits on every call.

Quotes, swaps and limit orders go through Jupiter's Swap API, so agents get Jupiter's routing across Solana liquidity. Limit orders run on Voyager's own keeper: funds stay in the agent's wallet until the price crosses, and the limits are checked again when the order fires.

Spending caps
Per-trade, rolling 24-hour and 30-day limits in USD. Each trade is checked and reserved against the budget in one locked step.
Token rules
Major tokens resolve to their canonical mints. Purchases are limited to Jupiter-verified tokens, or to an allowlist you choose.
Execution limits
Maximum slippage and price impact apply to every route Jupiter returns.
Approvals
Trades above your threshold wait in the dashboard until you approve or reject them.
No transfer tool
Agents can quote, swap and place limit orders. Withdrawals are owner-only and go to your sign-in wallet.
Pause
A paused agent has its next call refused, including limit orders that fire later.

Full reference for tools, REST endpoints and errors in the docs. Building your own agent? Build an AI trading agent.

FAQ

Solana MCP server questions.

What is a Solana MCP server?

An MCP (Model Context Protocol) server gives an AI client tools it can call. A Solana MCP server's tools read and act on the Solana blockchain. Voyager's tools check prices and balances, quote and execute swaps through Jupiter, and manage limit orders.

What is the Voyager MCP endpoint?

https://www.runvoyager.com/api/mcp, over Streamable HTTP. Claude and ChatGPT sign in with OAuth. Other clients send an agent's API key as a Bearer token, and clients that only run local servers can use npx @voyager/mcp.

Is Voyager a Jupiter MCP server?

Yes. Every price check, quote, swap and limit order routes through Jupiter, so agents get Jupiter's routing across Solana liquidity. Voyager adds a wallet per agent, spending limits and a check of every transaction before it is signed.

How is it different from a self-hosted Solana MCP server?

Many self-hosted Solana and Jupiter MCP servers read a wallet's private key from a local config file and sign whatever the model builds. With Voyager the key never leaves its servers, every call is checked against the agent's limits, and each Jupiter transaction is decoded and simulated before the agent's key signs it.

Do I need to run a server?

No. The endpoint is hosted. Sign in with a Solana wallet, create an agent, fund its wallet and paste the config for your client.