Skip to main content
Glama
sui-mcp-server

sui-mcp-server

sui-mcp-server

npm version License: MIT Node Tools

The most comprehensive Sui blockchain MCP server. 53 tools with GraphQL + JSON-RPC dual transport -- wallets, DeFi (Cetus, DeepBook), SuiNS, staking, validators, Move introspection, and the full Sui RPC surface.

Competitors offer 10-15 tools for basic operations. This server covers the entire Sui ecosystem in a single package.

Install

npx sui-mcp-server

Or install globally:

npm install -g sui-mcp-server
sui-mcp-server

Related MCP server: Stacks AI MCP Server

Configure

Add to your MCP config (claude_desktop_config.json or ~/.mcp.json):

{
  "mcpServers": {
    "sui": {
      "command": "npx",
      "args": ["-y", "sui-mcp-server"]
    }
  }
}

No API key required -- connects directly to Sui public RPC nodes.

Tools (53)

Wallet Management (4)

Tool

Description

Key Params

create_wallet

Create a new Ed25519 keypair (in-memory only, not persisted)

--

import_wallet

Import from a Bech32-encoded private key (suiprivkey...)

privateKey

list_wallets

List all wallets in the current session

--

get_balance

Get SUI balance for any address

address

Coin Operations (4)

Tool

Description

Key Params

get_all_balances

All coin balances for an address (SUI + other coin types)

address

get_coins

Coin objects of a specific type owned by an address

address, coinType

get_coin_metadata

Metadata for a coin type (name, symbol, decimals)

coinType

get_total_supply

Total circulating supply of a coin type

coinType

Transfers (4)

Tool

Description

Key Params

transfer_sui

Transfer SUI between addresses (amount in SUI, not MIST)

from, to, amount

transfer_objects

Transfer one or more objects to a recipient

from, objectIds, to

merge_coins

Merge multiple coins into one (handles gas conflicts)

walletName, coinType

split_coins

Split a coin into multiple coins

walletName, coinId, amounts

Object Queries (5)

Tool

Description

Key Params

get_object

Full details of any on-chain object by ID

objectId

get_owned_objects

Objects owned by an address with optional type filtering

address, type

get_dynamic_fields

Dynamic fields of an object (tables, bags)

parentId

multi_get_objects

Batch-fetch up to 50 objects in one call

objectIds

get_object_history

Trace all transactions that touched a given object

objectId

Transactions (4)

Tool

Description

Key Params

get_transaction

Full transaction details by digest

digest

dry_run_transaction

Dry-run to preview effects without executing

txBytes

query_transactions

Search by sender, recipient, object, or Move function

filter

get_total_transactions

Total transaction count on the network

--

Move Smart Contracts (7)

Tool

Description

Key Params

move_call

Execute a Move function call

walletName, target, arguments

dev_inspect

Simulate a Move call without executing (no wallet needed)

sender, target, arguments

get_normalized_module

Full Move module definition (functions, structs)

package, module

get_move_function

Move function details (params, return types, visibility)

package, module, function

get_move_struct

Move struct definition (fields, abilities)

package, module, struct

get_package_modules

List all modules in a Move package

package

get_move_call_metrics

Network-wide Move call metrics

--

Staking (4)

Tool

Description

Key Params

get_stakes

All staking positions for an address

address

request_add_stake

Stake SUI with a validator

walletName, amount, validator

request_withdraw_stake

Withdraw staked SUI

walletName, stakedSuiId

get_validators

Full validator set with APY, commission, and stake amounts

--

Events (1)

Tool

Description

Key Params

query_events

Query on-chain events by type, sender, package, or digest

filter

Network & Analytics (9)

Tool

Description

Key Params

switch_network

Switch between mainnet, testnet, devnet, localnet

network

get_network_info

Chain ID, epoch, gas price, latest checkpoint

--

get_latest_checkpoint

Latest checkpoint sequence number

--

get_reference_gas_price

Current reference gas price in MIST

--

get_checkpoint

Detailed checkpoint data by sequence number

sequenceNumber

get_epoch_info

Historical epoch data (times, stakes, gas summaries)

epoch

get_protocol_config

Sui protocol configuration (limits, features)

--

get_system_state

Full system state: epoch, validators, storage fund

--

get_committee_info

Validator committee info for any epoch

epoch

SuiNS Name Service (4)

Tool

Description

Key Params

resolve_name

Resolve example.sui to a Sui address

name

resolve_address

Reverse-resolve an address to SuiNS name(s)

address

suins_get_name_record

Full name record -- NFT ID, target, expiration, metadata

name

suins_get_price

Registration and renewal pricing by name length

length

DeFi: Cetus DEX (2)

Tool

Description

Key Params

cetus_get_pools

Query Cetus CLMM pools by coin types

coinTypeA, coinTypeB

cetus_get_pool

Detailed pool data for a specific Cetus pool

poolId

DeFi: DeepBook (1)

Tool

Description

Key Params

deepbook_get_pool

DeepBook v3 order book data -- pool state and dynamic fields

