Skip to main content
Glama
chainfetch

ChainFETCH MCP Server

Official
by chainfetch

search_tokens_llm

Use AI to search for tokens by describing what you need in natural language. This tool analyzes your query to select optimal search parameters for finding relevant tokens on the Ethereum blockchain.

Instructions

LLM-powered token search using AI to select optimal parameters

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesNatural language query for token search

Implementation Reference

  • index.js:447-459 (registration)
    Registration of the 'search_tokens_llm' tool including name, description, and input schema requiring a 'query' parameter.
    name: 'search_tokens_llm', description: 'LLM-powered token search using AI to select optimal parameters', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Natural language query for token search', }, }, required: ['query'], }, },
  • Input schema for search_tokens_llm tool: object with required 'query' string.
    inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Natural language query for token search', }, }, required: ['query'], },
  • Handler implementation: proxies the call to ChainFETCH API endpoint '/api/v1/ethereum/tokens/llm_search' using makeRequest method with GET and provided args.
    case 'search_tokens_llm': return await this.makeRequest('/api/v1/ethereum/tokens/llm_search', 'GET', args, null, token);
  • Shared helper method that makes authenticated HTTP requests to the ChainFETCH API base URL, handles query params, auth token, and error handling. Used by all tool handlers including search_tokens_llm.
    async makeRequest(endpoint, method = 'GET', params = {}, body = null, token = null) { const chainfetchToken = token || process.env.CHAINFETCH_API_TOKEN; if (!chainfetchToken) { throw new McpError( ErrorCode.InvalidRequest, 'CHAINFETCH_API_TOKEN is required' ); } const url = new URL(`${API_BASE_URL}${endpoint}`); // Add query parameters for GET requests if (method === 'GET' && Object.keys(params).length > 0) { Object.entries(params).forEach(([key, value]) => { if (value !== undefined && value !== null) { if (Array.isArray(value)) { value.forEach(v => url.searchParams.append(`${key}[]`, v)); } else { url.searchParams.append(key, value.toString()); } } }); } const fetchOptions = { method, headers: { 'Authorization': `Bearer ${chainfetchToken}`, 'Content-Type': 'application/json', }, }; if (body && method !== 'GET') { fetchOptions.body = JSON.stringify(body); } const response = await fetch(url.toString(), fetchOptions); if (!response.ok) { const errorText = await response.text(); throw new McpError( ErrorCode.InternalError, `API request failed: ${response.status} ${response.statusText} - ${errorText}` ); } return await response.json(); }

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/chainfetch/chainfetch-mcp-server'

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