Skip to main content
Glama

get_withdrawal

Retrieve withdrawal transaction details from the Bitso cryptocurrency exchange, including status, amounts, and timestamps for tracking fund movements.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Complete handler and registration for the 'get_withdrawal' MCP tool: registers the tool with input schema, validates params with Zod, calls client.getWithdrawal, formats response text, handles errors.
    server.tool( "get_withdrawal", { description: "Get details of a specific withdrawal by ID", inputSchema: { type: "object", properties: { wid: { type: "string", description: "The withdrawal ID to retrieve" } }, required: ["wid"] } }, async (params): Promise<ToolResult> => { try { const validatedParams = GetWithdrawalSchema.parse(params); logToFile('INFO', 'Get withdrawal tool called', { wid: validatedParams.wid }); const withdrawal = await client.getWithdrawal(validatedParams.wid); return { content: [ { type: "text", text: `Withdrawal Details: ID: ${withdrawal.wid} Status: ${withdrawal.status} Currency: ${withdrawal.currency} Amount: ${withdrawal.amount} Method: ${withdrawal.method} Created: ${withdrawal.created_at} ${withdrawal.origin_id ? `Origin ID: ${withdrawal.origin_id}` : ''} ${withdrawal.asset ? `Asset: ${withdrawal.asset}` : ''} ${withdrawal.network ? `Network: ${withdrawal.network}` : ''} ${withdrawal.protocol ? `Protocol: ${withdrawal.protocol}` : ''} Details: ${JSON.stringify(withdrawal.details, null, 2)}` } ] }; } catch (error) { logToFile('ERROR', 'Error in get_withdrawal tool', error); if (error instanceof z.ZodError) { const errorMessage = error.errors.map(err => `${err.path.join('.')}: ${err.message}`).join(', '); return { content: [ { type: "text", text: `Validation error: ${errorMessage}` } ] }; } return { content: [ { type: "text", text: `Error retrieving withdrawal: ${error instanceof Error ? error.message : String(error)}` } ] }; } } );
  • Zod schema used for input validation in the get_withdrawal tool handler, requiring a non-empty 'wid' string.
    const GetWithdrawalSchema = z.object({ wid: z.string().min(1, "Withdrawal ID is required"), });
  • BitsoApiClient helper method that fetches a specific withdrawal from the Bitso API by ID, includes caching logic, authentication, and error handling.
    async getWithdrawal(wid: string): Promise<Withdrawal> { const cacheKey = this.getCacheKey(`/api/v3/withdrawals/${wid}`); const cached = this.getCachedData<Withdrawal>(cacheKey); if (cached) { return cached; } try { const requestPath = `/api/v3/withdrawals/${wid}`; const authHeaders = this.createAuthHeaders('GET', requestPath); this.logToFile('INFO', 'Fetching withdrawal from Bitso API...', { wid }); const response: AxiosResponse<{ success: boolean; payload: Withdrawal }> = await this.client.get(requestPath, { headers: authHeaders }); if (!response.data.success) { throw new Error('API request failed'); } const withdrawal = response.data.payload; this.setCachedData(cacheKey, withdrawal); this.logToFile('INFO', 'Withdrawal fetched successfully', { wid }); return withdrawal; } catch (error) { this.logToFile('ERROR', 'Failed to fetch withdrawal', { wid, error }); throw error; }
  • src/index.ts:101-101 (registration)
    Top-level call to registerBitsoTools function, which includes registration of the 'get_withdrawal' tool on the MCP server.
    registerBitsoTools(server, client);

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/blaze-xyz/bitso-mcp'

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