UNPKG

@iqai/mcp-atp

Version:

Mcp server for ATP (IQAI's Agent Tokenization Platform) access

50 lines 1.91 kB
import dedent from "dedent"; import { env } from "../config.js"; import formatNumber from "../lib/format-number.js"; export class GetAgentsService { async getAgents(params) { try { const url = new URL(`${env.ATP_API_URL}/agents/top`); if (params.sort) url.searchParams.append("sort", params.sort); if (params.limit) url.searchParams.append("limit", params.limit.toString()); console.info("🔍 Fetching agents", { url }); const response = await fetch(url.toString(), { method: "GET", headers: { "Content-Type": "application/json", }, }); if (!response.ok) { throw new Error(`Failed to fetch agents: ${response.statusText}`); } const data = (await response.json()); return data.agents; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); throw new Error(`Failed to fetch agents: ${errorMessage}`); } } formatAgents(agents) { if (agents.length === 0) { return "📊 No Agents found"; } const formattedAgents = agents .map((agent) => { return dedent ` 🏷️ *${agent.name}* $(${agent.ticker}) 💰 Price: $${formatNumber(agent.currentPriceInUSD)} (${formatNumber(agent.currentPriceInIq)} IQ) 👥 Holders: ${formatNumber(agent.holdersCount)} 🔄 Inferences: ${formatNumber(agent.inferenceCount)} ⚡ Status: ${agent.isActive ? "Alive" : "Latent"} 📝 Token: ${agent.tokenContract} 🤖 Agent: ${agent.agentContract} `; }) .join("\n\n"); return `🤖 *Agents*\n\n${formattedAgents}`; } } //# sourceMappingURL=get-agents.js.map