Skip to main content
Glama

ValueRouter MCP Server

get_supported_chains

Retrieve a list of supported blockchain networks for USDC bridging, with the option to include testnets, using the ValueRouter MCP Server.

Instructions

Get all supported chains for USDC bridging

Input Schema

NameRequiredDescriptionDefault
includeTestnetsNoWhether to include testnet chains

Input Schema (JSON Schema)

{ "additionalProperties": false, "properties": { "includeTestnets": { "default": false, "description": "Whether to include testnet chains", "type": "boolean" } }, "type": "object" }

Implementation Reference

  • The core implementation of the 'get_supported_chains' tool handler. Parses input args for 'includeTestnets', filters CHAIN_INFO constants accordingly, maps to response format, and returns success response with chains list and count.
    private async getSupportedChains(args: any): Promise<MCPToolResult> { const { includeTestnets = false } = args; const chains = Object.values(CHAIN_INFO) .filter(chain => includeTestnets || !chain.isTestnet) .map(chain => ({ chainId: chain.chainId, name: chain.name, symbol: chain.symbol, decimals: chain.decimals, logoUrl: chain.logoUrl, explorerUrl: chain.explorerUrl, isTestnet: chain.isTestnet, networkType: chain.networkType, usdcAddress: chain.usdcAddress, })); return createSuccessResponse({ chains, count: chains.length, }); }
  • Input schema for validating arguments to the 'get_supported_chains' tool, defining optional 'includeTestnets' boolean parameter.
    inputSchema: { type: 'object', properties: { includeTestnets: { type: 'boolean', description: 'Whether to include testnet chains', default: false, }, }, additionalProperties: false, },
  • src/index.ts:63-77 (registration)
    Registration of the 'get_supported_chains' tool in the ListToolsRequestSchema handler, providing name, description, and input schema.
    { name: 'get_supported_chains', description: 'Get all supported chains for USDC bridging', inputSchema: { type: 'object', properties: { includeTestnets: { type: 'boolean', description: 'Whether to include testnet chains', default: false, }, }, additionalProperties: false, }, },
  • src/index.ts:333-334 (registration)
    Dispatch logic in the CallToolRequestSchema handler that routes calls to 'get_supported_chains' to the corresponding handler method.
    case 'get_supported_chains': return await this.getSupportedChains(args);
  • Helper constant CHAIN_INFO providing detailed configuration for all supported chains, used by the get_supported_chains handler for filtering and mapping.
    export const CHAIN_INFO: Record<SupportedChainId, ChainInfo> = { [SupportedChainId.MAINNET]: { chainId: SupportedChainId.MAINNET, name: 'Ethereum', symbol: 'ETH', decimals: 18, explorerUrl: 'https://etherscan.io', isTestnet: false, networkType: 'mainnet', usdcAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.ARBITRUM_ONE]: { chainId: SupportedChainId.ARBITRUM_ONE, name: 'Arbitrum One', symbol: 'ETH', decimals: 18, explorerUrl: 'https://arbiscan.io', isTestnet: false, networkType: 'L2', usdcAddress: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.OPTIMISM]: { chainId: SupportedChainId.OPTIMISM, name: 'Optimism', symbol: 'ETH', decimals: 18, explorerUrl: 'https://optimistic.etherscan.io', isTestnet: false, networkType: 'L2', usdcAddress: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.POLYGON]: { chainId: SupportedChainId.POLYGON, name: 'Polygon', symbol: 'MATIC', decimals: 18, explorerUrl: 'https://polygonscan.com', isTestnet: false, networkType: 'L2', usdcAddress: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.AVALANCHE_C_CHAIN]: { chainId: SupportedChainId.AVALANCHE_C_CHAIN, name: 'Avalanche', symbol: 'AVAX', decimals: 18, explorerUrl: 'https://snowtrace.io', isTestnet: false, networkType: 'mainnet', usdcAddress: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.BASE]: { chainId: SupportedChainId.BASE, name: 'Base', symbol: 'ETH', decimals: 18, explorerUrl: 'https://basescan.org', isTestnet: false, networkType: 'L2', usdcAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.SOLANA]: { chainId: SupportedChainId.SOLANA, name: 'Solana', symbol: 'SOL', decimals: 9, explorerUrl: 'https://solscan.io', isTestnet: false, networkType: 'mainnet', usdcAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', bridgeContractAddress: 'DmtW5rT97FiY1gna3e8cDjn7jzJNFVkZJsCEiaLsMj8q', }, [SupportedChainId.SUI]: { chainId: SupportedChainId.SUI, name: 'Sui', symbol: 'SUI', decimals: 9, explorerUrl: 'https://suiscan.xyz', isTestnet: false, networkType: 'mainnet', usdcAddress: '0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.NOBLE]: { chainId: SupportedChainId.NOBLE, name: 'Noble', symbol: 'USDC', decimals: 6, explorerUrl: 'https://www.mintscan.io/noble', isTestnet: false, networkType: 'cosmos', usdcAddress: 'uusdc', }, [SupportedChainId.OSMOSIS]: { chainId: SupportedChainId.OSMOSIS, name: 'Osmosis', symbol: 'OSMO', decimals: 6, explorerUrl: 'https://www.mintscan.io/osmosis', isTestnet: false, networkType: 'cosmos', usdcAddress: 'ibc/498A0751C798A0D9A389AA3691123DADA57DAA4FE165D5C75894505B876BA6E4', }, // Add other chains... [SupportedChainId.EVMOS]: { chainId: SupportedChainId.EVMOS, name: 'Evmos', symbol: 'EVMOS', decimals: 18, explorerUrl: 'https://www.mintscan.io/evmos', isTestnet: false, networkType: 'cosmos', }, [SupportedChainId.SEI]: { chainId: SupportedChainId.SEI, name: 'Sei', symbol: 'SEI', decimals: 6, explorerUrl: 'https://www.mintscan.io/sei', isTestnet: false, networkType: 'cosmos', }, [SupportedChainId.COREUM]: { chainId: SupportedChainId.COREUM, name: 'Coreum', symbol: 'COREUM', decimals: 6, explorerUrl: 'https://www.mintscan.io/coreum', isTestnet: false, networkType: 'cosmos', }, [SupportedChainId.DYDX]: { chainId: SupportedChainId.DYDX, name: 'dYdX', symbol: 'DYDX', decimals: 18, explorerUrl: 'https://www.mintscan.io/dydx', isTestnet: false, networkType: 'cosmos', }, // Testnets [SupportedChainId.GOERLI]: { chainId: SupportedChainId.GOERLI, name: 'Goerli', symbol: 'ETH', decimals: 18, explorerUrl: 'https://goerli.etherscan.io', isTestnet: true, networkType: 'testnet', usdcAddress: '0x07865c6e87b9f70255377e024ace6630c1eaa37f', }, [SupportedChainId.SEPOLIA]: { chainId: SupportedChainId.SEPOLIA, name: 'Sepolia', symbol: 'ETH', decimals: 18, explorerUrl: 'https://sepolia.etherscan.io', isTestnet: true, networkType: 'testnet', usdcAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', }, [SupportedChainId.SOLANA_DEVNET]: { chainId: SupportedChainId.SOLANA_DEVNET, name: 'Solana Devnet', symbol: 'SOL', decimals: 9, explorerUrl: 'https://solscan.io', isTestnet: true, networkType: 'testnet', usdcAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', }, [SupportedChainId.SUI_TESTNET]: { chainId: SupportedChainId.SUI_TESTNET, name: 'Sui Testnet', symbol: 'SUI', decimals: 9, explorerUrl: 'https://suiscan.xyz/testnet', isTestnet: true, networkType: 'testnet', usdcAddress: '0x12345...', // Replace with actual testnet address }, [SupportedChainId.NOBLE_TEST]: { chainId: SupportedChainId.NOBLE_TEST, name: 'Noble Testnet', symbol: 'USDC', decimals: 6, explorerUrl: 'https://www.mintscan.io/noble-testnet', isTestnet: true, networkType: 'testnet', usdcAddress: 'uusdc', }, [SupportedChainId.AVALANCHE_FUJI]: { chainId: SupportedChainId.AVALANCHE_FUJI, name: 'Avalanche Fuji', symbol: 'AVAX', decimals: 18, explorerUrl: 'https://testnet.snowtrace.io', isTestnet: true, networkType: 'testnet', usdcAddress: '0x5425890298aed601595a70ab815c96711a31bc65', }, [SupportedChainId.ARBITRUM_GOERLI]: { chainId: SupportedChainId.ARBITRUM_GOERLI, name: 'Arbitrum Goerli', symbol: 'ETH', decimals: 18, explorerUrl: 'https://goerli.arbiscan.io', isTestnet: true, networkType: 'testnet', usdcAddress: '0xfd064A18f3BF249cf1f87FC203E90D8f650f2d63', }, [SupportedChainId.OPTIMISM_GOERLI]: { chainId: SupportedChainId.OPTIMISM_GOERLI, name: 'Optimism Goerli', symbol: 'ETH', decimals: 18, explorerUrl: 'https://goerli-optimism.etherscan.io', isTestnet: true, networkType: 'testnet', usdcAddress: '0x12345...', // Replace with actual address }, [SupportedChainId.POLYGON_MUMBAI]: { chainId: SupportedChainId.POLYGON_MUMBAI, name: 'Polygon Mumbai', symbol: 'MATIC', decimals: 18, explorerUrl: 'https://mumbai.polygonscan.com', isTestnet: true, networkType: 'testnet', usdcAddress: '0x12345...', // Replace with actual address }, };

Other Tools

Related Tools

Latest Blog Posts

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/RWAValueRouter/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server