Skip to main content
Glama
buildwithgrove

Grove Public Endpoints MCP Server

Official

list_blockchain_services

Discover available blockchain networks and services supported by Pocket Network. Filter by category to find EVM, Layer 2, or non-EVM options for your development needs.

Instructions

List all available blockchain services/networks supported by Pocket Network

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional category filter (e.g., "evm", "layer2", "non-evm")

Implementation Reference

  • Handler execution logic for 'list_blockchain_services' tool. Retrieves all or category-filtered blockchain services from the service and returns as formatted JSON.
    case 'list_blockchain_services': {
      const category = args?.category as string | undefined;
      const services = category
        ? blockchainService.getServicesByCategory(category)
        : blockchainService.getAllServices();
    
      return {
        content: [
          {
            type: 'text',
            text: JSON.stringify(services, null, 2),
          },
        ],
      };
    }
  • Tool schema definition including name, description, and input schema with optional 'category' parameter.
    {
      name: 'list_blockchain_services',
      description: 'List all available blockchain services/networks supported by Pocket Network',
      inputSchema: {
        type: 'object',
        properties: {
          category: {
            type: 'string',
            description: 'Optional category filter (e.g., "evm", "layer2", "non-evm")',
          },
        },
      },
    },
  • src/index.ts:88-101 (registration)
    Registration of all tools by collecting Tool definitions from registerBlockchainHandlers (which includes list_blockchain_services) into the tools list used for ListToolsRequestHandler.
    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),
    ];
  • src/index.ts:114-126 (registration)
    Tool execution dispatch chain where handleBlockchainTool (containing list_blockchain_services case) is called first for matching tool names.
    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));
  • Helper methods getAllServices() and getServicesByCategory() that provide the core data retrieval logic used by the tool handler.
    getAllServices(): BlockchainService[] {
      const seen = new Set<string>();
      const services: BlockchainService[] = [];
    
      for (const service of this.services.values()) {
        if (!seen.has(service.id)) {
          seen.add(service.id);
          services.push(service);
        }
      }
    
      return services;
    }
    
    /**
     * Get services by category
     */
    getServicesByCategory(category: string): BlockchainService[] {
      return this.getAllServices().filter(s => s.category === category);
    }

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'

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