Documentation

SOLMCP is a free, read-only MCP server exposing 12 Solana tools over Streamable HTTP.

Quickstart

Add the server to your client. The endpoint is /api/mcp on this deployment.

terminal
claude mcp add --transport http solmcp https://solmcp.vercel.app/api/mcp

Prefer plain HTTP? Every tool is mirrored at POST /api/tools/{name}:

terminal
curl -X POST https://your-host/api/tools/get_price \
  -H "content-type: application/json" \
  -d '{"mints":["SOL","USDC"]}'

Every result has the shape:

response
{
  "data": {},
  "source": "live",
  "fetchedAt": "2026-01-01T00:00:00.000Z",
  "latencyMs": 142
}

Tool reference

get_price

Market

Get live USD prices for Solana tokens. Use for any question about what a token costs right now. Accepts mint addresses or the aliases SOL and USDC. Prices are USD per 1 whole token.

get_price({ mints: string[] })

ParamTypeRequired
mintsstring[]required
example request
{
  "mints": [
    "SOL",
    "USDC"
  ]
}
Run in Playground →

get_swap_quote

Market

Get an informational swap quote from Jupiter. Amount is in UI units of the input token (e.g. 1000 for 1,000 USDC). Returns expected output, price impact and route labels. This is a quote only; nothing is executed or signed.

get_swap_quote({ inputMint, outputMint, amount, slippageBps? })

ParamTypeRequired
inputMintstringrequired
outputMintstringrequired
amountnumberrequired
slippageBpsnumberoptional
example request
{
  "inputMint": "USDC",
  "outputMint": "SOL",
  "amount": 1000,
  "slippageBps": 50
}
Run in Playground →

get_pairs

Market

List DEX trading pairs for a token mint sorted by liquidity: dex, pair address, price, liquidity USD, 24h volume, 24h transactions and FDV.

get_pairs({ mint })

ParamTypeRequired
mintstringrequired
example request
{
  "mint": "USDC"
}
Run in Playground →

get_token_info

Token

Get metadata for a token mint: name, symbol, image, decimals, supply, token program and mint/freeze authority status. Use to check whether a token is mintable or freezable.

get_token_info({ mint })

ParamTypeRequired
mintstringrequired
example request
{
  "mint": "USDC"
}
Run in Playground →

get_token_holders

Token

List the largest token accounts for a mint with percent of supply and top-10 concentration. Largest token accounts may include liquidity pools and exchanges.

get_token_holders({ mint, limit? })

ParamTypeRequired
mintstringrequired
limitnumberoptional
example request
{
  "mint": "USDC",
  "limit": 10
}
Run in Playground →

get_balance

Wallet

Get the SOL balance and fungible token balances for a public wallet address, with USD values when available.

get_balance({ address })

ParamTypeRequired
addressstringrequired
example request
{
  "address": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"
}
Run in Playground →

get_account

Wallet

Get raw account info for any address: owner program, lamports, executable flag and a parsed data summary.

get_account({ address })

ParamTypeRequired
addressstringrequired
example request
{
  "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}
Run in Playground →

get_transactions

Wallet

List recent parsed transactions for an address with type, description, timestamp, fee and signature.

get_transactions({ address, limit? })

ParamTypeRequired
addressstringrequired
limitnumberoptional
example request
{
  "address": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",
  "limit": 5
}
Run in Playground →

get_transaction

Wallet

Get a fully parsed transaction by signature, including type, transfers and fee.

get_transaction({ signature })

ParamTypeRequired
signaturestringrequired
Run in Playground →

get_network_status

Network

Get current Solana network health: transactions per second, average slot time, current slot, epoch progress and node version.

get_network_status()

example request
{}
Run in Playground →

get_priority_fees

Network

Get recent priority fee estimates (min, low, medium, high, veryHigh) in micro-lamports per compute unit, optionally scoped to account keys.

get_priority_fees({ accountKeys? })

ParamTypeRequired
accountKeysstring[]optional
example request
{}
Run in Playground →

Rate limits

60 calls per minute per IP across MCP and the REST mirror. Exceeding the limit returns HTTP 429 with a retry-after header and a JSON error body.

Caching

ToolTTL
get_price5s
get_swap_quote10s
get_pairs30s
get_trending_pools60s
get_token_info10m
get_token_holders60s
get_balance15s
get_account15s
get_transactions15s
get_transaction15s
get_network_status5s
get_priority_fees5s

Data sources

Changelog

v1.0.0

Initial release: 12 read-only tools, Streamable HTTP MCP endpoint, REST mirror, Playground and status page.

Get Started