CCXT
Official CCXT MCP server - Market data and trading across 100+ exchanges and prediction markets
Non-custodial Solana trading MCP: Jupiter quotes/swaps, token risk, portfolio. x402-paid.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 5/5 통과 · 내가 묻는 내용은 제작자 서버(advan.fly.dev)를 거쳐요 · ✓ 명령 확인 2026년 11월 13일
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음 · claude.ai나 데스크톱 앱에서 한 번 설정하면 채팅에서 쓸 수 있어요 · 무료 계정은 1개까지 · Team/Enterprise는 소유자(Owner)가 추가
CustomizeConnectors
여기서 복사해 Claude의 같은 이름 칸에 붙여 넣고 Continue를 누르세요
Advan: Solana trading toolshttps://advan.fly.dev/mcpClaude가 찾은 로그인 설정 화면에서 Continue를 누르고 · Authentication은 제작자 안내대로(Sign in now, Sign in when needed, No sign in) 고른 뒤 Add를 누르세요
+ConnectorsAdvan: Solana trading tools
Advan: Solana trading tools을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 Advan: Solana trading tools을 쓰고 있다고 하거나 답에 Advan: Solana trading tools 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT 연결은 요금제에 따라 달라요
전체 MCP: 웹 ChatGPT Business, Enterprise, Edu · Pro: 읽기/가져오기 권한으로 연결, 데이터를 바꾸는 도구는 안 될 수 있어요 · Plus: 공식 문서 미확인, 플러그인 화면에 사용자 지정 MCP 추가 항목이 보이면 시도해 볼 수 있어요 · 웹만
Plugins+Add custom MCP server
이름을 넣고 Connection에 주소를 붙여 넣은 뒤 경고에 체크하고 Create as a plugin을 누르세요
Advan: Solana trading toolshttps://advan.fly.dev/mcp새 채팅을 열고 입력 전에 플러그인 목록에서 Advan: Solana trading tools을 고르세요
Advan: Solana trading tools을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ ChatGPT가 Advan: Solana trading tools을 쓰고 있다고 하거나 답에 Advan: Solana trading tools 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 OpenAI 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Claude Code에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
claude mcp add --transport http --scope user advan https://advan.fly.dev/mcpAdvan: Solana trading tools이 목록에 있고 연결됨으로 보이면 돼요
Advan: Solana trading tools을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 Advan: Solana trading tools을 쓰고 있다고 하거나 답에 Advan: Solana trading tools 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음
Advan: Solana trading tools을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 Advan: Solana trading tools을 쓰고 있다고 하거나 답에 Advan: Solana trading tools 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음
Advan: Solana trading tools을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 Advan: Solana trading tools을 쓰고 있다고 하거나 답에 Advan: Solana trading tools 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Windsurf, Zed, Gemini CLI 같은 다른 MCP 앱은 추가 방법이 저마다 달라요. 앱 목록에서 확인하세요
웹으로 연결하는 앱용 주소
https://advan.fly.dev/mcpJSON 설정은 아래 “개발자용”에 있어요
Claude Code
claude mcp add --transport http --scope user advan https://advan.fly.dev/mcpCursor (~/.cursor/mcp.json)
{
"mcpServers": {
"advan": {
"url": "https://advan.fly.dev/mcp"
}
}
}VS Code (mcp.json)
{
"servers": {
"advan": {
"type": "http",
"url": "https://advan.fly.dev/mcp"
}
}
}Claude Code
claude mcp add --scope user advan --env SOLANA_RPC_URL=your-value --env JUPITER_API_KEY=your-value -- npx -y advan-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"advan": {
"command": "npx",
"args": [
"-y",
"advan-mcp"
],
"env": {
"SOLANA_RPC_URL": "your-value",
"JUPITER_API_KEY": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"advan": {
"command": "npx",
"args": [
"-y",
"advan-mcp"
],
"env": {
"SOLANA_RPC_URL": "your-value",
"JUPITER_API_KEY": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"advan": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"advan-mcp"
],
"env": {
"SOLANA_RPC_URL": "your-value",
"JUPITER_API_KEY": "your-value"
}
}
}
}SOLANA_RPC_URL 비밀 필수 envJUPITER_API_KEY 비밀 env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
npm: advan-mcp이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
인터넷으로 연결하는 앱
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
도구 이름과 설명은 서버가 2026년 11월 12일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
get_quoteFree Jupiter Swap API V2 quote (GET /swap/v2/order, no taker). Returns amounts, route, slippage, and referral fee fields. Does not return a transaction.
build_swap_txFree. Returns an UNSIGNED base64 transaction for the taker wallet to sign. Advan never signs and never holds keys. Default (selfBroadcast false) keeps JupiterZ routes, which need Jupiter POST /swap/v2/execute to add the market-maker co-signature. Pass selfBroadcast true to exclud
token_riskPaid token risk report ($0.02 USDC via x402 exact on solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp). Combines RPC mint/freeze authority, Jupiter Tokens V2, and RugCheck. Ordinary MCP clients that cannot pay receive a payment-required error.
wallet_portfolioPaid wallet portfolio ($0.02 USDC via x402 exact). SOL plus SPL Token and Token-2022 balances, priced with Jupiter Price V3.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 13일 점검
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
아직 리뷰가 없어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 5개 중 5개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: SOLANA_RPC_URL, JUPITER_API_KEY
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 12일 전 변경됐고, 최신 버전(0.1.0)은 18일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되므로 원격 MCP를 받는 앱에서도 쓸 수 있어요. 예: 웹 ChatGPT(Business 이상은 전체 MCP, Pro는 읽기 전용).
같은 카테고리에는: CCXT, Finance Toolkit, AKQuant
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Official CCXT MCP server - Market data and trading across 100+ exchanges and prediction markets
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Write and backtest trading strategies with AKQuant: API lookup, strategy checks, backtest runs
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Advan is an open-source MCP server and HTTP API that gives AI agents Solana trading tools. Quotes and unsigned swap transactions come from Jupiter Swap API V2. Token risk and wallet portfolio reads are paid with x402 (exact scheme, USDC).
The server is non-custodial. It never signs a transaction and it never loads a trading key. build_swap_tx returns an unsigned base64 transaction for the user's own wallet (taker) to sign. SOLANA_KEYPAIR_PATH is read only by scripts/e2e-devnet-x402.ts.
Package name: advan-mcp (unregistered on npm when this tree was created on 2026-10-25). Change the "name" field in package.json before publishing. The advan-mcp bin name can stay.
Fees (hosted endpoint): Swaps built through Advan include a 1.00% (100 bps) platform fee via Jupiter's referral program. Jupiter keeps 20% of that fee, so Advan nets 0.80%. The fee shows in every quote (platformFee) before you sign. token_risk and wallet_portfolio cost $0.02 USDC per call via x402 (Solana mainnet). Quotes are free. Non-custodial: you sign every transaction in your own wallet; Advan never holds keys or funds. Self-hosted copies charge nothing unless the operator sets their own fee.
https://advan.fly.devhttps://advan.fly.dev/mcpPUBLIC_BASE_URL is that origin. x402 resource URLs and Bazaar metadata use it, because Fly terminates TLS and the app would otherwise advertise http://.
Deploy steps are in docs/DEPLOY-FLY.md.
| Tool | Price | What it does |
|---|---|---|
get_quote | Free | Jupiter GET /swap/v2/order without taker. Quote only. |
build_swap_tx | Free | Same endpoint with taker. Unsigned transaction plus a submit hint. |
token_risk | X402_PRICE_USD (default $0.01) | RPC mint/freeze authority, Jupiter Tokens V2, RugCheck summary, scored. |
wallet_portfolio | same | getBalance + getTokenAccountsByOwner (Token and Token-2022), Jupiter Price V3. |
Jupiter base URL is https://api.jup.ag (Swap API V2). lite-api.jup.ag is not used. An optional JUPITER_API_KEY is sent as x-api-key. Keyless access is about 0.5 requests per second; Jupiter returns HTTP 429 past that, and Advan retries those responses with backoff (up to three waits). Set JUPITER_API_KEY for production. A portal key is the limit you should run with once more than one agent is calling.
Jupiter referral. When JUPITER_REFERRAL_ACCOUNT is set, every order sends referralAccount and referralFee. The allowed range is 50–255 bps (default 50). Jupiter keeps 20% of that fee, so 50 bps charged to the user nets 40 bps to the referral partner, and it replaces Jupiter's usual 2–10 bps platform fee. Quotes will look more expensive than calling Jupiter with no referral.
Jupiter picks the fee mint (SOL, then stables, then LSTs, then other tokens). If the referral token account for that mint does not exist, the swap still succeeds and your fee is dropped. Advan checks every order response:
referralAccount matches the configured accountfeeBps equals the configured fee when gasless is falsefeeBps is at least the configured fee when gasless is true (gasless cost can add bps)feeMint has a configured referral token account, and that account is the V2 associated token account of the referral account for the mint (allowOwnerOffCurve, under the mint's token program, Token or Token-2022). That is what initializeReferralTokenAccountV2 creates. A swapped account fails the check. A legacy referral_ata PDA is accepted only when that account already exists on-chain.SOLANA_RPC_URL. A missing V2 account is recorded. A wrong account, or a legacy PDA that does not exist, refuses to boot.FEE_CHECK_MODE=fail (default) withholds the quote and the transaction when the fee itself is wrong. warn returns them with feeCheck.ok: false and logs a fee_check_failure event either way.
A token-to-token route can pick a feeMint you have not created an account for. REFERRAL_MISSING_MINT_MODE=requote (default) quotes that pair again without referralAccount / referralFee, returns the quote, and writes a referral_requote log line. fail refuses the swap. warn returns the original order with feeCheck.ok: false. Add the mint with REFERRAL_MINTS on npm run setup:referral if you want the fee on that pair.
Leave the account unset and orders are sent with no referral (a startup warning says so). JUPITER_REFERRAL_REQUIRED=true refuses to boot without the account and wSOL, USDC, and USDT token accounts.
x402. token_risk and wallet_portfolio use the exact scheme. The buyer pays USDC to X402_PAY_TO on X402_NETWORK. Default network is Solana devnet (solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1) and devnet USDC 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU. Mainnet is solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp and USDC EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. The recipient USDC token account must already exist (npm run setup:payto-ata).
@x402/evm is a dependency because @coinbase/cdp-sdk/x402 loads it. Advan registers only the Solana exact scheme.
Coinbase CDP is the primary facilitator when CDP_API_KEY_ID and CDP_API_KEY_SECRET are set. PayAI (https://facilitator.payai.network) is used when the CDP /supported probe fails, and it is the only facilitator when CDP keys are absent. Verify and settle are sent to the facilitator whose advertised extra.feePayer is on the payment requirements. An in-flight payment is not handed to the other facilitator: that fee payer would not match, and the settlement would fail. When CDP fails in a way that is safe to fail over, Advan marks it down and the next payment challenge is rebuilt with PayAI's fee payer. The next probe is scheduled for X402_CDP_RECOVERY_INTERVAL_MS after the failure (default 5 minutes), not on a timer that started at boot. A healthy /supported restores CDP as primary, reloads payment requirements, and writes a facilitator_recovered log line. If that reload fails or times out, Advan goes back to PayAI and reloads those requirements instead of leaving them empty. Every fee payer a facilitator has advertised is kept, so a rotated CDP fee payer still settles with CDP. GET /health reports cdp as primary, down, or unconfigured, and cdpNextProbeAt while it is down. A settle timeout or HTTP 5xx is not treated as a failover. Failed verifications are logged as x402_verification with the facilitator's reason. The 402 body and PAYMENT-REQUIRED error shown to the client say payment could not be verified.
MCP payment requirements, including the Solana blockhash, are built on every paid call. HTTP builds them per request. Both use X402_RPC_URL, which defaults from X402_NETWORK and is never SOLANA_RPC_URL.
CDP's published fee after the free tier is $0.001 per successful settlement. PayAI Solana mainnet exact is $0.00133. Devnet PayAI settlements are free. At startup Advan warns, or exits when X402_PRICE_GUARD=refuse, if the price is below X402_MIN_FEE_MULTIPLE (default 5) times the applicable fee. $0.01 is about 7.5× the PayAI mainnet fee. $0.005 is not.
get_quote and build_swap_tx are not gated.
Before a quote or transaction is returned:
slippageBps must be ≤ MAX_SLIPPAGE_BPS (default 300)amount must be ≤ MAX_INPUT_AMOUNT when that cap is set (base units). Unset prints a startup warning.amount × Jupiter Price V3) must be ≤ MAX_TRADE_USD (default 1000). Set MAX_TRADE_USD=off to disable it. A missing price refuses the trade while the cap is on. Startup warns loudly if both caps are off.MAX_PRICE_IMPACT_PCT (default 5). Jupiter's priceImpactPct is treated as a fractionbuild_swap_tx defaults to the managed path (SWAP_SELF_BROADCAST_DEFAULT=false):
POST https://api.jup.ag/swap/v2/execute with { signedTransaction, requestId }.submit.method: "jupiter", requestId, and coSignRequired when the router is jupiterz./execute promptly (lastValidBlockHeight or expireAt).Pass selfBroadcast: true (or set the env default) to send excludeRouters=jupiterz. The tool then rejects a signatureFeePayer other than the taker, and rejects a response that is still a JupiterZ route. The taker signs and broadcasts that transaction on their own RPC.
Node.js 20 or newer.
npm install
npm run build cp .env.example .env
Stdio (Claude Desktop, Cursor, or npx after publish):
npm start
npx advan-mcp
HTTP (plain JSON and Streamable HTTP MCP on /mcp):
npm run start:http
Docker:
docker build -t advan .
docker run --env-file .env -p 8787:8787 advan
The image default for USAGE_LOG_PATH is /data/usage.jsonl. The entrypoint starts as root, chowns /data to node (and creates /data when no volume is mounted), then su-exec runs the server as node. Mount a volume to keep the usage log:
docker run --env-file .env -p 8787:8787 -v advan-data:/data advan
A development .env copied from .env.example sets HOST=127.0.0.1, which hides the port from outside the container. For a published port, set HOST=0.0.0.0 in that env file or pass -e HOST=0.0.0.0. Fly sets HOST in fly.toml.
The image runs the HTTP server only. Referral setup scripts run from a checkout (npm install includes the Jupiter referral SDK as a dev dependency).
Paid tools need an x402-aware client. Claude Desktop and Cursor will see a payment-required (or payments-unconfigured) error for token_risk and wallet_portfolio. Use them for get_quote and build_swap_tx, and use scripts/e2e-devnet-x402.ts or createx402MCPClient for paid tools.
Claude Desktop claude_desktop_config.json:
{
"mcpServers": { "advan": { "command": "node", "args": ["/absolute/path/to/advan/dist/index.js"], "env": { "SOLANA_RPC_URL": "https://api.mainnet-beta.solana.com", "JUPITER_API_KEY": "", "JUPITER_REFERRAL_ACCOUNT": "", "JUPITER_REFERRAL_FEE_BPS": "50", "JUPITER_REFERRAL_TOKEN_ACCOUNT_SOL": "", "JUPITER_REFERRAL_TOKEN_ACCOUNT_USDC": "", "JUPITER_REFERRAL_TOKEN_ACCOUNT_USDT": "", "MAX_SLIPPAGE_BPS": "300", "MAX_TRADE_USD": "1000", "X402_PAY_TO": "", "X402_PRICE_USD": "0.01", "X402_NETWORK": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1", "CDP_API_KEY_ID": "", "CDP_API_KEY_SECRET": "" } } } }
Cursor .cursor/mcp.json uses the same mcpServers object. During development you can point command at npx with args ["tsx", "src/index.ts"] from the repo root.
POST bodies are JSON. Free routes return the tool result. Paid routes answer 402 with PAYMENT-REQUIRED until the client retries with PAYMENT-SIGNATURE (x402 V2). A browser without a wallet gets the facilitator paywall HTML; API clients that send Accept: application/json also get a JSON body from unpaidResponseBody.
| Method | Path | Body |
|---|---|---|
| GET | /health | — |
| GET | /healthz | — |
| GET | /stats | — |
| POST | /v1/get_quote | `{ "inputMint",