Skip to main content
Glama
chainfetch

ChainFETCH MCP Server

Official
by chainfetch

search_tokens_llm

Use AI to search Ethereum blockchain tokens by describing what you need in natural language. The tool automatically selects optimal search parameters for finding relevant tokens based on your query.

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:446-458 (registration)
    Registration of the 'search_tokens_llm' tool in the listTools response, including its description and input schema requiring a 'query' string.
    { 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'], },
  • The handler implementation for the 'search_tokens_llm' tool, which delegates to the makeRequest helper to call the ChainFETCH API endpoint '/api/v1/ethereum/tokens/llm_search'.
    case 'search_tokens_llm': return await this.makeRequest('/api/v1/ethereum/tokens/llm_search', 'GET', args, null, token);
  • Helper function used by all tool handlers to make authenticated HTTP requests to the ChainFETCH API, handling token auth, query params, and error handling.
    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