README.md•3.96 kB
# 六壬MCP服务器
基于[kentang2017/kinliuren](https://github.com/kentang2017/kinliuren)项目实现的六壬排盘MCP服务器。
参考[MCPQimenJson](https://github.com/wuunicorn/MCPQimenJson)项目重构,采用简洁的架构和标准的MCP协议。
## 功能特点
- ✅ 标准的MCP (Model Context Protocol) 服务器
- ✅ 支持JSON-RPC 2.0协议通信
- ✅ 提供六壬排盘计算工具
- ✅ 提供当前时间获取工具
- ✅ 直接调用kinliuren库,输出原始结果
- ✅ 简洁的架构,无复杂封装层
## 安装依赖
```bash
pip install -r requirements.txt
```
## MCP工具说明
### 1. get_current_time
获取当前系统时间,返回详细的时间信息。
**输入参数**: 无
**输出**: 当前时间的详细JSON信息
### 2. calculate_liuren
计算指定时间的六壬排盘,返回完整的六壬数据。
**输入参数**:
- `datetime_str`: 时间字符串,格式 `YYYY-MM-DD HH:MM:SS`
**输出**: 包含六壬排盘完整数据的JSON结果
## 作为MCP服务器使用
该工具设计为MCP服务器,通过标准输入输出进行JSON-RPC通信:
```json
// 初始化请求
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}}
// 工具列表请求
{"jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {}}
// 工具调用请求
{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {
"name": "calculate_liuren",
"arguments": {"datetime_str": "2024-01-15 14:30:00"}
}}
```
## 输出格式
### 六壬排盘结果
工具返回完整的六壬排盘JSON数据:
```json
{
"success": true,
"data": {
"year": 2024,
"month": 1,
"day": 15,
"hour": 14,
"minute": 30,
"solar_term": "小寒",
"lunar_month": "腊",
"day_ganzhi": "癸丑",
"hour_ganzhi": "庚申",
"liuren_data": {
"格局": ["比用", "知一"],
"日馬": "寅",
"三傳": {
"初傳": ["戌", "合", "財", "丙"],
"中傳": ["巳", "陰", "子", "癸"],
"末傳": ["子", "龍", "父", "戊"]
},
"四課": {
"四課": ["戌卯", "合"],
"三課": ["卯申", "常"],
"二課": ["辰酉", "玄"],
"一課": ["酉甲", "雀"]
},
"天地盤": {
"天盤": ["午", "未", "申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳"],
"地盤": ["亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌"],
"天將": ["后", "貴", "蛇", "雀", "合", "勾", "龍", "空", "虎", "常", "玄", "陰"]
}
// ... 更多六壬数据
}
}
}
```
### 时间获取结果
```json
{
"success": true,
"data": {
"year": 2024,
"month": 1,
"day": 15,
"hour": 14,
"minute": 30,
"second": 45,
"datetime_str": "2024-01-15 14:30:45",
"weekday": "Monday",
"weekday_cn": "星期一",
"timestamp": 1705323045
}
}
```
## 项目结构
```
MCPliuren/
├── liuren_mcp.py # 主要的六壬MCP服务器
├── config.py # 配置文件和辅助函数
├── requirements.txt # 项目依赖
└── README.md # 说明文档
```
## 依赖库
- **kinliuren**: 六壬排盘计算库
- **sxtwl**: 中国传统天文历法计算库
## 技术实现
1. **MCP协议支持**: 实现完整的JSON-RPC 2.0协议
2. **简洁架构**: 直接调用kinliuren库,无复杂封装
3. **配置分离**: 使用独立的config.py处理配置逻辑
4. **错误处理**: 完善的异常处理和错误响应
5. **标准化输出**: 返回结构化的JSON结果
## MCP协议特性
- **initialize**: 服务器初始化
- **tools/list**: 获取可用工具列表
- **tools/call**: 调用具体工具
- **错误处理**: 标准JSON-RPC错误响应
## 注意事项
- 确保Python版本>=3.6
- 需要网络连接来安装依赖包
- 时间计算基于中国传统历法
- 作为MCP服务器使用时,通过标准输入输出进行通信