Skip to main content
Glama
get_ticker.py•3.41 kB
""" Binance 24-hour ticker statistics tool implementation. This module provides the get_ticker tool for retrieving 24-hour price change statistics for trading symbols from the Binance API. """ import logging from typing import Dict, Any from binance.exceptions import BinanceAPIException, BinanceRequestException from binance_mcp_server.utils import ( get_binance_client, validate_symbol, rate_limited, binance_rate_limiter, create_success_response, create_error_response ) logger = logging.getLogger(__name__) @rate_limited(binance_rate_limiter) def get_ticker(symbol: str) -> Dict[str, Any]: """ Get 24-hour ticker price change statistics for a symbol. Args: symbol: Trading pair symbol (e.g., 'BTCUSDT', 'ETHUSDT') Returns: Dictionary containing 24-hour price statistics. - success (bool): True if request was successful - data (dict): Response data with price statistics - timestamp (int): Unix timestamp of the response - error (dict, optional): Error details if request failed Examples: result = get_ticker("BTCUSDT") if result["success"]: stats = result["data"] print(f"24h price change for BTC: {stats['price_change']} ({stats['price_change_percent']}%)") """ logger.info(f"Fetching 24-hour ticker stats for symbol: {symbol}") try: normalized_symbol = validate_symbol(symbol) client = get_binance_client() ticker = client.get_ticker(symbol=normalized_symbol) response = { "symbol": ticker["symbol"], "price_change": float(ticker["priceChange"]), "price_change_percent": float(ticker["priceChangePercent"]), "weighted_avg_price": float(ticker["weightedAvgPrice"]), "prev_close_price": float(ticker["prevClosePrice"]), "last_price": float(ticker["lastPrice"]), "bid_price": float(ticker["bidPrice"]), "ask_price": float(ticker["askPrice"]), "open_price": float(ticker["openPrice"]), "high_price": float(ticker["highPrice"]), "low_price": float(ticker["lowPrice"]), "volume": float(ticker["volume"]), "quote_volume": float(ticker["quoteVolume"]), "open_time": ticker["openTime"], "close_time": ticker["closeTime"], "count": ticker["count"] } logger.info(f"Successfully fetched ticker stats for {symbol}") return create_success_response( data=response, metadata={ "source": "binance_api", "endpoint": "24h_ticker" } ) except ValueError as e: error_msg = f"Invalid symbol format: {str(e)}" logger.warning(f"Validation error for symbol '{symbol}': {error_msg}") return create_error_response("validation_error", error_msg) except (BinanceAPIException, BinanceRequestException) as e: logger.error(f"Error fetching ticker stats: {str(e)}") return create_error_response("binance_api_error", f"Error fetching ticker stats: {str(e)}") except Exception as e: logger.error(f"Unexpected error in get_ticker tool: {str(e)}") return create_error_response("tool_error", f"Tool execution failed: {str(e)}")

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/AnalyticAce/BinanceMCPServer'

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