Skip to main content
Glama

fetchTrades

Retrieve recent trades for a specific cryptocurrency pair on supported exchanges via the CCXT MCP Server, enabling precise data access for analysis and decision-making.

Instructions

Fetch recent trades for a symbol on an exchange

Input Schema

NameRequiredDescriptionDefault
exchangeIdYesExchange ID (e.g., 'binance', 'coinbase')
limitNoLimit the number of trades returned (optional)
sinceNoTimestamp in ms to fetch trades since (optional)
symbolYesTrading symbol (e.g., 'BTC/USDT')

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "exchangeId": { "description": "Exchange ID (e.g., 'binance', 'coinbase')", "type": "string" }, "limit": { "description": "Limit the number of trades returned (optional)", "type": "number" }, "since": { "description": "Timestamp in ms to fetch trades since (optional)", "type": "number" }, "symbol": { "description": "Trading symbol (e.g., 'BTC/USDT')", "type": "string" } }, "required": [ "exchangeId", "symbol" ], "type": "object" }

Implementation Reference

  • The handler function for the fetchTrades tool. It retrieves a public CCXT exchange instance and calls fetchTrades(symbol, since, limit), returning the trades as JSON or an error message.
    async ({ exchangeId, symbol, since, limit }) => { try { // 공개 인스턴스 사용 const exchange = ccxtServer.getPublicExchangeInstance(exchangeId); const trades = await exchange.fetchTrades(symbol, since, limit); return { content: [ { type: "text", text: JSON.stringify(trades, null, 2) } ] }; } catch (error) { return { content: [ { type: "text", text: `Error fetching trades: ${(error as Error).message}` } ], isError: true }; } }
  • Zod input schema for fetchTrades tool parameters: exchangeId (string), symbol (string), since (optional number), limit (optional number).
    { exchangeId: z.string().describe("Exchange ID (e.g., 'binance', 'coinbase')"), symbol: z.string().describe("Trading symbol (e.g., 'BTC/USDT')"), since: z.number().optional().describe("Timestamp in ms to fetch trades since (optional)"), limit: z.number().optional().describe("Limit the number of trades returned (optional)") },
  • Direct registration of the fetchTrades tool within the registerMarketTools function, including name, description, schema, and handler.
    server.tool( "fetchTrades", "Fetch recent trades for a symbol on an exchange", { exchangeId: z.string().describe("Exchange ID (e.g., 'binance', 'coinbase')"), symbol: z.string().describe("Trading symbol (e.g., 'BTC/USDT')"), since: z.number().optional().describe("Timestamp in ms to fetch trades since (optional)"), limit: z.number().optional().describe("Limit the number of trades returned (optional)") }, async ({ exchangeId, symbol, since, limit }) => { try { // 공개 인스턴스 사용 const exchange = ccxtServer.getPublicExchangeInstance(exchangeId); const trades = await exchange.fetchTrades(symbol, since, limit); return { content: [ { type: "text", text: JSON.stringify(trades, null, 2) } ] }; } catch (error) { return { content: [ { type: "text", text: `Error fetching trades: ${(error as Error).message}` } ], isError: true }; } }
  • src/server.ts:372-372 (registration)
    Top-level call to registerMarketTools in CcxtMcpServer's registerTools method, which registers the fetchTrades tool among others.
    registerMarketTools(this.server, this);

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/lazy-dinosaur/ccxt-mcp'

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