generate_random_numbers
Generate randomized lottery number recommendations for games like Double Color Ball, 3D Lottery, and Seven Happiness Lottery on the SWLC MCP Server. Customize by selecting lottery type and number of sets.
Instructions
生成随机彩票号码推荐
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | 生成组数 | |
| lottery_type | Yes | 彩票类型 |
Implementation Reference
- src/swlc_mcp/server.py:1171-1184 (handler)MCP server tool handler for 'generate_random_numbers'. It retrieves lottery_type and count from arguments, generates multiple sets of random numbers using the service method, formats them, and returns as TextContent.elif name == "generate_random_numbers": lottery_type = arguments.get("lottery_type") count = arguments.get("count", 1) results = [] for i in range(count): random_result = lottery_service.generate_random_numbers(lottery_type) results.append(f"推荐 {i+1}: {random_result['format']}") return [types.TextContent( type="text", text=f"{lottery_type}随机号码推荐:\n\n" + "\n".join(results) )]
- src/swlc_mcp/server.py:983-1003 (registration)Registers the 'generate_random_numbers' tool in the MCP server's list_tools() method, providing name, description, and input schema (lottery_type required enum, optional count).name="generate_random_numbers", description="生成随机彩票号码推荐", inputSchema={ "type": "object", "properties": { "lottery_type": { "type": "string", "enum": ["双色球", "福彩3D", "七乐彩", "快乐8"], "description": "彩票类型" }, "count": { "type": "integer", "minimum": 1, "maximum": 10, "default": 1, "description": "生成组数" } }, "required": ["lottery_type"] } ),
- src/swlc_mcp/server.py:855-891 (helper)Helper method in SWLCService class that implements the random number generation logic for each lottery type: 双色球 (6/33 +1/16), 福彩3D (3/10), 七乐彩 (7/30 +1/special), 快乐8 (20/80). Returns formatted dict with numbers and display string.def generate_random_numbers(self, lottery_type: str) -> Dict[str, Any]: """生成随机号码推荐""" import random if lottery_type == "双色球": red_balls = sorted(random.sample(range(1, 34), 6)) blue_ball = random.randint(1, 16) return { "lottery_type": "双色球", "red_balls": [f"{num:02d}" for num in red_balls], "blue_ball": f"{blue_ball:02d}", "format": "红球: " + " ".join([f"{num:02d}" for num in red_balls]) + f" 蓝球: {blue_ball:02d}" } elif lottery_type == "福彩3D": numbers = [random.randint(0, 9) for _ in range(3)] return { "lottery_type": "福彩3D", "numbers": [str(num) for num in numbers], "format": " ".join([str(num) for num in numbers]) } elif lottery_type == "七乐彩": basic_balls = sorted(random.sample(range(1, 31), 7)) special_ball = random.choice([num for num in range(1, 31) if num not in basic_balls]) return { "lottery_type": "七乐彩", "basic_balls": [f"{num:02d}" for num in basic_balls], "special_ball": f"{special_ball:02d}", "format": "基本球: " + " ".join([f"{num:02d}" for num in basic_balls]) + f" 特别号: {special_ball:02d}" } else: # 快乐8 numbers = sorted(random.sample(range(1, 81), 20)) return { "lottery_type": "快乐8", "numbers": [f"{num:02d}" for num in numbers], "format": "号码: " + " ".join([f"{num:02d}" for num in numbers]) }
- src/swlc_mcp/api_server.py:275-292 (handler)Usage of generate_random_numbers in the HTTP API endpoint /api/random/{lottery_type}, generates multiple sets for the endpoint response.random_result = lottery_service.generate_random_numbers(chinese_type) results.append({ "index": i + 1, "lottery_type": chinese_type, "numbers": random_result, "format": random_result['format'] }) return { "success": True, "data": results, "count": len(results), "timestamp": datetime.now().isoformat() } except Exception as e: logger.error(f"生成随机号码失败: {e}") raise HTTPException(status_code=500, detail=str(e))