get_price
Retrieve real-time cryptocurrency prices from Binance for specified trading pairs to monitor market values and track asset performance.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Trading pair symbol, e.g. BTCUSDT | |
| symbols | No | Array of multiple trading pair symbols |
Implementation Reference
- src/index.ts:306-335 (handler)Complete implementation of the get_price tool handler, including registration via server.tool(), Zod schema definition (symbol and symbols parameters), and the async handler function that calls Binance API /api/v3/ticker/price endpoint
server.tool( "get_price", { symbol: z.string().optional().describe("Trading pair symbol, e.g. BTCUSDT"), symbols: z.array(z.string()).optional().describe("Array of multiple trading pair symbols") }, async (args: { symbol?: string; symbols?: string[] }) => { try { let params = {}; if (args.symbol) { params = { symbol: args.symbol }; } else if (args.symbols) { params = { symbols: JSON.stringify(args.symbols) }; } const response = await axios.get(`${BASE_URL}/api/v3/ticker/price`, { params, ...getProxyConfig(), }); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] }; } catch (error: any) { return { content: [{ type: "text", text: `Failed to get price ticker: ${error.message}` }], isError: true }; } } ); - src/index.ts:308-311 (schema)Zod schema definition for get_price tool parameters - validates optional 'symbol' (single trading pair) or 'symbols' (array of multiple trading pairs) input parameters
{ symbol: z.string().optional().describe("Trading pair symbol, e.g. BTCUSDT"), symbols: z.array(z.string()).optional().describe("Array of multiple trading pair symbols") }, - src/index.ts:406-433 (helper)Helper function getProxyConfig() used by the get_price handler to configure HTTP/SOCKS5 proxy settings for API requests based on environment variables
function getProxyConfig(): any { // 优先使用SOCKS5代理 if (socksProxyURL) { try { const agent = new SocksProxyAgent(socksProxyURL); return { httpsAgent: agent, httpAgent: agent }; } catch (error) { console.error(`Failed to create SOCKS proxy agent: ${error}`); } } // 回退到HTTP代理 if (httpProxyURL) { try { const urlInfo = new URL(httpProxyURL); return { proxy: { host: urlInfo.hostname, port: parseInt(urlInfo.port) || (urlInfo.protocol === 'https:' ? 443 : 80), protocol: urlInfo.protocol.replace(":", "") } }; } catch (error) { console.error(`Failed to parse HTTP proxy URL: ${error}`); } } return {};