logo
0
0
Login
"更新项目安装指南,集成uv工具作为运行依赖,补充相关安装步骤与故障排查说明"

彩票开奖结果解析服务

这是一个基于FastMCP的彩票开奖结果解析服务,支持获取中国福利彩票多种彩票类型的开奖结果。

1. 安装和设置指南

项目依赖

  • Python 3.7+
  • FastAPI
  • FastMCP
  • requests
  • uv (Python包管理器和运行器)

安装步骤

  1. 安装uv工具(必需)
# 使用pip安装 pip install uv # 或者使用其他方式安装,参考uv官方文档: # https://github.com/astral-sh/uv
  1. 克隆项目到本地
git clone [项目地址] cd LotteryParser
  1. 安装项目依赖
# 使用uv安装依赖 uv pip install -r requirements.txt # 或者使用传统pip安装 pip install -r requirements.txt

配置说明

项目使用FastMCP框架,需要在你的MCP配置文件中添加以下设置:

{ "mcpServers": { "cnb.cool/cnb/tools/LotterParser-mcp": { "command": "uv", "args": [ "--directory", "C:/my/PyProject/cp/LotteryParser", "run", "main.py" ] } } }

配置说明:

  1. command: 使用 uv 作为Python包管理器和运行器
  2. args:
    • --directory: 指定项目目录路径
    • run: 运行Python脚本
    • main.py: 主程序文件

配置步骤:

  1. 找到你的MCP配置文件(通常在用户配置目录下)
  2. 添加上述配置,确保使用正确的项目路径
  3. 保存配置文件后服务将自动加载

注意:

  • 确保已正确安装uv工具,因为它是运行服务的必需组件
  • 确保项目路径使用正斜杠(/)而不是反斜杠()
  • 配置完成后,服务器将自动启动并可以使用

2. API使用说明

主要API接口

lottery_results 函数

获取指定彩票类型的开奖结果。

参数说明:

  • lottery_type (str): 彩票类型代码
    • "ssq": 双色球
    • "kl8": 快乐8
    • "3d": 福彩3D
    • "qlc": 七乐彩
  • count (int, 可选): 获取最近几期的数据,默认为1

返回值格式: 返回一个包含 LotteryResult 对象的列表。

错误处理:

  • 当指定不支持的彩票类型时,抛出 ValueError
  • 网络请求失败时,返回空列表
  • JSON解析失败时,返回空列表

数据结构说明

LotteryResult 类

@dataclass class LotteryResult: name: str # 彩票名称 code: str # 期号 date: str # 开奖日期 numbers: str # 开奖号码 sales: Optional[str] = None # 销售额 content: Optional[str] = None # 中奖情况描述 prize_grades: Optional[List[Dict[str, str]]] = None # 奖金等级详情

PrizeGrade 类

@dataclass class PrizeGrade: type: str # 奖项类型 num: str # 中奖注数 money: str # 单注奖金

3. 支持的彩票类型

双色球 (ssq)

  • 开奖号码格式: "红球: [6个号码], 蓝球: [1个号码]"
  • 奖项设置: 一等奖到六等奖
  • 返回数据示例:
{ "name": "双色球", "code": "2024001", "date": "2024-01-01", "numbers": "红球: 01,15,22,25,30,33, 蓝球: 16", "sales": "386574322", "content": "一等奖5注,每注奖金8659521元" }

快乐8 (kl8)

  • 开奖号码格式: "开奖号码: [20个号码]"
  • 奖项设置: 根据选号方式不同有不同奖项
  • 返回数据示例:
{ "name": "快乐8", "code": "2024001", "date": "2024-01-01", "numbers": "开奖号码: 01,05,12,15,22,25,30,33,38,42,45,48,52,55,58,62,65,68,72,75" }

