A Model Context Protocol (MCP) server that provides AI agents with secure access to Tari wallet functionality.
- Local-only binding: Server only binds to loopback addresses (127.0.0.1) for security
- Permission levels: Separate read-only and control operations with explicit user consent
- Rate limiting: Configurable request rate limits per client
- Audit logging: Optional comprehensive logging of all operations
- User confirmation: Optional confirmation prompts for value-transferring operations
- balance_check: Get current wallet balance and status
- transaction_history: Retrieve transaction history with filtering
- transfer: Send Tari to another address (requires control permission)
- burn_transaction: Create burn transactions (requires control permission)
- coin_split: Split coins for better UTXO management (requires control permission)
- address_info: Get detailed address information
- simple_balance: Current balance information
- transaction_list: Recent transactions
- balance_check: Complete wallet overview guidance
- send_transaction: Step-by-step transaction guidance
- transaction_troubleshooting: Help with transaction issues
- wallet_recovery: Wallet recovery procedures
Build from source:
cargo build --release -p minotari_mcp_walletminotari_mcp_wallet --helpMINOTARI_WALLET_MCP_ENABLED: Enable MCP serverMINOTARI_WALLET_MCP_CONTROL_ENABLED: Enable control operations (dangerous)MINOTARI_WALLET_MCP_BIND_ADDRESS: Server bind address (default: 127.0.0.1)MINOTARI_WALLET_MCP_PORT: Server port (default: 8081)MINOTARI_WALLET_MCP_MAX_CONNECTIONS: Max concurrent connections (default: 5)MINOTARI_WALLET_MCP_TIMEOUT: Request timeout in seconds (default: 60)MINOTARI_WALLET_MCP_RATE_LIMIT: Max requests per minute per client (default: 30)MINOTARI_WALLET_MCP_AUDIT_LOGGING: Enable audit loggingMINOTARI_WALLET_MCP_AUDIT_LOG_PATH: Audit log file pathMINOTARI_WALLET_GRPC_ADDRESS: Wallet gRPC endpoint (default: 127.0.0.1:18143)MINOTARI_WALLET_MCP_REQUIRE_CONFIRMATION: Require user confirmation for transfers
-
Start your Tari wallet with gRPC enabled:
minotari_console_wallet --enable-grpc
-
Start the MCP server in read-only mode (safe):
minotari_mcp_wallet --mcp-enabled
-
For control operations (allows spending - use with caution):
minotari_mcp_wallet --mcp-enabled --mcp-control-enabled --require-confirmation
Connect your AI agent to the MCP server at http://127.0.0.1:8081 using the Model Context Protocol.
Example MCP client configuration:
{
"servers": {
"tari-wallet": {
"command": "minotari_mcp_wallet",
"args": ["--mcp-enabled"],
"env": {
"MINOTARI_WALLET_MCP_ENABLED": "true"
}
}
}
}-
Control Operations: When
--mcp-control-enabledis set, AI agents can spend your funds. Only enable this in fully trusted environments. -
Network Binding: The server only binds to localhost (127.0.0.1) for security. Do not modify this unless you understand the risks.
-
User Confirmation: Use
--require-confirmationfor additional safety when control operations are enabled. -
Audit Logging: Enable audit logging in production environments to track all operations.
For Development/Testing:
minotari_mcp_wallet --mcp-enabled --mcp-audit-loggingFor AI Integration (Read-Only):
minotari_mcp_wallet --mcp-enabled --mcp-audit-logging --mcp-rate-limit 10For Trusted AI Control (use with extreme caution):
minotari_mcp_wallet --mcp-enabled --mcp-control-enabled --require-confirmation --mcp-audit-loggingThe server is built on the minotari_mcp_common framework and integrates with the Tari wallet via gRPC.
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ AI Agent │───▶│ MCP Server │───▶│ Tari Wallet │
│ (Claude, etc) │ │ (This App) │ │ (gRPC API) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
- Create a new tool in
src/tools/ - Implement the
McpTooltrait - Register it in
src/tools/mod.rs - Add appropriate tests
cargo test -p minotari_mcp_wallet- Connection refused: Ensure the Tari wallet is running with gRPC enabled
- Permission denied: Check that control operations are enabled if needed
- Rate limited: Adjust
--mcp-rate-limitif hitting limits - Timeout errors: Increase
--mcp-timeoutfor slow operations
Check logs in log/application.log for detailed operation information.
BSD-3-Clause - see LICENSE file for details.