农历日历服务器

一个基于Python 3.12和lunar-python的中国传统农历日历功能服务器,提供八字计算、日历转换、黄历查询等功能。

  • by BACH-AI-Tools
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 BACH-AI-Tools/lunar_mcp_server

使用说明

农历日历MCP服务器

中文 | 英语

一个用于中国传统历法功能的模型上下文协议(MCP)服务器,采用Python 3.12和lunar-python构建。

🚀 快速入门(推荐)

使用UVX一键启动

uvx bach-lunar-mcp

就是这个! 无需安装,无需设置虚拟环境,无需管理依赖项。UVX 将自动下载并运行服务器。

在您的MCP客户端中进行配置

Cursor 集成开发环境(IDE)

{
  "mcpServers": {
    "lunar-calendar": {
      "command": "uvx",
      "args": ["bach-lunar-mcp"]
    }
  }
}

Claude 桌面版

{
  "mcpServers": {
    "lunar-calendar": {
      "command": "uvx",
      "args": ["bach-lunar-mcp"]
    }
  }
}

Cherry Studio(樱桃工作室)

{
  "mcpServers": {
    "lunar-calendar": {
      "command": "uvx",
      "args": ["bach-lunar-mcp"]
    }
  }
}

📦 PyPI 包https://pypi.org/project/bach-lunar-mcp/ 的中文翻译可以是:“https://pypi.org 上的项目:bach-lunar-mcp”。不过,通常我们不会直接翻译网址,而是直接使用原网址,或者在需要说明时简单提及。如果非要给出一个类似“标题”的翻译,可以是“PyPI 上的 bach-lunar-mcp 项目”,但具体还是根据上下文来决定如何表述
📖 快速入门指南: QUICKSTART_UVX.md 翻译为中文是:“快速入门_UVX.md”


特点/功能

🎋(这个符号本身在中文中没有直接对应的翻译,它通常代表日本的千纸鹤或某种装饰性图案,根据上下文可能需要具体解释或保留原样) 八字算命 - 计算八个字符以进行算命
📅 日历 日历转换 - 在阳历和阴历之间进行转换
🌙 月亮(或:月光) 黄历查询 - 中国黄历,每日推荐
🔮(这个符号本身在中文中没有直接对应的翻译,它通常代表神秘、魔法或预知等概念,可以理解为“神秘之眼”或“魔法水晶球”等意象,但具体翻译需根据上下文来确定。) 每日运势 - 每日运势与建议
⭐ 节气 - 查询任意年份的24个节气
计算器 五行分析 - 根据出生信息进行五行分析

安装

先决条件

  • Python 3.12及以上版本
  • UV包管理器

设置

  1. 克隆仓库:
git clone <repository-url>
cd lunar-mcp-server
  1. 安装 uv(如果尚未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 安装项目及其依赖项:
uv sync

这将自动:

  • 使用Python 3.12创建一个虚拟环境
  • 从 pyproject.toml 安装所有依赖项
  • 生成 uv.lock 以确保构建过程的可重复性

使用方法

作为MCP服务器

在您的MCP客户端中进行配置(例如,Claude桌面版):

{
  "mcpServers": {
    "lunar-calendar": {
      "command": "uv",
      "args": ["run", "python", "-m", "src.server"],
      "cwd": "/path/to/lunar-mcp-server"
    }
  }
}

直接使用

你也可以直接使用辅助函数:

# Run with uv
uv run python -c "
from src.utils import LunarHelper
result = LunarHelper.solar_to_lunar(2024, 1, 1)
print(result['lunar_date_chinese'])  # 二〇二三年冬月二十
"

# Calculate BaZi
uv run python -c "
from src.utils import LunarHelper
result = LunarHelper.get_bazi(1990, 1, 1, 8, 30)
print(result['bazi_string'])  # 己巳 丙子 丙寅 壬辰
"

可用工具

1. bazi_calculate(八字计算)

计算八字(四柱)以占卜命运。

参数:

  • birth_date出生日期格式为YYYY-MM-DD
  • birth_time出生时间,格式为HH:MM

示例:

{
  "birth_date": "1990-01-01",
  "birth_time": "08:30"
}

2. 日历转换器

在阳历和阴历之间进行转换。

参数:

  • date日期格式为YYYY-MM-DD
  • convert_to“阴历”或“阳历”
  • is_leap是闰月(可选)

示例:

{
  "date": "2024-01-01",
  "convert_to": "lunar"
}

3. 黄历查询

查询特定日期的中国历书信息。

参数:

  • date日期格式为YYYY-MM-DD

示例:

{
  "date": "2024-01-01"
}

4. 日运(或每日运势)

获取每日运势和建议。

参数:

  • date日期格式为YYYY-MM-DD

示例:

{
  "date": "2024-01-01"
}

5. jieqi查询

查询特定年份的24个节气。

参数:

  • year查询年份

示例:

{
  "year": 2024
}

6. 五行分析

根据出生信息分析五行(金木水火土)。

参数:

  • birth_date出生日期格式为YYYY-MM-DD
  • birth_time出生时间,格式为HH:MM

示例:

{
  "birth_date": "1990-01-01",
  "birth_time": "08:30"
}

发展

运行测试

# Quick functionality test
uv run python quick_test.py

# Run MCP server
uv run python run_server.py

# Test specific functionality
uv run python -c "from src.utils import LunarHelper; print('✅ Import works!')"

# Install dev dependencies (optional)
uv add --dev pytest black mypy

代码格式化

# Format code
black src/
isort src/

# Type checking
mypy src/

依赖项

  • mcp模型上下文协议实现
  • **lunar-python(可译为“月球之Python”或根据上下文意译为“用于月球任务的Python”等,具体取决于该术语在特定语境中的含义)**中国农历库
  • **pydantic(一个用于数据验证和设置管理的Python库)**数据验证和设置管理

贡献

  1. 为仓库创建分支(或“克隆仓库”)
  2. 创建你的特性分支
  3. 提交您的更改
  4. 推送至分支
  5. 创建拉取请求

许可证

此项目采用MIT许可证授权——详见 许可证 文件中有详细信息。

致谢


注: 这是一个用于教育和娱乐目的的传统日历工具。请负责任地使用。