poolId

DeFi: Token Tools (3)

Tool

Description

Key Params

get_token_price

Token price by querying DeFi pool reserves

token

swap_quote

Swap quote by simulating against a pool

tokenIn, tokenOut, amount

list_common_tokens

Common Sui tokens with full coin type addresses

--

Faucet (1)

Tool

Description

Key Params

request_faucet

Request SUI from faucet (devnet and testnet only)

address

Why This One?

  • 53 tools vs 10-15. Competitors like 0xdwong/sui-mcp cover basic operations. This server includes DeFi (Cetus, DeepBook), SuiNS, Move introspection, staking, validators, and full analytics.

  • GraphQL + JSON-RPC dual transport. Built on the official @mysten/sui v2.11 SDK with @mysten/suins for name service -- future-proofed for the GraphQL migration.

  • Tested end-to-end. 59 passing tests across devnet, testnet, and mainnet. Wallet creation, transfers, staking, DeFi queries, SuiNS resolution, and Move inspection all verified.

Token Shortcuts

Use symbol shortcuts instead of full coin type addresses:

Shortcut

Full Coin Type

SUI

0x2::sui::SUI

USDC

0xdba34672e...::usdc::USDC

USDT

0xc060006111...::coin::COIN

WETH

0xaf8cd5edc1...::coin::COIN

DEEP

0xdeeb7a4662...::deep::DEEP

Networks

Starts on devnet by default. Switch at any time with switch_network:

Network

RPC Endpoint

mainnet

https://fullnode.mainnet.sui.io:443

testnet

https://fullnode.testnet.sui.io:443

devnet

https://fullnode.devnet.sui.io:443

localnet

http://127.0.0.1:9000

Security

  • Keys are in-memory only -- never written to disk, never logged

  • Private keys redacted from all error messages

  • Rate limiting: 120 calls/minute (sliding window)

  • All inputs validated with Zod strict schemas

Development

git clone https://github.com/ExpertVagabond/sui-mcp-server.git
cd sui-mcp-server
npm install
npm run build
npm start

License

MIT -- Matthew Karsten / Purple Squirrel Media

Available Tools

53 tools
cetus_get_poolB

Get detailed info for a specific Cetus pool by its object ID.

Inputs: poolId (required).

cetus_get_poolsA

Query Cetus CLMM pools by coin types. Returns pool addresses, liquidity, and fee rates.

Inputs: coinTypeA, coinTypeB, limit.

create_walletA

Create a new Sui wallet (Ed25519 keypair). Keys are held in memory only.

Inputs: name (required).

deepbook_get_poolA

Get DeepBook v3 pool info (order book) — mid price, spread, balances.

Inputs: poolId (required).

dev_inspectA

Simulate a Move call without executing it — returns results, gas cost, and effects. No wallet needed.

Inputs: sender (required), target (required), arguments, typeArguments.

dry_run_transactionA

Dry-run a transaction to preview effects without executing.

Inputs: txBytes (required).

get_all_balancesB

Get all coin balances for an address (SUI and all other coin types).

Inputs: address (required).

get_balanceB

Get SUI balance for an address.

Inputs: address (required).

get_checkpointB

Get detailed checkpoint data by sequence number.

Inputs: sequenceNumber (required).

get_coin_metadataA

Get metadata for a coin type (name, symbol, decimals, description).

Inputs: coinType (required).

get_coinsA

Get coin objects of a specific type owned by an address.

Inputs: address (required), coinType, limit.

get_committee_infoB

Get validator committee information for a specific epoch.

Inputs: epoch.

get_dynamic_fieldsB

Get dynamic fields of an object.

Inputs: parentId (required), limit.

get_epoch_infoC

Get detailed info about epochs (current or historical).

Inputs: limit, order.

get_latest_checkpointA

Get the latest checkpoint sequence number.

Inputs: no named parameters.

get_move_call_metricsA

Get Move call metrics — most-called packages, modules, and functions.

Inputs: no named parameters.

get_move_functionB

Get details of a specific Move function.

Inputs: packageId (required), moduleName (required), functionName (required).

get_move_structA

Get a Move struct definition (fields, abilities, type parameters).

Inputs: packageId (required), moduleName (required), structName (required).

get_network_infoA

Get current network info: chain ID, epoch, reference gas price, checkpoint.

Inputs: no named parameters.

get_normalized_moduleB

Get the normalized Move module definition (functions, structs, etc.).

Inputs: packageId (required), moduleName (required).

get_objectB

Get details of a Sui object by its ID.

Inputs: objectId (required), showContent, showType, showOwner.

get_object_historyA

Find all transactions that touched a given object (trace provenance).

Inputs: objectId (required), limit.

get_owned_objectsB

Get objects owned by an address.

Inputs: address (required), limit, filter.

get_package_modulesB

List all modules in a Move package, with their functions and structs.

Inputs: packageId (required).

get_protocol_configA

Get the current Sui protocol configuration (limits, features, gas settings).

