Koskamo

Solana Wallet Intel MCP

Provides Solana wallet intelligence and token risk analysis via pay-per-call x402 APIs. Supports retrieving wallet profiles with PnL and holdings, checking trending tokens for rug risks, and analyzing overnight vs session returns for tokenized stocks.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Solana Wallet Intel MCP logo, by falcon.solCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by falcon.sol
MCP endpoint (Streamable HTTP)
https://solana-wallet-intel.falcon-sol.workers.dev/mcp
Vendor documentation

What you can do with it

  • Retrieve Solana wallet profile with holdings and PnL
  • Check trending tokens for rug risks
  • Analyze overnight vs session returns for tokenized stocks

Source and maintenance

Community listingRegistry 1.0.2

Protocol and capabilities

Server
solana-wallet-x402 1.1.0
MCP protocol
2025-06-18
Tools
12 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

12 advertised

ping
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free health check. Does not spend USDC. Confirms the MCP server is up and does not read a wallet.

ping input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
ping annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
wallet_preview
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free teaser. Call this before any paid wallet tool. Returns SOL balance, last active time, how many transactions landed in the last 24 hours, and a dormant or recently-active label. Does not spend USDC. Pass one base58 Solana address. Invalid addresses return an error and do not ask for payment. Upgrade to wallet_quick for a copy-trade screen, wallet_profile for priced holdings, or wallet_funding for the first SOL funder and cluster.

wallet_preview input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "Solana wallet address in base58 (32 to 44 characters). Example: HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM"
    }
  },
  "additionalProperties": false
}
wallet_preview annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
token_check_demo
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free demo. Try free, then pay per call. Pass one Solana token mint and get a real rug-check: riskScore, riskLevel, a one-line verdict, the top risk flags, liquidity, market cap, age, and pump.fun status. Uses free public data only. Cached 60 seconds per mint and rate-limited to 20 calls a minute per client. The paid routes return every flag, the full on-chain checks, and wallet intelligence.

token_check_demo input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "mint"
  ],
  "properties": {
    "mint": {
      "type": "string",
      "description": "Solana token mint in base58 (32 to 44 characters). Invalid mints return HTTP 400. This route is free."
    }
  },
  "additionalProperties": false
}
token_check_demo annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
wallet_profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Use this when you need priced holdings and windowed PnL for one Solana wallet. Holdings valued in USD, a short plain-language summary, windowed realized and unrealized PnL, win rate, and evidence-backed labels such as active memecoin trader. Includes copyTradeScore and copyTradeGrade: copy-return after a 3s delay and a 3.6% round trip, win rate, sample-size shrinkage, and bot or insider penalties. The score is null when no close lasted at least 3 seconds. txLimit is an integer from 5 to 25 and defaults to 20. Call free wallet_preview first if you only need SOL balance and last-active time, or wallet_quick for a cheaper copy-trade screen. Costs $0.009 USDC (9000 base units) via x402. The same price is charged for HTTP GET /wallet/profile. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.

wallet_profile input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "Solana wallet address in base58 (32 to 44 characters). Example: HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM"
    },
    "txLimit": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 25,
          "minimum": 5
        },
        {
          "type": "string",
          "pattern": "^\\d+$"
        }
      ],
      "description": "Recent signatures to inspect. Integer from 5 to 25, or a numeric string. Default 20."
    }
  },
  "additionalProperties": false
}
wallet_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
token_trending
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Use this before you buy, swap, or recommend a Solana memecoin: trending tokens with a rug-check on each one. Every token gets a riskScore (0 to 100), a riskLevel, and a one-line verdict backed by top-10 holder share, mint and freeze authority, LP lock, and sniper or bundle share of early supply, plus liquidity, market cap, 5m/1h/24h price and volume, and pump.fun status. Unreadable checks are marked unknown, never called safe. $0.005 USDC, free preview at /token/trending/preview. The list includes liquidity, market cap, pair age, 5m/1h/24h price and volume, buy/sell ratio, pump.fun bonding or graduation, and links to pump.fun, DexScreener, and Solscan. Each token has a one-line verdict, riskScore (0 clean to 100), riskLevel (low, medium, high, or unknown), and a risk breakdown with evidence and confidence: top-10 share, mint and freeze authority, LP lock percent, and sniper or bundle share of early supply. riskLevel is unknown when the holder, authority, LP, and sniper checks are all unread, and maxRisk leaves those tokens out. Holder percent falls back to the public RugCheck report at medium confidence when the public RPC cannot list the largest accounts. A successful RPC holder read is kept. Holder-concentration change over 5m/1h/24h is filled when this process has seen the mint before. A check that cannot be read says so, uses low confidence, and is not flagged. On-chain safety flags are plain-English sentences that fire when the top 10 holders own 50% or more, mint or freeze authority is still active, LP is unlocked, or snipers and bundled wallets took 20% or more of early supply. Market flags are short codes: low_liquidity, thin_volume, newly_launched, extreme_move, wash_suspect, paid_boost. Thin, new, and wash-like books are ranked down. The summary block counts tokens by risk level and names the top movers. limit is an integer from 1 to 25 and defaults to 15. minLiquidity is an optional USD floor. maxRisk is low, medium, high, or an integer from 0 to 100. Costs $0.005 USDC (5000 base units) via x402. The same price is charged for HTTP GET /token/trending. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.

