双色球彩票MCP服务器
双色球彩票 MCP 服务器
这是一个基于 Model Context Protocol (MCP) 的双色球彩票历史数据查询服务器,提供从2013年至今的所有一等奖开奖数据。
功能特性
提供7个MCP工具:
- get_all_lottery_history - 获取所有历史一等奖数据
- get_lottery_by_date_range - 按日期范围查询开奖数据
- get_lottery_by_code - 按期号查询开奖数据
- get_latest_lottery - 获取最新N期开奖数据
- analyze_and_predict - 分析历史数据并基于高频号码生成参考号码(仅供参考)
- calculate_sum_value - 计算最近N期开奖号码的和值(红球号码之和)
- calculate_ac_value - 计算最近N期开奖号码的AC值(算术复杂性)
数据格式
每条记录包含以下字段:
{
"date": "2025-11-16(日)",
"code": "2025132",
"red": "04,08,10,21,23,32",
"blue": "11"
}
安装依赖
npm install
Cookie 自动管理
本项目实现了自动化的Cookie管理系统:
主要特点
- ✅ 自动获取:首次运行时自动获取有效的Cookie
- ✅ 自动缓存:Cookie保存到
cookie-cache.json - ✅ 自动刷新:Cookie过期(2小时)后自动获取新的
- ✅ 无需手动配置:无需手动更新Cookie值
手动更新Cookie
如果需要手动更新Cookie,运行:
node get-cookie.js
该命令会:
- 获取最新的有效Cookie
- 验证Cookie是否可用(通过API测试)
- 自动保存到
cookie-cache.json - 显示Cookie的有效期
数据缓存管理
本项目实现了智能的数据缓存系统,大幅减少API调用频率:
缓存策略
- ✅ 双层缓存:内存缓存(二级)+ 文件缓存(一级)
- ✅ 自然日缓存:同一自然日内的缓存有效
- ✅ 开奖日智能处理:
- 非开奖日(周一、周三、周五、周六):全天使用缓存
- 开奖日(周二、周四、周日):
- 21:15:00之前:使用缓存
- 21:15:00之后:获取新数据(因为有新的开奖结果)
缓存文件
- 位置:
lottery-data-cache.json - 内容:包含完整的开奖数据、缓存日期和时间戳
缓存流程
- 首先检查内存缓存(最快)
- 其次检查文件缓存(快速)
- 最后从API获取新数据(自动保存到文件缓存)
使用方法
开发模式
npm run dev
编译
npm run build
生产模式
npm start
提问示例
@lottery 给出最近5期的双色球开奖号码

@lottery 进行全历史统计分析并生成10组推荐号码

@lottery 计算最近10期的和值

@lottery 计算最近10期的AC值

