Skip to main content
Glama

getTokenInfo

Retrieve detailed information about Ethereum tokens by providing their address and network ID. Simplify token analysis and blockchain data retrieval with this utility.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
addressYes
networkIdNoNetwork ID (1 for Ethereum, 101 for Solana)

Implementation Reference

  • Handler function for the getTokenInfo MCP tool. Fetches token information from Codex API using helper function and returns formatted text response.
    async ({ address, networkId }) => { try { // Get token info from Codex API const tokenInfo = await fetchTokenInfo(address, networkId); if (!tokenInfo) { return { content: [{ type: "text", text: `No token information found for ${address} on network ${networkId}` }] }; } // Format the token info for display const response = formatTokenInfoResponse(tokenInfo); return { content: [{ type: "text", text: response }] }; } catch (error) { return { content: [{ type: "text", text: `Error fetching token info: ${error.message}` }] }; } }
  • Zod schema defining input parameters: token address (string) and networkId (number, default 1).
    { address: z.string().min(1, "Token address is required"), networkId: z.number().int().positive().default(1).describe("Network ID (1 for Ethereum, 101 for Solana)") },
  • Registration of the getTokenInfo tool on the MCP server using server.tool().
    server.tool("getTokenInfo", { address: z.string().min(1, "Token address is required"), networkId: z.number().int().positive().default(1).describe("Network ID (1 for Ethereum, 101 for Solana)") }, async ({ address, networkId }) => { try { // Get token info from Codex API const tokenInfo = await fetchTokenInfo(address, networkId); if (!tokenInfo) { return { content: [{ type: "text", text: `No token information found for ${address} on network ${networkId}` }] }; } // Format the token info for display const response = formatTokenInfoResponse(tokenInfo); return { content: [{ type: "text", text: response }] }; } catch (error) { return { content: [{ type: "text", text: `Error fetching token info: ${error.message}` }] }; } } );
  • Helper function that performs GraphQL query to Codex API to retrieve token information (name, symbol, supplies). Called by the tool handler.
    async function fetchTokenInfo(address, networkId) { try { // Use API key from environment variable const apiKey = process.env.CODEX_API_KEY; if (!apiKey) { throw new Error("CODEX_API_KEY environment variable is not set"); } const response = await axios({ url: API_URL, method: 'post', headers: { 'Content-Type': 'application/json', 'Authorization': apiKey }, data: { query: `{ getTokenInfo(address: "${address}", networkId: ${networkId}) { name symbol totalSupply address circulatingSupply } }` } }); if (response.data && response.data.data && response.data.data.getTokenInfo) { return response.data.data.getTokenInfo; } return null; } catch (error) { console.error('Error fetching token info:', error.response?.data || error.message); throw new Error(`API error: ${error.response?.data?.errors?.[0]?.message || error.message}`); } }
  • Helper function that formats raw token info into a human-readable text response, including circulation percentage calculation.
    function formatTokenInfoResponse(info) { let response = `=== Token Information ===\n`; response += `Name: ${info.name || 'N/A'}\n`; response += `Symbol: ${info.symbol || 'N/A'}\n`; response += `Address: ${info.address || 'N/A'}\n`; response += `Total Supply: ${info.totalSupply || 'N/A'}\n`; response += `Circulating Supply: ${info.circulatingSupply || 'N/A'}\n`; // Calculate additional metrics if possible if (info.totalSupply && info.circulatingSupply) { const totalSupply = parseFloat(info.totalSupply); const circulatingSupply = parseFloat(info.circulatingSupply); if (!isNaN(totalSupply) && !isNaN(circulatingSupply) && totalSupply > 0) { const circulationPercentage = (circulatingSupply / totalSupply) * 100; response += `Circulation Percentage: ${circulationPercentage.toFixed(2)}%\n`; } } return response; }

Other Tools

Related Tools

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/0xGval/evm-mcp-tools'

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