This monorepo contains implementations of the Model Context Protocol for different blockchain networks, providing tools and services for blockchain data access and interaction.
MCP3 provides a comprehensive suite of tools for interacting with the Sui blockchain. The main package @mcp3/sui offers a CLI and API for common operations, while specialized packages provide additional functionality for specific protocols and use cases.
Add following to your claude desktop config
{
...
"mcpServers": {
...
"mcp3-sui": {
"command": "npx",
"args": [
"-y",
"@mcp3/sui",
"start",
"-t"
]
}
...
}
}
For a list of available commands and options, run:
npx @mcp3/sui --help
MCP3 provides a unified tool command that organizes all tools from sub-projects as subcommands. To see all available tools, run:
npx @mcp3/sui tool
This will display a list of all available tools grouped by their prefix (e.g., sui-cetus, sui-wallets, etc.).
To run a specific tool, use:
npx @mcp3/sui tool <tool-name> [options]
For example:
npx @mcp3/sui tool sui-wallets-list
npx @mcp3/sui tool sui-cetus-pool-list
@mcp3/common: Shared utilities, types, and tools used across all implementations@mcp3/eth: Ethereum implementation of the Model Context Protocol@mcp3/sui: Sui Network implementation of the Model Context Protocol@mcp3/sui-base: Base utilities and tools for Sui Network@mcp3/sui-wallets: Wallet management tools for Sui Network@mcp3/sui-cetus: Cetus Protocol integration for Sui Network@mcp3/sui-navi: Navi Protocol integration for Sui Network@mcp3/dex-screener: DexScreener API integration for MCP3@mcp3/defilama: DeFiLlama API integration for MCP3@mcp3/transaction-server: Server for handling transactions and serving the transaction UI@mcp3/transaction-ui: React component library for transaction signing and submissionThis project uses pnpm as the package manager and workspaces for managing the monorepo.
MCP3 uses a unified CLI structure where:
tool commandtool commandWhen implementing new tools:
registration.addTool() in your packagestartCli function as the second parameterExample:
// Create a callback function to register tools
const registerTools = async (reg: Registration) => {
// Register your tools
registerYourTools(reg);
};
// Register tools immediately for the main CLI
registerTools(registration);
// Pass the callback to startCli
startCli(registration, registerTools);
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Clean all packages
pnpm clean
# Run tests
pnpm test
# Build a specific package
pnpm --filter @mcp3/eth build
# Run a specific package
pnpm --filter @mcp3/sui start
# Run tests for a specific package
pnpm --filter @mcp3/sui-navi test
The packages in this monorepo have the following dependency relationships:
@mcp3/common for shared utilities@mcp3/sui-base for core Sui functionality@mcp3/sui has peer dependencies on various Sui ecosystem packages@mcp3/transaction-server depends on @mcp3/transaction-ui for serving the UIPackages in this monorepo are versioned independently. When making changes:
sui-navi package when bumping versionsEach package has its own test suite. For the sui-navi project, tests follow the same patterns as in sui-wallets, using the node:tests framework with tsx for dev dependencies.
# Run all tests
pnpm test
# Run tests for a specific package
pnpm --filter @mcp3/sui-navi test
Contributions to MCP3 are welcome! Here are some guidelines:
ISC