{
  "markdown": "# sui-mcp-server\n\n[![npm version](https://img.shields.io/npm/v/sui-mcp-server)](https://www.npmjs.com/package/sui-mcp-server)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node](https://img.shields.io/badge/Node-%3E%3D18-339933?logo=node.js)](https://nodejs.org)\n[![Tools](https://img.shields.io/badge/tools-53-blue)](https://modelcontextprotocol.io)\n\n**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.\n\nCompetitors offer 10-15 tools for basic operations. This server covers the entire Sui ecosystem in a single package.\n\n## Install\n\n```bash\nnpx sui-mcp-server\n```\n\nOr install globally:\n\n```bash\nnpm install -g sui-mcp-server\nsui-mcp-server\n```\n\n## Configure\n\nAdd to your MCP config (`claude_desktop_config.json` or `~/.mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"sui\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"sui-mcp-server\"]\n    }\n  }\n}\n```\n\nNo API key required -- connects directly to Sui public RPC nodes.\n\n## Tools (53)\n\n### Wallet Management (4)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `create_wallet` | Create a new Ed25519 keypair (in-memory only, not persisted) | -- |\n| `import_wallet` | Import from a Bech32-encoded private key (`suiprivkey...`) | `privateKey` |\n| `list_wallets` | List all wallets in the current session | -- |\n| `get_balance` | Get SUI balance for any address | `address` |\n\n### Coin Operations (4)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `get_all_balances` | All coin balances for an address (SUI + other coin types) | `address` |\n| `get_coins` | Coin objects of a specific type owned by an address | `address`, `coinType` |\n| `get_coin_metadata` | Metadata for a coin type (name, symbol, decimals) | `coinType` |\n| `get_total_supply` | Total circulating supply of a coin type | `coinType` |\n\n### Transfers (4)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `transfer_sui` | Transfer SUI between addresses (amount in SUI, not MIST) | `from`, `to`, `amount` |\n| `transfer_objects` | Transfer one or more objects to a recipient | `from`, `objectIds`, `to` |\n| `merge_coins` | Merge multiple coins into one (handles gas conflicts) | `walletName`, `coinType` |\n| `split_coins` | Split a coin into multiple coins | `walletName`, `coinId`, `amounts` |\n\n### Object Queries (5)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `get_object` | Full details of any on-chain object by ID | `objectId` |\n| `get_owned_objects` | Objects owned by an address with optional type filtering | `address`, `type` |\n| `get_dynamic_fields` | Dynamic fields of an object (tables, bags) | `parentId` |\n| `multi_get_objects` | Batch-fetch up to 50 objects in one call | `objectIds` |\n| `get_object_history` | Trace all transactions that touched a given object | `objectId` |\n\n### Transactions (4)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `get_transaction` | Full transaction details by digest | `digest` |\n| `dry_run_transaction` | Dry-run to preview effects without executing | `txBytes` |\n| `query_transactions` | Search by sender, recipient, object, or Move function | `filter` |\n| `get_total_transactions` | Total transaction count on the network | -- |\n\n### Move Smart Contracts (7)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `move_call` | Execute a Move function call | `walletName`, `target`, `arguments` |\n| `dev_inspect` | Simulate a Move call without executing (no wallet needed) | `sender`, `target`, `arguments` |\n| `get_normalized_module` | Full Move module definition (functions, structs) | `package`, `module` |\n| `get_move_function` | Move function details (params, return types, visibility) | `package`, `module`, `function` |\n| `get_move_struct` | Move struct definition (fields, abilities) | `package`, `module`, `struct` |\n| `get_package_modules` | List all modules in a Move package | `package` |\n| `get_move_call_metrics` | Network-wide Move call metrics | -- |\n\n### Staking (4)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `get_stakes` | All staking positions for an address | `address` |\n| `request_add_stake` | Stake SUI with a validator | `walletName`, `amount`, `validator` |\n| `request_withdraw_stake` | Withdraw staked SUI | `walletName`, `stakedSuiId` |\n| `get_validators` | Full validator set with APY, commission, and stake amounts | -- |\n\n### Events (1)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `query_events` | Query on-chain events by type, sender, package, or digest | `filter` |\n\n### Network & Analytics (9)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `switch_network` | Switch between mainnet, testnet, devnet, localnet | `network` |\n| `get_network_info` | Chain ID, epoch, gas price, latest checkpoint | -- |\n| `get_latest_checkpoint` | Latest checkpoint sequence number | -- |\n| `get_reference_gas_price` | Current reference gas price in MIST | -- |\n| `get_checkpoint` | Detailed checkpoint data by sequence number | `sequenceNumber` |\n| `get_epoch_info` | Historical epoch data (times, stakes, gas summaries) | `epoch` |\n| `get_protocol_config` | Sui protocol configuration (limits, features) | -- |\n| `get_system_state` | Full system state: epoch, validators, storage fund | -- |\n| `get_committee_info` | Validator committee info for any epoch | `epoch` |\n\n### SuiNS Name Service (4)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `resolve_name` | Resolve `example.sui` to a Sui address | `name` |\n| `resolve_address` | Reverse-resolve an address to SuiNS name(s) | `address` |\n| `suins_get_name_record` | Full name record -- NFT ID, target, expiration, metadata | `name` |\n| `suins_get_price` | Registration and renewal pricing by name length | `length` |\n\n### DeFi: Cetus DEX (2)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `cetus_get_pools` | Query Cetus CLMM pools by coin types | `coinTypeA`, `coinTypeB` |\n| `cetus_get_pool` | Detailed pool data for a specific Cetus pool | `poolId` |\n\n### DeFi: DeepBook (1)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `deepbook_get_pool` | DeepBook v3 order book data -- pool state and dynamic fields | `poolId` |\n\n### DeFi: Token Tools (3)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `get_token_price` | Token price by querying DeFi pool reserves | `token` |\n| `swap_quote` | Swap quote by simulating against a pool | `tokenIn`, `tokenOut`, `amount` |\n| `list_common_tokens` | Common Sui tokens with full coin type addresses | -- |\n\n### Faucet (1)\n\n| Tool | Description | Key Params |\n|------|-------------|------------|\n| `request_faucet` | Request SUI from faucet (devnet and testnet only) | `address` |\n\n## Why This One?\n\n- **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.\n- **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.\n- **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.\n\n## Token Shortcuts\n\nUse symbol shortcuts instead of full coin type addresses:\n\n| Shortcut | Full Coin Type |\n|----------|---------------|\n| `SUI` | `0x2::sui::SUI` |\n| `USDC` | `0xdba34672e...::usdc::USDC` |\n| `USDT` | `0xc060006111...::coin::COIN` |\n| `WETH` | `0xaf8cd5edc1...::coin::COIN` |\n| `DEEP` | `0xdeeb7a4662...::deep::DEEP` |\n\n## Networks\n\nStarts on **devnet** by default. Switch at any time with `switch_network`:\n\n| Network | RPC Endpoint |\n|---------|-------------|\n| `mainnet` | `https://fullnode.mainnet.sui.io:443` |\n| `testnet` | `https://fullnode.testnet.sui.io:443` |\n| `devnet` | `https://fullnode.devnet.sui.io:443` |\n| `localnet` | `http://127.0.0.1:9000` |\n\n## Security\n\n- Keys are in-memory only -- never written to disk, never logged\n- Private keys redacted from all error messages\n- Rate limiting: 120 calls/minute (sliding window)\n- All inputs validated with Zod strict schemas\n\n## Development\n\n```bash\ngit clone https://github.com/ExpertVagabond/sui-mcp-server.git\ncd sui-mcp-server\nnpm install\nnpm run build\nnpm start\n```\n\n## License\n\nMIT -- [Matthew Karsten](https://github.com/ExpertVagabond) / [Purple Squirrel Media](https://purplesquirrelmedia.io)\n",
  "bytes": 8791,
  "sha": "d11c578e4566917ed257a20a25c60b72e9f194309e1c7b07a0c632d5f0aa3c44",
  "repo_slug": "expertvagabond/sui-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_expertvagabond_sui_mcp_server_aa757905/readme"
}