@mymcp-fun/bazi
Version:
专业的八字计算MCP服务器
256 lines (192 loc) • 5.9 kB
Markdown
# 八字计算MCP服务器
🔮 专业的八字计算MCP服务器
[](https://badge.fury.io/js/@mymcp-fun%2Fbazi)
[](https://opensource.org/licenses/MIT)
## ✨ 特性
- 🚀 **一行命令启动**: `npx @mymcp-fun/bazi`
- 📊 **完整八字分析**: 四柱、五行、生肖、星座、农历日期
- 🌍 **时区支持**: 支持全球时区的准确计算
- 🔗 **MCP协议兼容**: 无缝集成Claude Desktop等MCP客户端
- ⚡ **TypeScript构建**: 类型安全,性能优异
- 🧪 **完整测试**: 100%测试覆盖率
## 🚀 快速开始
### 直接使用 (推荐)
```bash
npx @mymcp-fun/bazi
```
### 全局安装
```bash
npm install -g @mymcp-fun/bazi
bazi # 安装后可直接使用 bazi 命令
```
## 🔧 MCP客户端配置
### Claude Desktop
在 `claude_desktop_config.json` 中添加:
```json
{
"mcpServers": {
"bazi": {
"command": "npx",
"args": ["-y", "@mymcp-fun/bazi"]
}
}
}
```
### 其他MCP客户端
本服务器兼容所有标准MCP客户端,包括:
- Claude Desktop
- Zed Editor
- VS Code (通过MCP扩展)
- 自定义MCP客户端
## 📊 工具API
### get_bazi_details
计算生辰八字和五行信息
**输入参数:**
- `year` (number): 出生年份 (1900-2100)
- `month` (number): 出生月份 (1-12)
- `day` (number): 出生日期 (1-31)
- `hour` (number): 出生时间 (0-23)
- `gender` (string, 可选): 性别 "male" 或 "female",默认 "male"
- `timezone` (string, 可选): 时区,默认 "Asia/Shanghai"
**返回结果:**
```json
{
"pillars": {
"year": "乙酉",
"month": "己丑",
"day": "丁巳",
"hour": "壬子"
},
"elements": {
"wood": 30,
"fire": 50,
"earth": 50,
"metal": 20,
"water": 50
},
"animal": "鸡",
"constellation": "水瓶",
"lunarDate": {
"year": 2005,
"month": 12,
"day": 29,
"isLeapMonth": false
}
}
```
## 🧪 开发和测试
### 克隆项目
```bash
git clone https://github.com/mymcp-fun/bazi.git
cd bazi
```
### 安装依赖
```bash
npm install
```
### 开发模式
```bash
npm run dev
```
### 构建项目
```bash
npm run build
```
### 运行测试
```bash
# 运行所有测试
npm test
# 单独运行测试
npm run test:basic # 基础功能测试
npm run test:mcp # MCP服务器测试
npm run test:lunar # lunar-javascript API测试
npm run test:accuracy # 准确性测试
```
## 📁 项目结构
```
bazi/
├── src/
│ ├── server.ts # MCP服务器主入口
│ ├── bazi-service.ts # 八字计算服务
│ ├── types.ts # TypeScript类型定义
│ └── config.ts # 配置管理
├── tests/ # 测试文件
├── dist/ # 编译输出
└── package.json # npm配置
```
## 🔧 技术栈
- **MCP SDK**: @modelcontextprotocol/sdk (最新版本)
- **八字计算**: lunar-javascript (权威库,1600+周下载量)
- **开发语言**: TypeScript 5.0+
- **运行环境**: Node.js 18+
- **依赖管理**: npm
## 📦 作为库使用
本包除了可以作为 MCP 服务器使用,还可以作为 npm 库直接在项目中使用:
```bash
npm install @mymcp-fun/bazi
```
### 可用的导出模块
- `@mymcp-fun/bazi/service` - 八字计算服务类
- `@mymcp-fun/bazi/types` - TypeScript 类型定义
- `@mymcp-fun/bazi` - 完整的 MCP 服务器
## 📝 使用示例
### 在Claude Desktop中使用
1. 配置MCP服务器后重启Claude Desktop
2. 看到工具图标表示服务器已连接
3. 提问示例:
```
请帮我计算一下2006年1月28日23时50分出生的人的八字信息
```
Claude会自动调用八字计算工具并返回详细分析:
```
八字四柱:乙酉 己丑 丁巳 壬子
生肖:鸡
星座:水瓶座
农历:2005年腊月廿九
五行分布:木30 火50 土50 金20 水50
```
### 编程调用示例
```typescript
// 导入八字计算服务
import { MCPBaziService } from '@mymcp-fun/bazi/service';
import { BaziResult } from '@mymcp-fun/bazi/types';
const service = new MCPBaziService();
const result: BaziResult = await service.calculateBazi({
year: 2006,
month: 1,
day: 28,
hour: 23
});
console.log(`四柱: ${result.四柱.年柱} ${result.四柱.月柱} ${result.四柱.日柱} ${result.四柱.时柱}`);
console.log(`生肖: ${result.生肖}`);
console.log(`星座: ${result.星座}`);
```
## 🎯 准确性保证
### 技术基础
- 使用**lunar-javascript**作为计算引擎,这是最受信任的中文农历计算库之一
- 周下载量1600+,远超其他同类包
- 由专业开发者6tail维护,专门为中文传统算法设计
### 测试验证
- ✅ 传统命理学经典案例测试通过
- ✅ 边界时间处理测试通过
- ✅ 全时区计算验证通过
- ✅ 100%测试覆盖率
### 计算特色
- 支持完整的天干地支计算
- 准确的五行分析和权重计算
- 正确的生肖和星座判断
- 精确的农历日期转换
## 🌟 为什么选择这个包?
1. **传播简单**: 一行npm命令,无需复杂环境配置
2. **计算准确**: 基于权威lunar-javascript库,保证结果可靠
3. **功能完整**: 不仅有四柱,还包含生肖、星座、农历、五行分析
4. **开发友好**: TypeScript类型安全,现代化开发体验
5. **生态兼容**: 完美支持MCP协议,可与各种AI客户端集成
## 📞 支持
- 🐛 **问题反馈**: [GitHub Issues](https://github.com/mymcp-fun/bazi/issues)
- 📧 **联系作者**: [howard@mymcp.fun](mailto:howard@mymcp.fun)
- 🌐 **项目主页**: [mymcp.fun](https://mymcp.fun)
## 📄 许可证
MIT License - 查看 [LICENSE](LICENSE) 文件了解详情。
---
🌟 **如果这个项目对你有帮助,请给个Star支持一下!**