Skip to main content

Integration Guide

The MCP 0G Server can be integrated with various AI assistants and platforms that support the Model Context Protocol (MCP).

Claude Desktop Integration

Prerequisites

  • Claude Desktop application installed
  • Node.js 18.0 or higher
  • MCP 0G Server installed and built

Configuration Steps

  1. Locate Configuration File Find your Claude Desktop configuration file:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Add Server Configuration Edit the configuration file to include the MCP 0G server:
    {
      "mcpServers": {
        "0g-chain": {
          "command": "node",
          "args": ["/absolute/path/to/mcp-0g/dist/index.js"],
          "env": {
            "ZEROQ_RPC_URL": "https://evmrpc-testnet.0g.ai"
          }
        }
      }
    }
    
  3. Restart Claude Desktop Close and restart Claude Desktop for changes to take effect.
  4. Verify Connection Look for the 🔌 icon in Claude’s interface and confirm “0g-chain” appears in the server list.

Advanced Configuration

Custom Environment Variables

{
  "mcpServers": {
    "0g-chain": {
      "command": "node",
      "args": ["/path/to/mcp-0g/dist/index.js"],
      "env": {
        "ZEROQ_RPC_URL": "https://evmrpc-testnet.0g.ai",
        "RATE_LIMIT_REQUESTS": "200",
        "RATE_LIMIT_WINDOW": "60000",
        "DEBUG": "mcp:0g"
      }
    }
  }
}

Using Process Manager

For production deployments, use a process manager:
{
  "mcpServers": {
    "0g-chain": {
      "command": "pm2",
      "args": ["start", "/path/to/mcp-0g/dist/index.js", "--name", "mcp-0g"],
      "env": {}
    }
  }
}

Docker Integration

Run the server in Docker:
{
  "mcpServers": {
    "0g-chain": {
      "command": "docker",
      "args": ["run", "--rm", "-p", "3000:3000", "mcp-0g-server"],
      "env": {}
    }
  }
}

Other MCP-Compatible Platforms

Cline (VS Code Extension)

  1. Install Cline Extension Install the Cline extension in VS Code.
  2. Configure MCP Server Add to Cline’s configuration:
    {
      "mcpServers": {
        "0g-blockchain": {
          "command": "node",
          "args": ["/path/to/mcp-0g/dist/index.js"]
        }
      }
    }
    

Custom MCP Client

For custom integrations, connect to the server using the MCP protocol:
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';

// Create transport
const transport = new StdioClientTransport({
  command: 'node',
  args: ['/path/to/mcp-0g/dist/index.js']
});

// Create client
const client = new Client({
  name: "0g-blockchain-client",
  version: "1.0.0"
}, {
  capabilities: {}
});

// Connect
await client.connect(transport);

// List available tools
const tools = await client.listTools();
console.log('Available tools:', tools);

// Call a tool
const result = await client.callTool({
  name: 'get_chain_info',
  arguments: {}
});

Usage Examples

Basic Blockchain Queries

Once integrated, you can interact with the 0G blockchain using natural language:
User: "What's the current block number on 0G testnet?"
Assistant: [Uses get_block tool to fetch latest block information]

User: "Check the balance of address 0x742d35Cc6634C0532925a3b8D4C9db96590c6C87"
Assistant: [Uses get_balance tool to check OG token balance]

User: "Get information about transaction 0xabc123..."
Assistant: [Uses get_transaction tool to fetch transaction details]

Wallet Operations

User: "Create a new wallet called 'MyTestWallet'"
Assistant: [Uses create_wallet tool with secure password]

User: "List all my wallets"
Assistant: [Uses list_wallets tool to show available wallets]

User: "Import a wallet from private key"
Assistant: [Uses import_wallet tool with provided private key]

Token Management

User: "Check my token portfolio"
Assistant: [Uses get_token_portfolio tool to show all tokens]

User: "Send 100 USDC tokens to 0x123..."
Assistant: [Uses preview_token_transfer and create_token_transfer tools]

User: "Approve 1000 tokens for contract 0xabc..."
Assistant: [Uses create_token_approval tool]

Smart Contract Deployment

User: "Deploy this ERC20 contract with name 'MyToken'"
Assistant: [Uses compile_contract and deploy_contract tools]

User: "Estimate deployment cost for my contract"
Assistant: [Uses estimate_deployment_cost tool]

User: "Verify my deployed contract"
Assistant: [Uses verify_contract tool]

Security Considerations

Environment Variables

  • Never expose private keys in configuration files
  • Use environment variables for sensitive data
  • Implement proper access controls

Network Security

  • Use HTTPS endpoints for RPC connections
  • Implement rate limiting to prevent abuse
  • Monitor for suspicious activity

Wallet Security

  • Use strong passwords for wallet encryption
  • Implement multi-signature for high-value operations
  • Regular security audits and updates

Troubleshooting Integration

Common Issues

  1. Server Not Starting
    # Check Node.js version
    node --version  # Should be 18.0+
    
    # Check server logs
    DEBUG=mcp:0g node dist/index.js
    
  2. Claude Not Connecting
    // Verify configuration syntax
    {
      "mcpServers": {
        "0g-chain": {
          "command": "node",
          "args": ["/absolute/path/to/dist/index.js"]
        }
      }
    }
    
  3. Permission Errors
    # Fix file permissions
    chmod +x dist/index.js
    
    # Check directory permissions
    ls -la /path/to/mcp-0g/
    

Debug Mode

Enable detailed logging:
{
  "mcpServers": {
    "0g-chain": {
      "command": "node",
      "args": ["/path/to/mcp-0g/dist/index.js"],
      "env": {
        "DEBUG": "mcp:*",
        "LOG_LEVEL": "debug"
      }
    }
  }
}

Health Checks

Test server health:
# Test server startup
node dist/index.js --test

# Check RPC connectivity
curl -X POST -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
  https://evmrpc-testnet.0g.ai

Performance Optimization

Connection Pooling

Configure connection pooling for better performance:
// In server configuration
const config = {
  rpcUrl: process.env.ZEROQ_RPC_URL,
  maxConnections: 10,
  keepAlive: true,
  timeout: 30000
};

Caching

Implement caching for frequently accessed data:
// Cache configuration
const cacheConfig = {
  ttl: 60000, // 1 minute
  maxSize: 1000,
  enabled: true
};

Rate Limiting

Configure appropriate rate limits:
{
  "env": {
    "RATE_LIMIT_REQUESTS": "100",
    "RATE_LIMIT_WINDOW": "60000"
  }
}

Production Deployment

Process Management

Use PM2 for production:
# Install PM2
npm install -g pm2

# Start server with PM2
pm2 start dist/index.js --name mcp-0g-server

# Configure auto-restart
pm2 startup
pm2 save

Monitoring

Set up monitoring and alerting:
# Monitor with PM2
pm2 monit

# Log monitoring
pm2 logs mcp-0g-server

# Health checks
pm2 ping mcp-0g-server

Load Balancing

For high availability, deploy multiple instances:
# Start multiple instances
pm2 start dist/index.js -i 4 --name mcp-0g-cluster

Next Steps