Skip to main content
Glama
jianchundev

Binance Cryptocurrency MCP

by jianchundev

get_ui_klines

Retrieve candlestick chart data for cryptocurrency trading pairs from Binance, specifying symbol, time interval, and date range for market analysis.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
symbolYesTrading pair symbol, e.g. BTCUSDT
intervalYesK-line interval, e.g. 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M
startTimeNoStart timestamp (milliseconds)
endTimeNoEnd timestamp (milliseconds)
timeZoneNoTime zone, default UTC
limitNoNumber of K-lines to return, default 500, max 1000

Implementation Reference

  • Handler function that executes get_ui_klines - makes a GET request to Binance API /api/v3/uiKlines endpoint with the provided parameters and returns the UI K-line data as JSON
    async (args: { symbol: string; interval: string; startTime?: number; endTime?: number; timeZone?: string; limit?: number }) => {
        try {
            const response = await axios.get(`${BASE_URL}/api/v3/uiKlines`, {
                params: {
                    symbol: args.symbol,
                    interval: args.interval,
                    startTime: args.startTime,
                    endTime: args.endTime,
                    timeZone: args.timeZone,
                    limit: args.limit
                },
                ...getProxyConfig(),
            });
            return {
                content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }]
            };
        } catch (error: any) {
            return {
                content: [{ type: "text", text: `Failed to get UI K-line data: ${error.message}` }],
                isError: true
            };
        }
    }
  • src/index.ts:176-209 (registration)
    Tool registration for get_ui_klines using server.tool() with Zod schema defining the required parameters (symbol, interval) and optional parameters (startTime, endTime, timeZone, limit)
    server.tool(
        "get_ui_klines",
        {
            symbol: z.string().describe("Trading pair symbol, e.g. BTCUSDT"),
            interval: z.string().describe("K-line interval, e.g. 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M"),
            startTime: z.number().optional().describe("Start timestamp (milliseconds)"),
            endTime: z.number().optional().describe("End timestamp (milliseconds)"),
            timeZone: z.string().optional().describe("Time zone, default UTC"),
            limit: z.number().optional().describe("Number of K-lines to return, default 500, max 1000")
        },
        async (args: { symbol: string; interval: string; startTime?: number; endTime?: number; timeZone?: string; limit?: number }) => {
            try {
                const response = await axios.get(`${BASE_URL}/api/v3/uiKlines`, {
                    params: {
                        symbol: args.symbol,
                        interval: args.interval,
                        startTime: args.startTime,
                        endTime: args.endTime,
                        timeZone: args.timeZone,
                        limit: args.limit
                    },
                    ...getProxyConfig(),
                });
                return {
                    content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }]
                };
            } catch (error: any) {
                return {
                    content: [{ type: "text", text: `Failed to get UI K-line data: ${error.message}` }],
                    isError: true
                };
            }
        }
    );

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/jianchundev/binance-mcp'

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