Skip to content

An MCP server for querying Solana transactions using natural language with Solscan API

Notifications You must be signed in to change notification settings

wowinter13/solscan-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🟣🔎 solscan-mcp: A Solscan API MCP Server in Rust

Overview

A Model Context Protocol (MCP) server for interacting with the Solscan Pro API for Solana blockchain data. This server provides tools to query token information, account activities, and transaction details on the Solana blockchain via Large Language Models.

Examples

Simple prompts:

demo.mp4

You can also use it for much more complex queries, like analyzing criminal activity combining multiple MCPs and correct context.

For example, upload a csv list of suspected addresses, then using perplexity-mcp research tool LLM will add info to context window on how investigators define criminal wallets based on their activity (mev, dusting, poisoning, sandwiched, etc) -> solscan-mcp will use this context to investigate the wallets and provide a report.

Features

For detailed documentation of all available tools, see TOOLS.md.

Installation

Prerequisites:

  • Rust toolchain (install via rustup) – for regular usage
  • Docker – for Docker usage
  • Solscan Pro API key. You can obtain one from Solscan APIs.

Regular

cargo install solscan-mcp

where solscan-mcp # -> /Users/$username/.cargo/bin/solscan-mcp

Add the following to your claude_desktop_config.json or claude_config.json:

{
  "mcpServers": {
    "solscan-mcp": {
      "command": "/Users/$username/.cargo/bin/solscan-mcp",
      "args": [],
      "env": {
        "SOLSCAN_API_KEY": "your_solscan_api_key"
      }
    }
  }
}

Docker

WIP, will be available soon.

Code quality Notes

I treat MCPs like useful scripts, as the structure of the APIs they rely on can always change. So, api.rs could definitely be split into multiple APIs based on Solscan namespaces. My main goal was to make it work and be easy to maintain, while ensuring errors are ignored without breaking the flow (unlike many MCPs I've tested in Python/TS, which crash painfully when they don't gracefully handle simple errors).

License

MIT

Releases

No releases published

Packages

No packages published

Languages