Skip to main content
Glama

Mingli MCP Server

by spyfree
MIT License
  • Apple
  • Linux

命理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"

示例:

{ "date": "2000-08-16", "time_index": 2, "gender": "女", "calendar": "solar" }

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"

示例:

{ "date": "2000-08-16", "time_index": 2, "gender": "女" }

输出包含:

  • 四柱八字(年月日时)

  • 天干地支详细信息

  • 十神分析(比肩、劫财等)

  • 五行分数统计

  • 地支藏干信息

  • 生肖、日主等基本信息

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. 克隆项目

cd /Users/lix18854/Documents/code # 项目已在 ziwei_mcp 目录中 cd ziwei_mcp

2. 创建虚拟环境(推荐)

python3 -m venv venv source venv/bin/activate # macOS/Linux # 或 venv\Scripts\activate # Windows

3. 安装依赖

pip install -r requirements.txt

4. 配置环境变量(可选)

cp .env.example .env # 编辑 .env 文件根据需要调整配置

5. 测试运行

chmod +x mingli_mcp.py python mingli_mcp.py

6. 配置 Cursor MCP

编辑或创建 ~/.cursor/mcp.json:

{ "mcpServers": { "mingli": { "command": "/Users/lix18854/Documents/code/ziwei_mcp/venv/bin/python", "args": ["/Users/lix18854/Documents/code/ziwei_mcp/mingli_mcp.py"], "env": { "LOG_LEVEL": "INFO" } } } }

注意: 请根据实际路径调整 commandargs

7. 重启 Cursor

重启 Cursor IDE 以加载新的 MCP 配置。

📁 项目结构

ziwei_mcp/ ├── mingli_mcp.py # MCP服务器主入口 ├── config.py # 配置管理 ├── requirements.txt # Python依赖 ├── .env.example # 环境变量示例 ├── .gitignore # Git忽略文件 ├── README.md # 项目文档 │ ├── core/ # 核心抽象层 │ ├── __init__.py │ ├── base_system.py # 命理系统抽象基类 │ ├── birth_info.py # 生辰信息数据模型 │ └── chart_result.py # 排盘结果数据模型 │ ├── transports/ # 传输层(支持多种传输方式) │ ├── __init__.py │ ├── base_transport.py # 传输层抽象基类 │ └── stdio_transport.py # stdio传输实现(默认) │ # 预留: http_transport.py, ws_transport.py │ ├── systems/ # 命理系统实现 │ ├── __init__.py # 系统注册中心 │ ├── ziwei/ # 紫微斗数(已实现) │ │ ├── __init__.py │ │ ├── ziwei_system.py # 系统实现 │ │ └── formatter.py # 结果格式化 │ ├── bazi/ # 八字(预留) │ │ └── __init__.py │ └── astrology/ # 占星(预留) │ └── __init__.py │ ├── utils/ # 工具函数 │ ├── __init__.py │ ├── validators.py # 参数验证 │ └── formatters.py # 响应格式化 │ └── tests/ # 测试(待完善) └── __init__.py

🚀 扩展新命理系统

本项目采用插件化架构,添加新命理系统只需3步:

步骤1: 创建系统类

systems/ 下创建新目录,实现 BaseFortuneSystem 接口:

# systems/bazi/bazi_system.py from core.base_system import BaseFortuneSystem class BaziSystem(BaseFortuneSystem): def get_system_name(self) -> str: return "八字" def get_chart(self, birth_info): # 实现八字排盘逻辑 return {...} # 实现其他必需方法...

步骤2: 注册系统

systems/__init__.py 中注册:

from .bazi import BaziSystem register_system('bazi', BaziSystem)

步骤3: 添加MCP工具

mingli_mcp.py_handle_tools_list() 中添加工具定义。

就这么简单!无需修改核心框架代码。

🔧 传输层扩展

当前默认使用 stdio 传输(适用于 Cursor)。未来可扩展:

HTTP传输(预留)

# transports/http_transport.py class HttpTransport(BaseTransport): def __init__(self, host, port): # 实现HTTP服务器 pass

WebSocket传输(预留)

# transports/ws_transport.py class WebSocketTransport(BaseTransport): def __init__(self, host, port): # 实现WebSocket服务器 pass

📚 使用示例

在 Cursor 中使用

  1. 获取紫微排盘:

帮我排一个紫微斗数盘:2000年8月16日,寅时,女性
  1. 查询运势:

查询2000年8月16日寅时出生的女性,今天的紫微运势
  1. 分析宫位:

分析上面这个人的命宫

编程调用

from systems import get_system # 获取紫微系统 ziwei = get_system('ziwei') # 准备生辰信息 birth_info = { 'date': '2000-08-16', 'time_index': 2, # 寅时 'gender': '女', 'calendar': 'solar' } # 获取排盘 chart = ziwei.get_chart(birth_info) print(chart) # 获取运势 from datetime import datetime fortune = ziwei.get_fortune(birth_info, datetime.now()) print(fortune) # 分析宫位 palace = ziwei.analyze_palace(birth_info, '命宫') print(palace)

🧪 测试

# 运行测试(待实现) pytest tests/ # 测试单个系统 python -m systems.ziwei.ziwei_system

📝 依赖说明

  • py-iztro: 紫微斗数核心库,提供排盘算法

  • python-dotenv: 环境变量管理

  • python-dateutil: 日期处理

🗺️ 未来规划

  • 完善八字系统实现

  • 添加西方占星系统

  • 实现合盘功能

  • HTTP/WebSocket传输层

  • 命理知识库集成

  • AI解读功能

  • 更多运势分析维度

🤝 贡献

欢迎贡献代码、报告问题或提出建议!

📄 许可证

MIT License

🙏 致谢


🔮 开始你的命理探索之旅!

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/spyfree/mingli-mcp'

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