fetch-order-book
Retrieve real-time order book data for a specific stock symbol to analyze market depth and liquidity using the Volume Wall Detector MCP server.
Instructions
Fetch current order book data for a symbol
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol to fetch order book for |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"symbol": {
"description": "Stock symbol to fetch order book for",
"type": "string"
}
},
"required": [
"symbol"
],
"type": "object"
}
Implementation Reference
- src/services/tools.ts:16-20 (handler)The execute function serving as the tool handler, which fetches the order book data using fetchOrderBook, stores it in MongoDB, and returns the result as JSON.execute: async (args) => { const orderBook = await fetchOrderBook(args.symbol); const result = await storeStockData(orderBook, "order_books"); return JSON.stringify(result); }
- src/services/tools.ts:13-15 (schema)Zod input schema defining the 'symbol' parameter for the tool.parameters: z.object({ symbol: z.string().describe("Stock symbol to fetch order book for") }),
- src/services/tools.ts:10-21 (registration)Tool configuration object for 'fetch-order-book' added to the tools array.{ name: "fetch-order-book", description: "Fetch current order book data for a symbol", parameters: z.object({ symbol: z.string().describe("Stock symbol to fetch order book for") }), execute: async (args) => { const orderBook = await fetchOrderBook(args.symbol); const result = await storeStockData(orderBook, "order_books"); return JSON.stringify(result); } },
- src/index.ts:16-19 (registration)Registers all tools from services/tools.ts to the FastMCP server instance.// Register all tools tools.forEach((tool) => { (server.addTool as Tool)(tool); });
- src/services/api.ts:14-34 (helper)Core helper function that performs the API request to fetch order book data and maps it to the OrderBook type.export const fetchOrderBook = async (symbol: string): Promise<OrderBook> => { const url = `${config.API_BASE_URL}/v2/stock/${symbol}`; const response = await axios.get(url, { headers }); const data = response.data.data; return { symbol, timestamp: new Date().toISOString(), match_price: data.mp, bid_1: { price: data.b1, volume: data.b1v }, ask_1: { price: data.o1, volume: data.o1v }, change_percent: data.lpcp, volume: data.lv }; };