Skip to main content
Glama
buildwithgrove

Grove's MCP Server for Pocket Network

call_contract_view

Retrieve blockchain contract data by calling read-only functions across multiple networks to access token balances, transaction details, and smart contract information.

Instructions

Call a read-only contract function

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
blockchainYesBlockchain name
contractAddressYesContract address
dataYesEncoded function call data
networkNoNetwork type (defaults to mainnet)

Implementation Reference

  • Defines the tool schema including input parameters for call_contract_view
    { name: 'call_contract_view', description: 'Call a read-only contract function', inputSchema: { type: 'object', properties: { blockchain: { type: 'string', description: 'Blockchain name', }, contractAddress: { type: 'string', description: 'Contract address', }, data: { type: 'string', description: 'Encoded function call data', }, network: { type: 'string', enum: ['mainnet', 'testnet'], description: 'Network type (defaults to mainnet)', }, }, required: ['blockchain', 'contractAddress', 'data'], }, },
  • Handler logic for executing the call_contract_view tool, delegates to advancedBlockchain service
    case 'call_contract_view': { const blockchain = args?.blockchain as string; const contractAddress = args?.contractAddress as string; const data = args?.data as string; const network = (args?.network as 'mainnet' | 'testnet') || 'mainnet'; const result = await advancedBlockchain.callContractView( blockchain, contractAddress, data, network ); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], isError: !result.success, }; }
  • src/index.ts:88-101 (registration)
    Registers all tool schemas including call_contract_view via registerContractHandlers for the ListTools endpoint
    const tools: Tool[] = [ ...registerBlockchainHandlers(server, blockchainService), ...registerDomainHandlers(server, domainResolver), ...registerTransactionHandlers(server, advancedBlockchain), ...registerTokenHandlers(server, advancedBlockchain), ...registerMultichainHandlers(server, advancedBlockchain), ...registerContractHandlers(server, advancedBlockchain), ...registerUtilityHandlers(server, advancedBlockchain), ...registerEndpointHandlers(server, endpointManager), ...registerSolanaHandlers(server, solanaService), ...registerCosmosHandlers(server, cosmosService), ...registerSuiHandlers(server, suiService), ...registerDocsHandlers(server, docsManager), ];
  • Central tool dispatcher that routes call_contract_view to handleContractTool
    let result = (await handleBlockchainTool(name, args, blockchainService)) || (await handleDomainTool(name, args, domainResolver)) || (await handleTransactionTool(name, args, advancedBlockchain)) || (await handleTokenTool(name, args, advancedBlockchain)) || (await handleMultichainTool(name, args, advancedBlockchain)) || (await handleContractTool(name, args, advancedBlockchain)) || (await handleUtilityTool(name, args, advancedBlockchain)) || (await handleEndpointTool(name, args, endpointManager)) || (await handleSolanaTool(name, args, solanaService)) || (await handleCosmosTool(name, args, cosmosService)) || (await handleSuiTool(name, args, suiService)) || (await handleDocsTool(name, args, docsManager));
  • Core implementation that performs the eth_call RPC to call the contract view function
    async callContractView( blockchain: string, contractAddress: string, data: string, network: 'mainnet' | 'testnet' = 'mainnet' ): Promise<EndpointResponse> { const service = this.blockchainService.getServiceByBlockchain(blockchain, network); if (!service) { return { success: false, error: `Blockchain service not found: ${blockchain} (${network})`, }; } return this.blockchainService.callRPCMethod( service.id, 'eth_call', [ { to: contractAddress, data: data, }, 'latest', ] ); }

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/buildwithgrove/mcp-pocket'

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