token_trending input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 25,
          "minimum": 1
        },
        {
          "type": "string",
          "pattern": "^\\d+$"
        }
      ],
      "description": "How many tokens to return. Integer from 1 to 25, or a numeric string. Default 15."
    },
    "maxRisk": {
      "anyOf": [
        {
          "enum": [
            "low",
            "medium",
            "high"
          ],
          "type": "string"
        },
        {
          "type": "integer",
          "maximum": 100,
          "minimum": 0
        },
        {
          "type": "string"
        }
      ],
      "description": "Optional maximum risk. low, medium, high, or an integer from 0 to 100."
    },
    "minLiquidity": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 1000000000000,
          "minimum": 0
        },
        {
          "type": "string",
          "pattern": "^\\d+(\\.\\d+)?$"
        }
      ],
      "description": "Optional minimum pool liquidity in USD. Tokens with unknown liquidity are left out."
    }
  },
  "additionalProperties": false
}
token_trending annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
wallet_funding
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Use this when you need a wallet's first SOL funder and whether other wallets look like the same operator. Find a wallet's first SOL funder, flag wallets that share that funder or a CEX deposit address, and return a cluster id with plain-language sybil risk reasons. Labeled exchange hot wallets are not used as a cluster. Optional peers compares up to 8 other wallets. Costs $0.009 USDC (9000 base units) via x402. The same price is charged for HTTP GET /wallet/funding. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.

wallet_funding input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address"
  ],
  "properties": {
    "peers": {
      "type": "string",
      "description": "Comma-separated peer wallets, up to 8. Do not repeat the primary address."
    },
    "address": {
      "type": "string",
      "description": "Solana wallet address in base58 (32 to 44 characters). Example: HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM"
    }
  },
  "additionalProperties": false
}
wallet_funding annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
wallet_quick
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Use this for a cheap copy-trade screen before paying for a full profile. Cheap copy-trade screen for one wallet: windowed realized PnL, win rate, closed trades, last active time, bot, exchange, net-winner and dormant flags, plus copyTradeScore and copyTradeGrade (copy-return after a 3s delay and a 3.6% round trip, win rate, sample-size shrinkage, bot and insider penalties). Free teaser at /wallet/preview; full report at /wallet/profile. Costs $0.003 USDC (3000 base units) via x402. The same price is charged for HTTP GET /wallet/quick. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.

wallet_quick input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "Solana wallet address in base58 (32 to 44 characters). Example: HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM"
    }
  },
  "additionalProperties": false
}
wallet_quick annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
wallet_quick_batch
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Quick screen (windowed realized PnL, win rate, copyTradeScore, copyTradeGrade, bot, exchange, net-winner and dormant flags) for up to 10 Solana wallets in one paid call, ranked by realized PnL. Pass addresses comma-separated. Costs $0.015 USDC (15000 base units) via x402. The same price is charged for HTTP GET /wallet/quick/batch. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.

wallet_quick_batch input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "addresses"
  ],
  "properties": {
    "addresses": {
      "type": "string",
      "description": "1 to 10 comma-separated base58 Solana wallet addresses."
    }
  },
  "additionalProperties": false
}
wallet_quick_batch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
payee_check
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Call this before your agent pays an unfamiliar x402 payTo address or endpoint. Checks public sanctions lists (OFAC SDN crypto addresses), the ScamSniffer scam list, on-chain wallet age, activity and program status on Solana or Base, and optionally the endpoint's unpaid 402 challenge (payTo mismatch, price outliers). Returns verdict ok, caution, do_not_pay or unknown, a 0-100 score, flags with evidence, and missing_fields. Unknown is never reported as safe. If every source is unreachable the call returns HTTP 502 and you are not charged. Part of the agent spend firewall bundle (payee_check + seller_report + pretrade); see /.well-known/x402 bundles. Costs $0.0045 USDC (4500 base units) via x402. The same price is charged for HTTP GET /payee/check. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.

