ziwei-mcp
Version:
紫微斗数 MCP (Ziwei Doushu Model Context Protocol) - 基于 MCP 协议的紫微斗数命理分析工具
352 lines (262 loc) • 9.37 kB
Markdown
# 紫微斗数 MCP 服务器
一个基于 Model Context Protocol (MCP) 的专业紫微斗数命理分析服务器,提供完整的命盘生成、解读、分析和可视化功能。支持传统紫微斗数算法,集成现代数据持久化和可视化技术。
## 🌟 功能特点
### 核心功能
- 🔮 **命盘生成**: 基于农历算法生成完整的紫微斗数命盘
- 📖 **命盘解读**: 提供详细的命盘分析和专业解释
- 🌟 **运势分析**: 分析当前和未来的运势走向
- 💕 **合婚分析**: 双人命盘合婚配对分析
- 📅 **择日功能**: 根据命盘选择吉日良辰
- 🤖 **AI智能解盘**: 结合传统命理与现代AI技术
### 可视化功能
- 🎨 **命盘图像**: 生成多种样式的可视化命盘图表
- 📊 **数据可视化**: 支持SVG、PNG、HTML多种格式输出
- 🎭 **主题定制**: 传统、现代、彩色、单色等多种配色方案
### 专业分析
- ⭐ **星曜信息**: 查询各个星曜的详细信息和影响
- 🏠 **宫位分析**: 获取十二宫位的含义和深度分析
- 📈 **人生时间轴**: 大运流年详细分析
- 👥 **人际关系**: 家庭、朋友、事业关系分析
- 💼 **职业指导**: 职业发展和决策支持
- 🏥 **健康分析**: 健康趋势和养生建议
- 🎓 **教育指导**: 学习能力和教育规划
## 📦 安装
### 环境要求
- Node.js 18.0+
- npm 8.0+
- SQLite 3.0+
### 安装依赖
```bash
npm install
```
## 🚀 使用方法
### 启动服务器
```bash
# 开发模式
npm run dev
# 生产模式
npm start
```
### 客户端配置 (stdio)
如果您使用支持MCP的客户端(如Claude Desktop),可以通过stdio方式连接到本服务:
#### Claude Desktop配置
在Claude Desktop的配置文件中添加以下配置:
```json
{
"mcpServers": {
"ziwei-doushu": {
"command": "npx",
"args": ["ziwei-mcp"]
}
}
}
```
#### Cherry Studio配置
在Cherry Studio中配置MCP服务器:
1. 打开Cherry Studio设置
2. 找到MCP服务器配置选项
3. 添加新的MCP服务器,使用以下配置:
```json
{
"name": "紫微斗数MCP服务器",
"description": "紫微斗数命理分析MCP服务",
"command": "npx",
"args": ["ziwei-mcp"],
"env": {},
"protocol": "stdio",
"timeout": 30000,
"restart": true
}
```
或者直接导入项目根目录下的`cherry-studio-config.json`配置文件。
## 📚 API 文档
### 核心工具
#### 1. generate_chart - 生成命盘
生成完整的紫微斗数命盘
**参数:**
- `name` (string): 姓名
- `birthDate` (string): 出生日期 (YYYY-MM-DD)
- `birthTime` (string): 出生时间 (HH:MM)
- `gender` (string): 性别 (male/female)
- `location` (object): 出生地点
- `province` (string): 省份
- `city` (string): 城市
- `longitude` (number): 经度
- `latitude` (number): 纬度
- `timezone` (string): 时区 (默认: Asia/Shanghai)
- `calendar` (string): 历法 (solar/lunar,默认: solar)
#### 2. interpret_chart - 命盘解读
提供详细的命盘分析和解释
**参数:**
- `chartId` (string): 命盘ID
- `aspects` (array): 解读方面
- personality: 性格特质
- career: 事业发展
- wealth: 财富运势
- relationships: 感情关系
- health: 健康状况
- family: 家庭关系
- `detailLevel` (string): 详细程度 (basic/detailed/comprehensive)
#### 3. analyze_fortune - 运势分析
分析特定时期的运势走向
**参数:**
- `chartId` (string): 命盘ID
- `period` (string): 分析周期 (current_year/next_year/decade/custom)
- `startDate` (string): 开始日期 (YYYY-MM-DD)
- `endDate` (string): 结束日期 (YYYY-MM-DD)
- `aspects` (array): 分析方面
#### 4. analyze_compatibility - 合婚分析
双人命盘合婚配对分析
**参数:**
- `chart1Id` (string): 第一人命盘ID
- `chart2Id` (string): 第二人命盘ID
- `analysisType` (string): 分析类型 (marriage/business/friendship)
- `aspects` (array): 分析维度
#### 5. select_auspicious_date - 择日功能
根据命盘选择吉日良辰
**参数:**
- `chartId` (string): 命盘ID
- `eventType` (string): 事件类型
- `dateRange` (object): 日期范围
- `preferences` (object): 偏好设置
### 可视化工具
#### 6. generate_visualization - 生成可视化图表
生成命盘可视化图表,支持多种样式和格式
**参数:**
- `chartId` (string): 命盘ID
- `visualizationType` (string): 可视化类型
- traditional_chart: 传统命盘
- modern_wheel: 现代轮盘
- palace_grid: 宫位网格
- star_map: 星曜地图
- `includeElements` (array): 包含元素
- `colorScheme` (string): 配色方案
- `outputFormat` (string): 输出格式 (svg/png/html)
### 专业分析工具
#### 7. analyze_life_timeline - 人生时间轴分析
分析人生时间轴,包括大运流年详细分析
#### 8. analyze_relationships - 人际关系分析
分析人际关系,包括家庭、朋友、同事等
#### 9. career_guidance - 职业发展指导
职业发展指导和决策支持
#### 10. health_analysis - 健康分析
健康分析和养生建议
#### 11. educational_guidance - 教育指导
教育和学习指导
## 🛠️ 开发指南
### 开发环境设置
```bash
# 进入项目目录
cd 紫微斗数
# 安装依赖
npm install
# 启动MCP服务器
npm start
# 或启动开发模式
npm run dev
```
### 可用脚本
```bash
npm start # 启动MCP服务器
npm run dev # 启动开发模式(带调试)
npm test # 运行基础测试
npm run lint # ESLint代码检查
npm run format # Prettier代码格式化
```
### 代码规范
- 使用 ESLint 进行代码检查
- 使用 Prettier 进行代码格式化
- 遵循 CommonJS 模块规范
- 支持 Node.js 18.0+ 版本
## 🔧 配置说明
### 配置文件
项目使用以下配置文件:
- `config/sqlite-config.js` - SQLite数据库配置
- `config/persistence-config.js` - 数据持久化配置
- `package.json` - 项目依赖和脚本配置
### 数据库配置
项目使用 SQLite 作为数据存储,配置文件位于 `config/sqlite-config.js`。
## 📖 使用示例
### 生成命盘示例
```javascript
// 通过MCP调用
const chart = await mcpClient.callTool('generate_chart', {
name: '张三',
birthDate: '1990-01-01',
birthTime: '08:30',
gender: 'male',
location: {
province: '北京市',
city: '北京市',
longitude: 116.4074,
latitude: 39.9042
}
});
```
### 命盘解读示例
```javascript
const interpretation = await mcpClient.callTool('interpret_chart', {
chartId: chart.id,
aspects: ['personality', 'career', 'wealth'],
detailLevel: 'detailed'
});
```
## 🤝 贡献指南
1. Fork 项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开 Pull Request
### 提交规范
```
feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
test: 测试相关
chore: 构建过程或辅助工具的变动
```
## 📄 许可证
本项目采用 MIT 许可证。
## 🆘 支持与反馈
- 📚 详细文档: [紫微斗数MCP开发文档](./紫微斗数MCP开发文档.md)
- 📋 SQLite部署: [SQLite部署指南](./SQLite部署指南.md)
- 🎨 SVG生成: [SVG生成器使用指南](./SVG生成器使用指南.md)
## 🔗 相关链接
- [Model Context Protocol](https://modelcontextprotocol.io/)
- [Claude Desktop](https://claude.ai/desktop)
- [lunar-javascript库](https://github.com/6tail/lunar-javascript) - 农历转换核心库
---
**注意**: 本项目仅供学习和研究使用,命理分析结果仅供参考,不应作为人生重大决策的唯一依据。
#### 其他MCP客户端配置
对于其他支持MCP的客户端,请参考以下stdio配置参数:
- **命令**: `npx`
- **参数**: `["ziwei-mcp"]`
- **协议**: stdio
## 📋 更新日志
### v1.0.0 (2024-01-01)
- ✨ 初始版本发布
- 🔮 实现基础命盘生成功能
- 📖 支持命盘解读和运势分析
- 🎨 添加SVG图像生成
- 💾 集成SQLite数据持久化
- 🤖 支持AI智能解盘
- 💕 添加合婚分析功能
- 📅 实现择日功能
## ❓ 常见问题
**Q: 为什么生成的命盘与其他软件不同?**
A: 不同的紫微斗数软件可能使用不同的算法和参数,本服务基于传统算法实现,结果可能存在差异。
**Q: 支持哪些地区的时区?**
A: 支持全球主要时区,默认使用Asia/Shanghai(北京时间)。
**Q: 数据会保存多长时间?**
A: 目前数据会永久保存在本地SQLite数据库中,您可以手动清理不需要的数据。
**Q: 如何获得更准确的分析结果?**
A: 请确保输入准确的出生日期、时间和地点信息,时间精确到分钟级别。
## 🔧 技术支持
如遇到技术问题,请提供以下信息:
1. 错误信息和错误代码
2. 输入的参数信息
3. 操作系统和Node.js版本
4. 详细的操作步骤
解释数据