MCP工具说明
1. get_all_lottery_history
获取所有历史开奖数据(2013年至今)
参数:无
返回:LotteryData数组
2. get_lottery_by_date_range
按日期范围查询开奖数据
参数:
startDate(string): 开始日期,格式 YYYY-MM-DD,例如 "2025-01-01"endDate(string): 结束日期,格式 YYYY-MM-DD,例如 "2025-12-31"
返回:符合日期范围的LotteryData数组
3. get_lottery_by_code
按期号查询开奖数据
参数:
code(string): 期号,例如 "2025132"
返回:单条LotteryData或null(未找到)
4. get_latest_lottery
获取最新N期开奖数据
参数:
count(number, 可选): 获取期数,默认10
返回:最新N期的LotteryData数组
5. analyze_and_predict
分析历史数据并基于统计规律生成推荐号码
参数:无
返回:AnalysisResult对象,包含:
totalDraws: 总开奖期数redBallStats: 红球频率统计(前20个高频号码)blueBallStats: 蓝球频率统计(前10个高频号码)recommendations: 10组推荐号码组合disclaimer: 重要提醒声明
推荐号码生成规则:
-
号码池选择
- 红球:选择历史出现频率最高的前20个红球作为候选
- 蓝球:选择历史出现频率最高的前8个蓝球作为候选
-
排除历史开奖号码
- 确保推荐的号码组合不曾在历史开奖数据中出现过
-
和值控制
- 红球和值严格控制在60-140之间
- 这是基于100%的历史开奖号码都落在此区间的统计结果
-
AC值控制
- AC值严格控制在7-9之间
- 这是基于超过85%的历史开奖号码AC值落在此区间的统计结果
- AC值计算公式:不同差值的个数 - (6 - 1)
-
生成过程
- 从高频红球池中随机选择6个不重复的号码
- 从高频蓝球池中随机选择1个号码
- 检查组合是否满足所有条件
- 重复生成直到获得10组有效组合或达到最大尝试次数
返回示例:
{
"totalDraws": 1500,
"redBallStats": [
{ "number": "07", "count": 245, "percentage": 16.33 },
...
],
"blueBallStats": [
{ "number": "12", "count": 120, "percentage": 8.00 },
...
],
"recommendations": [
{ "red": "01,07,12,23,26,32", "blue": "12" },
...
],
"disclaimer": "⚠️ 重要提醒:彩票开奖是完全随机的..."
}
统计参考:
- 和值范围:60-140(100%覆盖历史开奖)
- AC值范围:7-9(覆盖85%以上历史开奖)
- 号码选择:基于历史频率,优先选择高频号码
重要说明:
- 此工具基于历史数据统计规律生成号码
- 所有推荐号码都经过严格的条件筛选
- 彩票开奖是完全随机的,历史数据不能预测未来
- 任何号码组合的中奖概率都是相同的(约1/17,721,088)
- 请理性购彩,切勿沉迷
6. calculate_sum_value
计算最近N期开奖号码的和值(红球号码之和)
参数:
count(number, 可选): 期数,默认10
返回:SumValueResult对象,包含:
count: 计算的期数data: 每期的开奖号码和对应的和值statistics: 统计信息averageSumValue: 平均和值minSumValue: 最小和值maxSumValue: 最大和值standardDeviation: 标准差
返回示例:
{
"count": 10,
"data": [
{
"date": "2025-12-04(四)",
"code": "2025140",
"red": "01,03,04,12,18,24",
"sumValue": 62
},
...
],
"statistics": {
"averageSumValue": 115.5,
"minSumValue": 62,
"maxSumValue": 168,
"standardDeviation": 35.2
}
}
和值分析意义:
- 理论最小和值:21(1+2+3+4+5+6)
- 理论最大和值:183(28+29+30+31+32+33)
- 实战常见范围:80-140(约90%的开奖号码落在此区间)
- 和值反映号码整体的"大小"倾向
7. calculate_ac_value
计算最近N期开奖号码的AC值(算术复杂性)
参数:
count(number, 可选): 期数,默认10
返回:ACValueResult对象,包含:
count: 计算的期数data: 每期的开奖号码和对应的AC值statistics: 统计信息averageACValue: 平均AC值minACValue: 最小AC值maxACValue: 最大AC值distribution: AC值分布(各AC值出现的次数)
返回示例:
{
"count": 10,
"data": [
{
"date": "2025-12-04(四)",
"code": "2025140",
"red": "01,03,04,12,18,24",
"acValue": 8
},
...
],
"statistics": {
"averageACValue": 7.8,
"minACValue": 6,
"maxACValue": 9,
"distribution": {
"6": 1,
"7": 3,
"8": 4,
"9": 2
}
}
}
AC值分析意义:
- AC值 = 不同差值的个数 - (号码数量 - 1)
- 反映号码的离散程度和结构复杂性
- 理论最小值:0(号码极其规律,如01,02,03,04,05,06)
- 理论最大值:10(号码极度分散)
- 黄金实战区间:7, 8, 9(超过85%的开奖号码AC值落在此区间)
- AC值过低(<5)或过高(10)的组合中奖概率极低
配置MCP客户端
在你的MCP客户端配置文件中添加:
{
"mcpServers": {
"lottery": {
"command": "node",
"args": ["d:/Project/nodejs/lottery-mcp-server/dist/server.js"]
}
}
}
或使用开发模式:
{
"mcpServers": {
"lottery": {
"command": "npm",
"args": ["run", "dev"],
"cwd": "d:/Project/nodejs/lottery-mcp-server"
}
}
}
技术栈
- TypeScript
- Node.js
- @modelcontextprotocol/sdk
- HTTPS (内置模块)
数据来源
数据来自中国福利彩票官方网站
注意事项
- 服务器首次请求时会从API获取数据并缓存
- 后续查询将使用缓存数据,提高响应速度
- 数据包含从2013-01-01到最新一期的所有开奖记录