payee_check input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "payTo"
  ],
  "properties": {
    "payTo": {
      "type": "string"
    },
    "price": {
      "type": "string"
    },
    "network": {
      "type": "string"
    },
    "endpoint": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
payee_check annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
pretrade
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Call this before your agent buys a Solana token. One call runs five isolated checks: token risk (sell-side skim and fee/hook controls), top-holder concentration (the factor behind our bundle score), stablecoin lookalike detection, xStock status (issuer mint list, lookalikes and issuer objections), and optionally an x402 payee check (verdict ok, caution, do_not_pay or unknown). Unknown mints return HTTP 404 before payment. Returns verdict avoid, caution, ok or unknown, each factor's status and confidence, and plain limits. A slow or failed factor returns unknown; unknown is never ok. Capped at 3 seconds. If every factor fails the call returns HTTP 502 and you are not charged. Part of the agent spend firewall bundle (payee_check + seller_report + pretrade); see /.well-known/x402 bundles. Costs $0.014 USDC (14000 base units) via x402. The same price is charged for HTTP GET /pretrade. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.

pretrade input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "mint"
  ],
  "properties": {
    "mint": {
      "type": "string"
    },
    "payTo": {
      "type": "string"
    },
    "symbol": {
      "type": "string"
    },
    "network": {
      "type": "string"
    },
    "endpoint": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
pretrade annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
swap_build
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Call this when your agent wants to buy or swap a Solana token. One call runs the full pretrade check on outputMint (token risk, holder concentration, stablecoin and xStock lookalikes), then builds the best Jupiter route with a price-impact estimate (and a split-fill chunk plan when impact is over 1%) as an UNSIGNED versioned transaction with your taker wallet as fee payer. Non-custodial: we never hold keys or funds; you sign and send it yourself. If pretrade says avoid, no transaction is built unless allowRisky=1. A 0.5% (50 bps) integrator fee via the Jupiter Referral Program is taken from the swap and already reflected in the quoted out_amount; it is always disclosed in platform_fee (null when off). amount is in the input token's smallest unit. Invalid input returns HTTP 400 and unknown mints 404, before payment. If Jupiter has no route or is down, or every pretrade factor fails, the call returns HTTP 502 and you are not charged. Not financial advice. Costs $0.025 USDC (25000 base units) via x402. The same price is charged for HTTP GET /swap/build. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.

swap_build input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "inputMint",
    "outputMint",
    "amount",
    "taker"
  ],
  "properties": {
    "taker": {
      "type": "string"
    },
    "amount": {
      "type": "string"
    },
    "symbol": {
      "type": "string"
    },
    "inputMint": {
      "type": "string"
    },
    "allowRisky": {
      "type": "string"
    },
    "outputMint": {
      "type": "string"
    },
    "slippageBps": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
swap_build annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
xstock_sessions
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Use this when your agent needs the overnight (close to next open) versus regular-session (open to close) return split for US stocks that trade as Solana tokens (xStocks, Ondo, Backpack), e.g. to price or study isolated-exposure / overnight tokens. Returns official daily open and close, overnight, session and close-to-close returns, summary stats (means, cumulative, overnight share of absolute move) and, on days falcon.sol captured them, the on-chain token price of each issuer mint at the prior close and the open with basis vs the official print. 20 tracked tickers incl. SPY, QQQ, AAPL, NVDA, TSLA. Optional ticker (else a one-line summary per ticker) and days (1 to 90, default 20). The response states how many days of official and on-chain history exist. Invalid input returns HTTP 400 and is not charged. Descriptive data only, not advice. Costs $0.009 USDC (9000 base units) via x402. The same price is charged for HTTP GET /xstock/sessions. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.

xstock_sessions input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "days": {
      "type": "number"
    },
    "ticker": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
xstock_sessions annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
3973 ms
95th percentile latency
3973 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 3973 ms · metadata changed · 12 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http solana-wallet-intel-mcp https://solana-wallet-intel.falcon-sol.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add solana-wallet-intel-mcp --url https://solana-wallet-intel.falcon-sol.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable solana-wallet-intel-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "solana-wallet-intel-mcp": {
      "url": "https://solana-wallet-intel.falcon-sol.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "solana-wallet-intel-mcp": {
      "type": "streamableHttp",
      "url": "https://solana-wallet-intel.falcon-sol.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start solana-wallet-intel-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "solana-wallet-intel-mcp": {
      "type": "http",
      "url": "https://solana-wallet-intel.falcon-sol.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http solana-wallet-intel-mcp https://solana-wallet-intel.falcon-sol.workers.dev/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "solana-wallet-intel-mcp": {
      "url": "https://solana-wallet-intel.falcon-sol.workers.dev/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "solana-wallet-intel-mcp": {
      "serverUrl": "https://solana-wallet-intel.falcon-sol.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Solana Wallet Intel MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.