福彩3D (3d)

  • 开奖号码格式: "开奖号码: [3个号码]"
  • 奖项设置: 直选、组选三、组选六
  • 返回数据示例:
{ "name": "福彩3D", "code": "2024001", "date": "2024-01-01", "numbers": "开奖号码: 1,2,3" }

七乐彩 (qlc)

  • 开奖号码格式: "红球: [7个号码], 特别号: [1个号码]"
  • 奖项设置: 一等奖到七等奖
  • 返回数据示例:
{ "name": "七乐彩", "code": "2024001", "date": "2024-01-01", "numbers": "红球: 01,15,22,25,30,33,38, 特别号: 16" }

4. 示例代码和用例

基本使用示例

from mcp.client import Client async def get_latest_ssq(): client = Client() result = await client.call_tool("cnb.cool/cnb/tools/LotterParser-mcp", "lottery_results", { "lottery_type": "ssq", "count": 1 }) print(result[0].format_output())

多期查询示例

async def get_multiple_results(): client = Client() # 获取最近5期双色球开奖结果 results = await client.call_tool("cnb.cool/cnb/tools/LotterParser-mcp", "lottery_results", { "lottery_type": "ssq", "count": 5 }) for result in results: print(result.format_output()) print("-" * 50)

错误处理示例

async def handle_errors(): client = Client() try: # 尝试获取不存在的彩票类型 result = await client.call_tool("cnb.cool/cnb/tools/LotterParser-mcp", "lottery_results", { "lottery_type": "invalid_type", "count": 1 }) except ValueError as e: print(f"错误: {e}") except Exception as e: print(f"未知错误: {e}")

结果格式化示例

async def format_results(): client = Client() results = await client.call_tool("cnb.cool/cnb/tools/LotterParser-mcp", "lottery_results", { "lottery_type": "ssq", "count": 1 }) if results: # 获取格式化的开奖信息 formatted_output = results[0].format_output() print(formatted_output) # 获取格式化的奖金等级信息 prize_grades = results[0].format_prize_grades() print("\n奖金等级详情:") print(prize_grades)

使用变量存储服务器名称

async def use_server_variable(): client = Client() # 将服务器名称存储为变量,便于维护 server_name = "cnb.cool/cnb/tools/LotterParser-mcp" # 获取双色球结果 ssq_results = await client.call_tool(server_name, "lottery_results", { "lottery_type": "ssq", "count": 1 }) # 获取福彩3D结果 fc3d_results = await client.call_tool(server_name, "lottery_results", { "lottery_type": "3d", "count": 1 }) print(f"双色球: {ssq_results[0].format_output()}") print(f"福彩3D: {fc3d_results[0].format_output()}")

故障排除指南

  1. 如果遇到网络请求失败:

    • 检查网络连接
    • 确认防火墙设置
    • 验证代理配置(如果使用)
  2. 如果返回空结果:

    • 确认彩票类型代码是否正确
    • 验证请求的期数是否有效
    • 检查服务器响应状态
  3. 如果格式化输出异常:

    • 检查返回数据的完整性
    • 确认数据结构是否符合预期
    • 查看是否所有必要字段都存在
  4. 如果遇到API调用错误:

    • 确认MCP服务器配置是否正确
    • 验证参数类型和格式是否符合要求
    • 检查错误信息以获取具体原因
  5. 如果遇到uv相关问题:

    • 确认uv工具已正确安装
    • 验证uv命令是否在系统PATH中
    • 检查uv版本是否兼容

注意事项

  1. 该服务依赖于中国福利彩票官方网站的数据,可能受到网站维护或更新的影响
  2. 建议适当控制请求频率,避免对服务器造成过大压力
  3. 返回的开奖结果仅供参考,以官方公布为准
  4. 部分彩票类型可能因维护或其他原因暂时无法获取数据
  5. 确保系统中已正确安装和配置uv工具,它是运行服务的必需组件

About

彩票信息查询mcp

Language
Markdown49.8%
Python46.1%
TOML1.8%
gitignore1.7%
Others0.6%