diff --git a/mcp_server.py b/mcp_server.py index 5d720ad6..6c13709c 100644 --- a/mcp_server.py +++ b/mcp_server.py @@ -729,6 +729,20 @@ TOOLS: List[ToolDefinition] = [ } ), # ==================== 分钟频数据工具 ==================== + ToolDefinition( + name="get_stock_realtime_timeline", + description="获取股票最新分时走势数据(自动获取今日数据,无需指定时间)。返回今日每分钟的价格、涨跌幅、成交量等数据,适合查看股票当前走势。", + parameters={ + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "股票代码,例如:'600519' 或 '000001'" + } + }, + "required": ["code"] + } + ), ToolDefinition( name="get_stock_minute_data", description="获取股票分钟频K线数据。适用于分析日内走势、寻找交易时机、技术分析等场景。", @@ -1828,6 +1842,52 @@ async def handle_get_user_following_events(args: Dict[str, Any]) -> Any: # ==================== 分钟频数据处理函数 ==================== +async def handle_get_stock_realtime_timeline(args: Dict[str, Any]) -> Any: + """获取股票最新分时走势数据(自动获取今日数据)""" + from datetime import datetime, date + + code = args["code"] + + # 自动使用今天的日期 + today = date.today().strftime('%Y-%m-%d') + + # 调用现有的分钟数据接口,获取今日数据 + result = await db.get_stock_minute_data(code, f"{today} 09:30:00", f"{today} 15:00:00", 240) + + if not result: + return { + "success": True, + "data": [], + "count": 0, + "message": f"今日({today})暂无分时数据,可能是非交易日或盘前", + "trade_date": today + } + + # 计算一些关键统计指标 + prices = [r.get('close') or r.get('price') for r in result if r.get('close') or r.get('price')] + volumes = [r.get('volume', 0) for r in result] + + summary = {} + if prices: + summary = { + "latest_price": prices[-1] if prices else None, + "open_price": prices[0] if prices else None, + "high_price": max(prices), + "low_price": min(prices), + "total_volume": sum(volumes), + "data_points": len(result), + "last_update_time": result[-1].get('time') or result[-1].get('datetime') if result else None + } + + return { + "success": True, + "data": result, + "count": len(result), + "trade_date": today, + "summary": summary + } + + async def handle_get_stock_minute_data(args: Dict[str, Any]) -> Any: """处理股票分钟频数据查询""" code = args["code"] @@ -1891,6 +1951,7 @@ TOOL_HANDLERS = { "get_user_watchlist": handle_get_user_watchlist, "get_user_following_events": handle_get_user_following_events, # 分钟频数据工具 + "get_stock_realtime_timeline": handle_get_stock_realtime_timeline, "get_stock_minute_data": handle_get_stock_minute_data, "get_stock_minute_aggregation": handle_get_stock_minute_aggregation, "get_stock_intraday_statistics": handle_get_stock_intraday_statistics,