sui-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SUI_GRPC_URL | No | Global fall-through gRPC endpoint | |
| SUI_ARCHIVE_URL | No | Global fall-through Archival Service endpoint | |
| SUI_GRAPHQL_URL | No | Global fall-through GraphQL endpoint | |
| SUI_MAINNET_GRPC_URL | No | Per-network gRPC endpoint override for mainnet | public-good URL |
| SUI_TESTNET_GRPC_URL | No | Per-network gRPC endpoint override for testnet | public-good URL |
| SUI_MAINNET_ARCHIVE_URL | No | Per-network Archival Service endpoint override for mainnet | public-good URL |
| SUI_MAINNET_GRAPHQL_URL | No | Per-network GraphQL endpoint override for mainnet | public-good URL |
| SUI_MCP_DEFAULT_NETWORK | No | Network used when a tool call doesn't specify one | mainnet |
| SUI_TESTNET_ARCHIVE_URL | No | Per-network Archival Service endpoint override for testnet | public-good URL |
| SUI_TESTNET_GRAPHQL_URL | No | Per-network GraphQL endpoint override for testnet | public-good URL |
| SUI_MCP_ENABLE_EXECUTION | No | Expose sui_execute_transaction | false |
| SUI_MCP_STREAM_MAX_FRAMES | No | Per-call cap on streamed frames | 10 |
| SUI_MCP_STREAM_MAX_SECONDS | No | Per-call wall-clock cap on streaming | 30 |
| SUI_MCP_ENABLE_SUBSCRIPTIONS | No | Expose sui_stream_checkpoints | true |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sui_get_objectA | Fetch a Sui object's current state by object id. Returns the object's owner, type, version, digest, previous-transaction pointer, and Move contents (BCS). Use for any 'what is object 0x...' question — bypass GraphQL for single-object reads. By default routes 'auto': tries the live full node, falls back to the Archival Service if live has expired this version. The trace records the fallback chain. |
| sui_get_transactionA | Fetch a transaction by its base58 digest. Returns the transaction body, effects (status, gas summary, changed objects), events, and signatures. The right tool for 'what happened in tx '. Defaults to 'auto' routing — live first, falls back to archive on retention boundary. |
| sui_get_checkpointA | Fetch a checkpoint by sequence number, digest, or 'latest'. Returns the checkpoint header, summary (timestamp, networkTotalTransactions), and digest. Defaults to 'auto' routing — live first, archive fallback. For latest=true the live node is always authoritative; auto still works (archive returns its latest as a fallback if live is unreachable). |
| sui_get_epochA | Fetch metadata for an epoch — committee, system state, first/last checkpoint, reference gas price. Use epoch='current' for the live epoch. |
| sui_batch_get_objectsA | Fetch up to 50 objects in one round-trip. Returns per-object results (each may succeed or fail individually). Prefer this over a loop of sui_get_object when you have a known list of ids. |
| sui_batch_get_transactionsA | Fetch up to 50 transactions in one round-trip. Per-item errors do not fail the batch. |
| sui_get_service_infoA | Probe a gRPC endpoint for its chain identifier, latest checkpoint, and the lowest checkpoint it still has. Useful for picking between live and archive when you don't know which side has the data you need. |
| sui_get_balanceA | Get the aggregated coin balance for an address, optionally for a specific coin type (defaults to 0x2::sui::SUI). |
| sui_list_balancesB | List all coin-type balances held by an address. Paginated. |
| sui_list_owned_objectsA | List the objects an address owns, paginated. Each item carries object_id + version + type — fetch full bodies via sui_get_object or sui_batch_get_objects. |
| sui_get_coin_infoA | Get coin metadata (decimals, symbol, name, icon) for a coin type. Cacheable; metadata rarely changes. |
| sui_list_dynamic_fieldsB | List dynamic fields attached to a parent object. Useful when crawling tables/bags/dynamic object fields. |
| sui_get_packageA | Get a Move package by id — its modules, ABI, dependencies, and on-chain bytecode pointer. The starting point for any 'what does this contract expose?' question. |
| sui_get_functionA | Get the signature of a specific Move entry/public function — type parameters, argument types, return types, visibility. Use this before calling sui_simulate_transaction or constructing a PTB. |
| sui_get_datatypeA | Get a Move datatype (struct or enum) definition — its fields, abilities, and type parameters. |
| sui_list_package_versionsA | List historical versions of a Move package — the upgrade chain. Useful when an address points at an older snapshot of a contract. |
| sui_address_overviewA | One-shot relational read for an address — balance + owned objects (first 12) + recent transactions (first 10). Replaces 4–5 separate gRPC calls. Use as the default 'tell me about this address' tool. |
| sui_chain_tipA | Lightweight 'about this network' read — chain identifier, latest checkpoint, current epoch + reference gas price. One query. |
| sui_recent_checkpointsA | Recent checkpoint feed with digests, timestamps, and per-checkpoint transaction counts. |
| sui_object_history_stepA | Walk one step backward through an object's history. Returns the prior valid version + the digest of the transaction that produced this version. Object versions are NOT a +1 monotonic counter — this tool encapsulates the canonical 'previousTransaction → effects.changedObjects.inputVersion' walk so agents don't re-implement it. |
| sui_transaction_richA | Pull transaction effects, gas summary, balance changes, and the checkpoint pointer in one GraphQL round-trip — relational reads gRPC isn't shaped for. |
| sui_graphql_queryA | Run an arbitrary GraphQL query against the Sui GraphQL endpoint. The escape hatch for the agentic dispatcher pattern: when no curated tool fits, the agent crafts its own query. Use sui_graphql_introspect first if you don't know the schema. NOTE: Sui's GraphQL RPC is indexer-backed and already composes the Archival Service under the hood, so an empty/null GraphQL result usually means the indexer doesn't have the entity at the requested level — running a parallel archive query is rarely useful. The right escalation when GraphQL returns null for a known id/digest/checkpoint is to drop to sui_get_object / sui_get_transaction / sui_get_checkpoint with source='auto' (the live→archive fallback covers retention boundary cases the indexer hasn't materialized). |
| sui_graphql_introspectA | Introspect the Sui GraphQL schema. Returns the type system so an agent can construct a valid sui_graphql_query. |
| sui_describe_grpc_servicesA | Return the catalog of gRPC services and methods this MCP server can reach (with which curated tool, if any, wraps each one). Use this when deciding whether to call a curated tool or fall back to sui_grpc_call. |
| sui_list_endpointsA | Return the gRPC, GraphQL, and Archival URLs in use for a given network, after env-override resolution. Useful when deploying behind a self-hosted full node. |
| sui_grpc_callA | Escape hatch: call any READ method on the LedgerService / StateService / MovePackageService directly. Args are forwarded as-is to the @mysten/sui SuiGrpcClient. Pass |
| sui_stream_checkpointsA | Subscribe to new checkpoints and return a window of up to 10 frames (or until 30s elapse, whichever comes first). Each frame carries the cursor + checkpoint summary. Call repeatedly to tail the chain — pass the last cursor back as 'after_cursor' for resumable reads. |
| sui_simulate_transactionA | Dry-run a transaction. Always safe — no state changes, no fees. Returns effects, command outputs, and a suggested_gas_price. Use this before any real execution to check that the tx will succeed and to size gas. Accepts BCS-encoded transaction bytes (base64). |
| sui_execute_transactionC | (disabled) Submit a pre-signed transaction. Set SUI_MCP_ENABLE_EXECUTION=true on the server to enable. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/abhinavg6/sui-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server