import { CallToolResult } from "@modelcontextprotocol/sdk/types.js" import { RecraftServer } from "../RecraftServer" const ALMOST_ZERO_CREDITS = 50 export const getUserTool = { name: "get_user", description: "Get information about the current Recraft API user (their email, name, and credit balance).", inputSchema: { type: "object", properties: { }, required: [] } } export const getUserHandler = async (server: RecraftServer, _args: Record): Promise => { try { const result = await server.api.userApi.getCurrentUser() return { content: [ { type: 'text', text: `User email: ${result.email}, name: ${result.name}.\nYou have ${result.credits} credits left.` + ( result.credits >= ALMOST_ZERO_CREDITS ? "" : `\nYou are ${result.credits > 0 ? "almost" : ""} out of credits. Please top up your account on https://www.recraft.ai/profile/api.` ) }, ] } } catch (error) { return { content: [ { type: 'text', text: `Get user error: ${error}` } ], isError: true } } }