命理MCP服务 (Mingli MCP Server)
一个支持多种命理系统(紫微斗数、八字、占星等)的 Model Context Protocol (MCP) 服务器,专为 AI 工具(如 Cursor IDE)设计。
✨ 特性
🎯 核心特性
- ✅ 多命理系统支持: 采用插件化架构,轻松扩展新的命理系统 - ✅ 紫微斗数(已实现) 
- ✅ 八字(已实现)⭐ 新增 
- 🔄 西方占星(预留接口) 
 
- ✅ 多传输方式: 支持stdio、HTTP、WebSocket等多种传输协议 
- ✅ MCP标准兼容: 完全兼容 MCP 协议规范 
- ✅ 易于扩展: 清晰的抽象层设计,添加新系统只需3步 
🔮 紫微斗数功能
- ✅ 完整排盘: 十二宫、主星、辅星、杂耀、四化等 
- ✅ 运势查询: 大限、流年、流月、流日、流时 
- ✅ 宫位分析: 深度分析特定宫位的星曜配置 
- ✅ 多种历法: 支持阳历和农历输入 
- ✅ 格式化输出: JSON和Markdown两种输出格式 
🎴 八字功能 ⭐ 新增
- ✅ 四柱排盘: 年月日时四柱、天干地支详细信息 
- ✅ 十神分析: 比肩、劫财、食神、伤官、偏财、正财、七杀、正官、偏印、正印 
- ✅ 五行分析: 金木水火土分数、百分比、平衡度 
- ✅ 地支藏干: 详细的地支藏干信息 
- ✅ 运势查询: 大运、流年分析 
- ✅ 缺失分析: 自动识别五行缺失并给出建议 
- ✅ 多种历法: 支持阳历和农历输入 
📋 可用工具
1. get_ziwei_chart
获取紫微斗数完整排盘信息
参数:
- date(string, 必需): 出生日期 YYYY-MM-DD,如 "2000-08-16"
- time_index(integer, 必需): 时辰序号 0-12- 0=早子时(23-01), 1=丑时(01-03), 2=寅时(03-05), 3=卯时(05-07) 
- 4=辰时(07-09), 5=巳时(09-11), 6=午时(11-13), 7=未时(13-15) 
- 8=申时(15-17), 9=酉时(17-19), 10=戌时(19-21), 11=亥时(21-23) 
- 12=晚子时(23-01) 
 
- gender(string, 必需): 性别 "男" 或 "女"
- calendar(string, 可选): 历法 "solar"(阳历) 或 "lunar"(农历), 默认 "solar"
- is_leap_month(boolean, 可选): 是否闰月,默认 false
- format(string, 可选): 输出格式 "json" 或 "markdown", 默认 "markdown"
示例:
2. get_ziwei_fortune
获取紫微斗数运势信息
参数:
- birth_date(string, 必需): 出生日期
- time_index(integer, 必需): 时辰序号
- gender(string, 必需): 性别
- calendar(string, 可选): 历法类型
- query_date(string, 可选): 查询日期,不填则为今天
- format(string, 可选): 输出格式
3. analyze_ziwei_palace
分析紫微斗数特定宫位
参数:
- birth_date(string, 必需): 出生日期
- time_index(integer, 必需): 时辰序号
- gender(string, 必需): 性别
- palace_name(string, 必需): 宫位名称,可选值:- 命宫、兄弟、夫妻、子女、财帛、疾厄 
- 迁移、仆役、官禄、田宅、福德、父母 
 
- calendar(string, 可选): 历法类型
- format(string, 可选): 输出格式
4. list_fortune_systems
列出所有可用的命理系统
5. get_bazi_chart ⭐ 新增
获取八字(四柱)排盘信息
参数:
- date(string, 必需): 出生日期 YYYY-MM-DD
- time_index(integer, 必需): 时辰序号 0-12
- gender(string, 必需): 性别 "男" 或 "女"
- calendar(string, 可选): 历法 "solar"(阳历) 或 "lunar"(农历), 默认 "solar"
- is_leap_month(boolean, 可选): 是否闰月,默认 false
- format(string, 可选): 输出格式 "json" 或 "markdown", 默认 "markdown"
示例:
输出包含:
- 四柱八字(年月日时) 
- 天干地支详细信息 
- 十神分析(比肩、劫财等) 
- 五行分数统计 
- 地支藏干信息 
- 生肖、日主等基本信息 
6. get_bazi_fortune ⭐ 新增
获取八字运势信息
参数:
- birth_date(string, 必需): 出生日期
- time_index(integer, 必需): 时辰序号
- gender(string, 必需): 性别
- calendar(string, 可选): 历法类型
- query_date(string, 可选): 查询日期,不填则为今天
- format(string, 可选): 输出格式
输出包含:
- 当前年龄 
- 大运信息(年龄范围、干支) 
- 流年信息(年份、干支、生肖) 
- 本命八字 
7. analyze_bazi_element ⭐ 新增
分析八字五行强弱
参数:
- birth_date(string, 必需): 出生日期
- time_index(integer, 必需): 时辰序号
- gender(string, 必需): 性别
- calendar(string, 可选): 历法类型
- format(string, 可选): 输出格式
输出包含:
- 日主及其五行属性 
- 五行分数和百分比 
- 最旺/最弱五行 
- 缺失五行 
- 平衡度评价 
- 补救建议 
🛠️ 安装和配置
环境要求
- Python 3.8+ 
- Cursor IDE 或其他支持MCP的工具 
1. 克隆项目
2. 创建虚拟环境(推荐)
3. 安装依赖
4. 配置环境变量(可选)
5. 测试运行
6. 配置 Cursor MCP
编辑或创建 ~/.cursor/mcp.json:
注意: 请根据实际路径调整
command和args
7. 重启 Cursor
重启 Cursor IDE 以加载新的 MCP 配置。
📁 项目结构
🚀 扩展新命理系统
本项目采用插件化架构,添加新命理系统只需3步:
步骤1: 创建系统类
在 systems/ 下创建新目录,实现 BaseFortuneSystem 接口:
步骤2: 注册系统
在 systems/__init__.py 中注册:
步骤3: 添加MCP工具
在 mingli_mcp.py 的 _handle_tools_list() 中添加工具定义。
就这么简单!无需修改核心框架代码。
🔧 传输层扩展
当前默认使用 stdio 传输(适用于 Cursor)。未来可扩展:
HTTP传输(预留)
WebSocket传输(预留)
📚 使用示例
在 Cursor 中使用
- 获取紫微排盘: 
- 查询运势: 
- 分析宫位: 
编程调用
🧪 测试
📝 依赖说明
- py-iztro: 紫微斗数核心库,提供排盘算法 
- python-dotenv: 环境变量管理 
- python-dateutil: 日期处理 
🗺️ 未来规划
- 完善八字系统实现 
- 添加西方占星系统 
- 实现合盘功能 
- HTTP/WebSocket传输层 
- 命理知识库集成 
- AI解读功能 
- 更多运势分析维度 
🤝 贡献
欢迎贡献代码、报告问题或提出建议!
📄 许可证
MIT License
🙏 致谢
- iztro - 紫微斗数 JavaScript 库 
- py-iztro - Python 移植版本 
- MCP Protocol - Model Context Protocol 规范 
🔮 开始你的命理探索之旅!
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Enables AI tools to perform Chinese fortune-telling analysis including Ziwei Doushu (Purple Star Astrology) and Bazi (Four Pillars) chart generation, fortune reading, and element analysis. Supports multiple calendar systems and output formats for comprehensive divination services.