Server data from the Official MCP Registry
Read-only Sui blockchain analytics: 47 tools, protocol-aware tx decoding, no API keys or wallet.
About
Read-only Sui blockchain analytics: 47 tools, protocol-aware tx decoding, no API keys or wallet.
Security Report
This is a well-designed read-only Sui blockchain analytics MCP server with no authentication requirements (appropriate for public chain data) and sound architectural choices. The codebase demonstrates good security practices: no credential handling, proper input validation, and careful permission scoping. Minor code quality observations around error handling and type safety do not materially affect security. Supply chain analysis found 3 known vulnerabilities in dependencies (1 critical, 2 high severity). Package verification found 1 issue.
4 files analyzed · 9 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: SUI_NETWORK
Environment variable: SUI_FULLNODE_URL
Environment variable: SUI_GRAPHQL_URL
Environment variable: SUI_DECOMPILER_PATH
Environment variable: SUI_LABELS_FILE
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-0xfreak0-sui-mcp": {
"env": {
"SUI_NETWORK": "your-sui-network-here",
"SUI_GRAPHQL_URL": "your-sui-graphql-url-here",
"SUI_LABELS_FILE": "your-sui-labels-file-here",
"SUI_FULLNODE_URL": "your-sui-fullnode-url-here",
"SUI_DECOMPILER_PATH": "your-sui-decompiler-path-here"
},
"args": [
"-y",
"sui-analytics-mcp"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
sui-mcp
Read-only MCP server for Sui blockchain analytics. 47 tools for wallets, DeFi positions, NFTs, token prices, transaction decoding, Move package analysis, and incident investigation.
Install
Add this to your MCP client config — Claude Code, Claude Desktop, Cursor, or anything else that speaks MCP over stdio:
{
"mcpServers": {
"sui": {
"command": "npx",
"args": ["-y", "sui-analytics-mcp"]
}
}
}
No account, API key, or config file is required. The server reads public Sui endpoints and defaults to mainnet. Requires Node.js >= 20.
No wallet, no keys
The server has no credentials and no ability to move funds:
- It never accepts a private key, mnemonic, or seed phrase. No tool takes one as an argument and nothing in the code reads one from the environment.
- It never submits a transaction.
build_transferandbuild_stakingreturn unsigned BCS bytes that you sign and broadcast somewhere else;simulate_transactiondry-runs bytes against a fullnode without executing them. - Every remaining tool is a read.
- No provider accounts. RPC, indexing, and price data all come from public endpoints.
Capabilities
- Per-call network — every tool takes an optional
networkarg (mainnet/testnet/devnet); query multiple networks in one session (e.g. compare a testnet value to mainnet).SUI_NETWORKsets only the default. - Protocol-aware — decodes transactions from Cetus, Suilend, NAVI, Scallop, Bluefin, DeepBook, and more into human-readable actions
- Incident investigation — labeled fund tracing, funding-source attribution, multi-address timelines, object provenance, PTB anomaly triage
- Move package analysis — disassembly, heuristic risk scan, capability audit, and upgrade diffing, none of which need an external binary
- Multi-source architecture — gRPC for low-latency reads, GraphQL for filtered queries, archive node fallback for historical data
- Price aggregation — Aftermath Finance, Pyth oracles, and CoinGecko in a single unified interface
- Kiosk-aware — resolves NFT ownership through Sui's kiosk system to actual wallet addresses
- Move Registry (MVR) — resolves names like
@deepbook/coreto package addresses, and back
Configuration
All environment variables are optional. See .env.example for the full list; the common ones are SUI_NETWORK (default network), SUI_FULLNODE_URL / SUI_GRAPHQL_URL (custom RPC endpoints), and SUI_LABELS_FILE (address attribution labels for fund tracing).
{
"mcpServers": {
"sui": {
"command": "npx",
"args": ["-y", "sui-analytics-mcp"],
"env": { "SUI_NETWORK": "testnet" }
}
}
}
Move decompiler (optional)
46 of the 47 tools need nothing beyond the install above. Only decompile_module requires an external binary, and there are lighter options before you reach for it:
disassemble_modulereturns Move bytecode assembly via the GraphQL endpoint.analyze_packagesummarizes a package's API and runs a heuristic risk scan.diff_package_upgradediffs two versions of a package.
Use the decompiler when you want higher-level, source-like Move output instead of bytecode.
The binary is Revela's move-decompiler, built from Rust. It is not bundled in the npm package because a published tarball could only carry one platform's build, so you compile it once yourself and point the server at it with SUI_DECOMPILER_PATH. This works the same whether you installed via npx or from source. You need a Rust toolchain (rustup.rs); the build takes a few minutes.
git clone --depth 1 https://github.com/verichains/revela_sui.git
cd revela_sui/external-crates/move
cargo build --release --bin move-decompiler
# binary lands at target/release/move-decompiler
Then add its absolute path to your client config:
{
"mcpServers": {
"sui": {
"command": "npx",
"args": ["-y", "sui-analytics-mcp"],
"env": {
"SUI_DECOMPILER_PATH": "/absolute/path/to/revela_sui/external-crates/move/target/release/move-decompiler"
}
}
}
}
If you already cloned this repo, npm run build:decompiler does the same clone and build and copies the result to bin/move-decompiler.
Without SUI_DECOMPILER_PATH the server falls back to looking for move-decompiler on PATH. Prefer the absolute path: desktop clients often launch servers with a minimal environment that doesn't include your shell's PATH, so a binary you can run in a terminal may still be invisible to the server. If it's found in neither place, decompile_module returns an error explaining how to fix it, and the other 46 tools are unaffected.
Running from source
For development, or to run a version you've modified:
git clone https://github.com/0xfreak0/sui-mcp.git
cd sui-mcp
npm install
npm run build
Then point your client at the build output instead of npx:
{
"mcpServers": {
"sui": {
"command": "node",
"args": ["/absolute/path/to/sui-mcp/dist/index.js"]
}
}
}
See CONTRIBUTING.md for the development and release workflow.
Tools (47)
Recommended Starting Points
| Tool | Description |
|---|---|
identify_address | Identify what a Sui address is: wallet, package, validator, or object |
get_wallet_overview | Comprehensive wallet overview: balances, SuiNS name, staking, kiosks, recent txs |
get_transaction_history | Decoded activity feed with protocol names and human-readable actions |
analyze_token | Full token analysis: metadata, price, 24h change, supply, top holders |
Chain & Network
| Tool | Description |
|---|---|
get_chain_info | Current chain ID, epoch, checkpoint height, timestamp, gas price |
get_checkpoint | Checkpoint details by sequence number or digest |
Objects
| Tool | Description |
|---|---|
get_object | Object by ID with type, owner, JSON content, and display metadata |
list_owned_objects | List objects owned by an address with optional type filter |
list_dynamic_fields | Dynamic fields of an object (tables, kiosk contents, etc.) |
Coins & Tokens
| Tool | Description |
|---|---|
get_balance | Balance of a coin type for an address (defaults to SUI) |
get_coin_info | Token metadata: name, symbol, decimals, description, supply |
search_token | Search tokens by name/symbol, with Aftermath Finance fallback |
get_token_prices | USD prices for tokens — current (Aftermath + Pyth), or historical via Pyth when at is set |
Transactions & Events
| Tool | Description |
|---|---|
get_transaction | Transaction by digest with protocol-decoded actions |
query_transactions | Filter transactions by sender, address, object, or function |
query_events | Filter events by type, sender, module, or checkpoint range |
DeFi
| Tool | Description |
|---|---|
get_defi_positions | DeFi positions across Suilend, Cetus, NAVI, Scallop, Bluefin, Bucket |
find_pools | Discover liquidity pools by token pair (Cetus, DeepBook, Turbos) |
get_pool_stats | Pool reserves, fees, and prices for a given pool object ID |
NFTs
| Tool | Description |
|---|---|
list_nfts | List NFTs owned by a wallet, including kiosk-stored NFTs |
list_nft_collections | Lightweight collection summary with counts |
get_top_holders | Top holders of an NFT collection or token |
Staking
| Tool | Description |
|---|---|
get_validators | List validators (stake, commission, voting power), or full detail for one when address is set |
get_staking_summary | Wallet's staking positions and pools |
Names
| Tool | Description |
|---|---|
resolve_name | SuiNS name resolution (forward and reverse) |
Move Registry (MVR)
The Move Registry maps human-readable package names like @suins/core or @deepbook/core to on-chain package addresses. Backed by mainnet.mvr.mystenlabs.com/v1 (or testnet.mvr... when SUI_NETWORK=testnet).
| Tool | Description |
|---|---|
mvr_resolve | Resolve one or many MVR names → package IDs. Accepts version-pinned names like @suins/core/3. |
mvr_reverse_resolve | Reverse-lookup: package addresses → MVR names. Useful for enriching raw addresses anywhere. |
mvr_get_package_info | Full record for a name: metadata, version, package_address, package_info ID, git source. |
mvr_search | Browse / search the registry. Supports substring search, pagination, and an is_linked filter for published packages. |
mvr_resolve_struct | Resolve @org/app::module::Type → canonical type tag at the type's defining-package address. |
Typical flows:
- "What's the package for
@deepbook/core?" →mvr_resolve(['@deepbook/core'])→0x4874e1.... Hand the address toget_packagefor module/function details. - "What is package
0xf22f…?" →mvr_reverse_resolve(['0xf22f…'])→@suins/core. - "Find DeepBook-related packages" →
mvr_search('deepbook', limit=20, is_linked=true)→ paginated list. - "Pin to a specific version" →
mvr_resolve(['@suins/core/3'])returns the v3 package address rather than the latest.
Packages (Developer)
| Tool | Description |
|---|---|
get_package | Move package modules, structs (with ordered fields), and functions |
get_move_function | Specific Move function signature and parameters |
get_package_dependency_graph | Package dependency analysis with recursive traversal |
analyze_package | Summarize a package's API + heuristic risk scan (no binary; accepts 0x id or MVR name) |
disassemble_module | Disassemble Move bytecode via GraphQL (no binary; accepts 0x id or MVR name) |
decompile_module | Decompile Move bytecode to source (requires decompiler binary) |
diff_package_upgrade | (Security) Diff two package versions to spot what an upgrade changed — malicious-upgrade / backdoor detection |
Transaction Building
| Tool | Description |
|---|---|
build_transfer | Build an unsigned transfer of SUI or any coin (auto coin selection); returns BCS for simulate_transaction |
build_staking | Build an unsigned stake/unstake transaction (action: stake|unstake) |
simulate_transaction | Dry-run a transaction to preview effects and gas cost |
Advanced
| Tool | Description |
|---|---|
decode_ptb | Decode a Programmable Transaction Block from BCS bytes |
check_activity | Monitor address or object for new activity since a checkpoint |
Incident Investigation
| Tool | Description |
|---|---|
trace_funds | Swap-aware, USD-valued multi-hop fund tracing that stops at labeled sinks (forward or backward) |
find_funding_source | Walk an address back to its funding source(s) for attribution; stops at labeled exchanges/bridges |
build_timeline | Merge multiple addresses' activity into one checkpoint-ordered, protocol-decoded timeline |
trace_object_history | Object provenance: version history + ownership transitions (who created/held an object when) |
manage_labels | Address-label registry (exchanges, bridges, mixers, malicious wallets) used by the tracing tools |
diff_package_upgrade | Diff two package versions to detect malicious upgrades / backdoors |
License
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
MarkItDown
Freeby Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
FinAgent
Freeby mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.
