Skip to main content
Glama
liuguoping1024

SWLC MCP Server

get_latest_ssq

Retrieve the most recent winning numbers for China's Double Color Ball lottery to check results or analyze patterns.

Instructions

获取双色球最新开奖结果

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • SWLCService.get_ssq_latest(): Primary handler for getting latest SSQ results. Checks local DB first (via get_latest_ssq helper), fetches from network if stale, saves/updates DB, returns formatted LotteryResult.
    async def get_ssq_latest(self) -> Optional[LotteryResult]:
        """获取双色球最新开奖结果"""
        try:
            # 首先尝试从数据库获取
            db_result = self.db.get_latest_ssq()
            
            if self._should_update_from_network(db_result, "双色球"):
                logger.info("从网络获取双色球数据")
                data = await self._fetch_lottery_data('双色球')
                if data and data['result']:
                    result_data = data['result'][0]
                    
                    # 解析红球和蓝球
                    red_balls = result_data['red'].split(',')
                    blue_ball = result_data['blue']
                    
                    # 格式化奖池金额
                    pool_money = result_data.get('poolmoney', '')
                    if pool_money and pool_money.isdigit():
                        pool_money = f"{int(pool_money) / 100000000:.2f}亿元"
                    
                    # 格式化销售金额
                    sales = result_data.get('sales', '')
                    if sales and sales.isdigit():
                        sales = f"{int(sales) / 100000000:.2f}亿元"
                    
                    # 保存到数据库
                    self.db.save_ssq_result(
                        period=result_data['code'],
                        draw_date=result_data['date'],
                        red_balls=red_balls,
                        blue_ball=blue_ball,
                        prize_pool=pool_money,
                        sales_amount=sales
                    )
                    
                    # 更新号码统计
                    self.db.update_number_statistics('双色球', red_balls + [blue_ball])
                    
                    return LotteryResult(
                        lottery_type="双色球",
                        period=result_data['code'],
                        draw_date=result_data['date'],
                        numbers=red_balls,
                        special_numbers=[blue_ball],
                        prize_pool=pool_money,
                        sales_amount=sales
                    )
            else:
                logger.info("从本地数据库获取双色球数据")
                return LotteryResult(
                    lottery_type="双色球",
                    period=db_result['period'],
                    draw_date=db_result['draw_date'],
                    numbers=db_result['red_balls'],
                    special_numbers=[db_result['blue_ball']],
                    prize_pool=db_result['prize_pool'],
                    sales_amount=db_result['sales_amount']
                )
        except Exception as e:
            logger.error(f"获取双色球数据失败: {e}")
            return None
  • MCP tool registration for 'get_latest_ssq' in server.list_tools(), including empty input schema.
    types.Tool(
        name="get_latest_ssq",
        description="获取双色球最新开奖结果",
        inputSchema={
            "type": "object",
            "properties": {},
            "required": []
        }
    ),
  • LotteryDatabase.get_latest_ssq(): Helper method that queries the SQLite database for the most recent SSQ result (latest period).
    def get_latest_ssq(self) -> Optional[Dict[str, Any]]:
        """获取最新双色球开奖结果"""
        try:
            with sqlite3.connect(self.db_path) as conn:
                cursor = conn.cursor()
                
                cursor.execute("""
                    SELECT period, draw_date, red_balls, blue_ball, prize_pool, sales_amount
                    FROM ssq_results 
                    ORDER BY period DESC 
                    LIMIT 1
                """)
                
                result = cursor.fetchone()
                if result:
                    return {
                        'period': result[0],
                        'draw_date': result[1],
                        'red_balls': json.loads(result[2]),
                        'blue_ball': result[3],
                        'prize_pool': result[4],
                        'sales_amount': result[5]
                    }
                return None
                
        except Exception as e:
            logger.error(f"获取最新双色球数据失败: {e}")
            return None
  • MCP server.call_tool() handler dispatch for 'get_latest_ssq': Calls SWLCService.get_ssq_latest() and formats response as TextContent.
                if name == "get_latest_ssq":
                    result = await lottery_service.get_ssq_latest()
                    if result:
                        return [types.TextContent(
                            type="text",
                            text=f"""双色球最新开奖结果:
    期号:{result.period}
    开奖日期:{result.draw_date}
    开奖号码:{' '.join(result.numbers)} + {' '.join(result.special_numbers or [])}
    奖池金额:{result.prize_pool or '暂无'}
    销售金额:{result.sales_amount or '暂无'}"""
                        )]
                    else:
                        return [types.TextContent(type="text", text="获取双色球数据失败")]

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/liuguoping1024/swlc-mcp'

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