Inputs: no named parameters.

get_reference_gas_priceA

Get current reference gas price.

Inputs: no named parameters.

get_stakesA

Get all staking positions for an address.

Inputs: address (required).

get_system_stateA

Get the full Sui system state: epoch, validators, stake distribution, gas price, storage fund.

Inputs: no named parameters.

get_token_priceA

Get approximate token price by querying DeFi pool reserves. Supports common tokens: SUI, USDC, USDT, WETH, DEEP.

Inputs: token (required).

get_total_supplyB

Get total supply of a coin type.

Inputs: coinType (required).

get_total_transactionsA

Get the total number of transactions on the network.

Inputs: no named parameters.

get_transactionB

Get transaction details by digest.

Inputs: digest (required), showInput, showEffects, showEvents.

get_validatorsA

Get current validator set with APY, commission, and stake info.

Inputs: no named parameters.

import_walletB

Import a Sui wallet from a Bech32-encoded private key (suiprivkey...).

Inputs: name (required), privateKey (required).

list_common_tokensA

List commonly used Sui token types (SUI, USDC, USDT, WETH, DEEP) with their full coin type addresses.

Inputs: no named parameters.

list_walletsA

List all wallets managed in this session.

Inputs: no named parameters.

merge_coinsA

Merge multiple coins into one. All coins must be the same type.

Inputs: wallet (required), primaryCoin (required), coinsToMerge (required).

move_callC

Execute a Move function call. Arguments are passed as an array of strings/numbers.

Inputs: wallet (required), target (required), arguments, typeArguments.

multi_get_objectsA

Batch-fetch multiple objects by their IDs in one call.

Inputs: objectIds (required), showContent, showType.

query_eventsB

Query on-chain events by type, sender, package, module, or transaction digest.

Inputs: filter (required), limit, order.

query_transactionsA

Search and filter transactions by sender, recipient, input object, changed object, or Move function.

Inputs: filter (required), limit, order.

request_add_stakeB

Stake SUI with a validator. Amount is in SUI.

Inputs: wallet (required), validatorAddress (required), amount (required).

request_faucetA

Request SUI from the faucet (devnet/testnet only).

Inputs: address (required).

request_withdraw_stakeC

Withdraw staked SUI.

Inputs: wallet (required), stakeObjectId (required).

resolve_addressB

Reverse-resolve an address to its SuiNS name(s).

Inputs: address (required).

resolve_nameB

Resolve a SuiNS name to an address.

Inputs: name (required).

split_coinsB

Split a coin into multiple coins with specified amounts (in MIST).

Inputs: wallet (required), coinId (required), amounts (required).

suins_get_name_recordA

Get detailed SuiNS name record — NFT ID, target address, expiration, metadata.

Inputs: name (required).

suins_get_priceA

Get SuiNS registration and renewal pricing.

Inputs: name (required), years.

swap_quoteA

Get a swap quote by simulating a Move call. Returns estimated output amount and gas cost without executing.

Inputs: fromCoin (required), toCoin (required), amount (required), poolId (required).

switch_networkA

Switch to a different Sui network.

Inputs: network (required).

transfer_objectsB

Transfer one or more objects to a recipient address.

Inputs: fromWallet (required), toAddress (required), objectIds (required).

transfer_suiA

Transfer SUI from a managed wallet to a recipient address. Amount is in SUI (not MIST).

Inputs: fromWallet (required), toAddress (required), amount (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 53 tools

    Disambiguation4/5

    Tools are generally well-distinguished with specific purposes, though the large number of get_* query tools (e.g., get_epoch_info, get_checkpoint, get_system_state) could cause minor confusion if descriptions are not carefully read. Overall, the overlap is minimal.

    Naming Consistency5/5

    All tools follow snake_case and a consistent verb_noun pattern. Prefixes like cetus_, deepbook_, suins_ are used sparingly and logically. No mixing of naming conventions.

    Tool Count1/5

    With 53 tools, the surface is far too large for an MCP server. Agents will face a overwhelming number of options, many of which could be combined or omitted. This exceeds even the 25+ threshold for 'too many'.

    Completeness5/5

    The tool set covers virtually all major Sui blockchain operations: wallet management, token operations, DeFi interactions, staking, naming services, network queries, transaction history, and Move execution. No obvious gaps are present.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      F
      maintenance
      An MCP server for the Sui blockchain that enables AI agents to manage accounts, execute token swaps, and perform smart contract development using the Sui CLI. It supports over 30 tools for DeFi operations, staking, and market data via Pyth price oracles.
      25 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A comprehensive MCP server providing unified access to over 144 tools for lending, trading, and staking across six major DeFi protocols on the Stacks Bitcoin Layer 2. It enables AI agents to perform complex blockchain operations and interact with the DeFi ecosystem using natural language commands.
      3
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      An MCP server providing tools for Sui blockchain interaction, including wallet management and Move smart contract development. It enables users to build, test, and publish contracts, query on-chain objects, and execute transactions through Claude.
      14
      8 npm
      MIT