coingeckotokeninfoagent_get_trending_pools
Retrieve trending on-chain pools with token data from CoinGecko. Specify attributes like base_token, quote_token, dex, or network. Supports fetching 1 to 10 pools for detailed insights.
Instructions
Get up to 10 trending on-chain pools with token data from CoinGecko. The 'include' parameter must be one of: base_token, quote_token, dex, or network.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Single attribute to include: base_token, quote_token, dex, or network | base_token |
| pools | No | Number of pools to return (1-10) |
Implementation Reference
- mesh_mcp_server/server.py:301-319 (handler)MCP call_tool handler that dispatches to the specific agent's tool via execute_tool based on the tool name (e.g., coingeckotokeninfoagent_get_trending_pools).async def call_tool(name: str, arguments: dict) -> List[types.TextContent]: """Call the specified tool with the given arguments.""" try: if name not in self.tool_registry: raise ValueError(f"Unknown tool: {name}") tool_info = self.tool_registry[name] result = await self.execute_tool( agent_id=tool_info["agent_id"], tool_name=tool_info["tool_name"], tool_arguments=arguments, ) # Convert result to TextContent return [types.TextContent(type="text", text=str(result))] except Exception as e: logger.error(f"Error calling tool {name}: {e}") raise ValueError(f"Failed to call tool {name}: {str(e)}") from e
- mesh_mcp_server/server.py:224-262 (handler)Executes the proxied tool call by POSTing to the Mesh API endpoint with the agent_id (coingeckotokeninfoagent) and tool_name (get_trending_pools).async def execute_tool( self, agent_id: str, tool_name: str, tool_arguments: Dict[str, Any] ) -> Dict[str, Any]: """Execute a tool on a mesh agent. Args: agent_id: ID of the agent to execute the tool on tool_name: Name of the tool to execute tool_arguments: Arguments to pass to the tool Returns: Tool execution result Raises: ToolExecutionError: If there's an error executing the tool """ request_data = { "agent_id": agent_id, "input": {"tool": tool_name, "tool_arguments": tool_arguments}, } # Add API key if available if Config.HEURIST_API_KEY: request_data["api_key"] = Config.HEURIST_API_KEY try: result = await call_mesh_api( "mesh_request", method="POST", json=request_data ) return result.get("data", result) # Prefer the 'data' field if it exists except MeshApiError as e: # Re-raise API errors with clearer context raise ToolExecutionError(str(e)) from e except Exception as e: logger.error(f"Error calling {agent_id} tool {tool_name}: {e}") raise ToolExecutionError( f"Failed to call {agent_id} tool {tool_name}: {str(e)}" ) from e
- mesh_mcp_server/server.py:39-53 (registration)Configuration defining default supported agents, including CoinGeckoTokenInfoAgent from which the get_trending_pools tool is loaded.# Default supported agents DEFAULT_AGENTS = [ "CoinGeckoTokenInfoAgent", "DexScreenerTokenInfoAgent", "ElfaTwitterIntelligenceAgent", "ExaSearchAgent", "TwitterInfoAgent", "AIXBTProjectInfoAgent", "EtherscanAgent", "EvmTokenInfoAgent", "FundingRateAgent", "UnifaiTokenAnalysisAgent", "YahooFinanceAgent", "ZerionWalletAnalysisAgent" ]
- mesh_mcp_server/server.py:189-216 (registration)Dynamically registers tools from agent metadata into tool_registry using tool_id = '{agent_id.lower()}_{tool_name}' (produces 'coingeckotokeninfoagent_get_trending_pools') and stores schema, description, etc.for tool in agent_data.get("tools", []): if tool.get("type") == "function": function_data = tool.get("function", {}) tool_name = function_data.get("name") if not tool_name: continue # Create a unique tool ID tool_id = f"{agent_id.lower()}_{tool_name}" # Get parameters or create default schema parameters = function_data.get("parameters", {}) if not parameters: parameters = { "type": "object", "properties": {}, "required": [], } # Store tool info tool_registry[tool_id] = { "agent_id": agent_id, "tool_name": tool_name, "description": function_data.get("description", ""), "parameters": parameters, }
- mesh_mcp_server/server.py:201-207 (schema)Loads the input schema (parameters) for the tool from the remote agent metadata.parameters = function_data.get("parameters", {}) if not parameters: parameters = { "type": "object", "properties": {}, "required": [], }