loading…
Search for a command to run...
loading…
Provides tools for Bazi (Chinese astrology) chart calculation and analysis, enabling LLMs to generate accurate birth charts, determine patterns, and answer foll
Provides tools for Bazi (Chinese astrology) chart calculation and analysis, enabling LLMs to generate accurate birth charts, determine patterns, and answer follow-up questions based on actual calculations rather than model knowledge.
把"罗盘"——基于子平真诠格局法的命盘推算——做成一个 MCP(Model Context Protocol)工具集,让任何 MCP 客户端(Claude Code / Claude Desktop / OpenClaw / Cursor / 自研 LLM Agent)都能在对话里给用户起盘、读盘、追问。
云端入口已上线:https://luopan.caihangao.com。MCP 默认就指向它,开箱即用,不需要本机起服务。
LLM 自己不会算八字。让模型直接基于训练知识"分析命盘"是错的——干支、月令、十神、格局判定全是规则计算,必须由专门的引擎做。
mcp-luopan 把整套引擎(排盘 → 十神 → 格局 → 大运 → 报告 → 多轮追问)封装成 3 个 MCP 工具,LLM 不再瞎编,而是:
你(用户):
帮我分析一下 1991 年 3 月 15 日早上 5 点出生的男生,看看格局和今年事业。
Claude 自动:
luopan_analyze(year=1991, month=3, day=15, hour=5, gender=1) → 拿到 session_id 和完整命盘luopan_chat(session_id, "今年事业") → 拿到针对这一个盘的回答整个过程你不需要懂术语、不需要看到 JSON。
你想跑一份"100 个名人的格局分布":
# 伪代码:让一个 Agent 循环调用
for person in people:
chart = call_tool("luopan_analyze", **person.birth_info)
record(person.name, chart["pattern"]["final_pattern"])
引擎在云端,不占你本机 CPU;脚本只管 IO 编排。
把 luopan 注册到 OpenClaw 的 mcp.json,给某个 agent(比如飞书 bot)授权这 3 个工具,agent 就能在飞书对话里给用户测命盘 + 追问。当前本机 OpenClaw 已经按这个模式跑过;云端 OpenClaw 部署还在 TODO。
想测试不同模型解读命盘的语言风格、想给某个 agent 调"罗盘人设"——后端永远返回同一份事实数据,模型差异完全暴露在自然语言层。
git clone <this-repo> /Users/Neil/Projects/mcp-servers/mcp-luopan
cd /Users/Neil/Projects/mcp-servers/mcp-luopan
uv venv && uv pip install -e .
或用普通 venv:
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
装好后会有 mcp-luopan 可执行(在 .venv/bin/ 里)。
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | .venv/bin/mcp-luopan
预期看到 3 个工具:luopan_analyze / luopan_chat / luopan_session_info。
编辑 ~/.claude.json 或项目级 .mcp.json:
{
"mcpServers": {
"luopan": {
"command": "/Users/Neil/Projects/mcp-servers/mcp-luopan/.venv/bin/mcp-luopan",
"env": {
"LUOPAN_API_BASE": "https://luopan.caihangao.com",
"LUOPAN_TIMEOUT_SECONDS": "60"
}
}
}
}
重启 Claude Code,然后开一个新会话直接说"用罗盘帮我看个盘",它就会调工具。
加到 ~/.openclaw/mcp.json:
"luopan": {
"command": "/Users/Neil/Projects/mcp-servers/mcp-luopan/.venv/bin/mcp-luopan",
"env": {
"LUOPAN_API_BASE": "https://luopan.caihangao.com",
"LUOPAN_TIMEOUT_SECONDS": "60"
}
}
要让某个 agent 用它,agent 的 tools.allow 不需要显式列 luopan_*——OpenClaw 默认让所有 agent 看到 mcp.json 里所有 server。
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json,结构同上。
所有工具都返回 JSON 字符串。出错时返回
{"error": "...", "hint": "..."},不抛异常给 LLM。
luopan_analyze(year, month, day, hour, gender)完整命盘分析——一次调用产出全部信息。调用前必须:和用户确认阳历日期、出生小时(0-23)、性别(1=男 / 0=女)。
返回字段(节选):
| 字段 | 内容 |
|---|---|
session_id |
12 位短 ID,用于后续 luopan_chat |
sizhu |
四柱(年/月/日/时柱的天干地支) |
pattern |
格局判定(如"正官格 / 天成 / followup_remaining=5") |
report |
三层解读(卡片 tier1 / 详读 tier2 / 技术 tier3) |
dayun |
大运时间轴 + 5 级吉凶 |
highlights |
命盘亮点(13 条规则,rarity 1-3) |
partner |
互补搭档画像(38 子格局 × 3 状态映射) |
female |
女命专属(夫星/子星/夫妻宫,仅 gender=0 时) |
wuxing / shishen |
五行统计 / 十神关系 |
followup_remaining |
还能追问几次(默认 5) |
luopan_chat(session_id, question)针对某一个已有命盘追问。必须在 2 小时内、5 次以内。
返回(已规范化):
{
"answer": "AI 的回答文本",
"followup_remaining": 4,
"followup_count": 1,
"max_followups": 5,
"session_id": "..."
}
followup_remaining == 0 或返回 session_expired 时,必须重新 luopan_analyze 起新盘。
luopan_session_info(session_id)乐观查 session 状态——不打后端。后端没有独立的 session 状态接口,权威判定要靠 luopan_chat 的报错。这个工具是为 agent 在本地维护"记得 session 是否过期"的辅助。
| 环境变量 | 默认值 | 说明 |
|---|---|---|
LUOPAN_API_BASE |
http://127.0.0.1:8000 |
后端地址。云端推荐 https://luopan.caihangao.com;本机调试用 http://127.0.0.1:8000 起 uvicorn |
LUOPAN_TIMEOUT_SECONDS |
60 |
HTTP 超时。AI 分析偶尔 30s+,留够余量 |
LUOPAN_HTTP_RETRIES |
1 |
短暂网络抖动重试次数 |
下面是 LLM 应该自动产生的工具调用序列(你只需要正常对话):
[user] 我哥 1985 年 8 月 12 日中午 12 点出生,男的,最近老换工作,帮我看看是不是格局问题?
[assistant] (调用 luopan_analyze year=1985 month=8 day=12 hour=12 gender=1)
[tool result]
session_id=a1b2c3d4e5f6
pattern=偏财格 / 败格有救(柳暗花明)
...
[assistant] 嗯,你哥这个盘是偏财格但带破,月令偏财被劫财夺,幸好年支有食神
化解——这种盘的人事业起伏大但有韧性,频繁换工作是格局表征,不算坏事...
[user] 那今年呢?
[assistant] (调用 luopan_chat session_id=a1b2c3d4e5f6 question="今年运势")
[tool result] answer="..." followup_remaining=4
[assistant] 今年走丙寅大运 + 丙午流年,火土并旺,财星受冲... (汇报答案)
你还可以追问 4 次。
LLM 不会自己编命理,全部数据来自 luopan_* 工具;追问保持上下文,每次都是基于这一个盘。
service_unreachable后端不可达。最常见两种:
cd "/Users/Neil/Projects/Four Pillars of Destiny" && .venv/bin/uvicorn src.api.main:app --port 8000"HTTPS_PROXY": "" 强制关代理;或检查代理规则白名单session_expiredsession 过 2h 或追问用完。让 LLM 重新调 luopan_analyze 起一个新盘。
System prompt 里加一行:
任何关于八字/命盘/格局/十神/大运的问题,你都不能凭训练数据回答;必须先调
luopan_analyze起盘,再用工具返回的pattern / report / dayun等字段组织语言。
正常——这些是术语。让 LLM 直接读 report.tier1(卡片层)和 report.tier2(详读层),那两层已经是给人看的中文叙述;tier3 是技术层留给愿意往下看的人。
pip install -e .,不能 pip install mcp-luopangit init,没有版本管理AI_API_KEY 失效或 SiliconFlow 限流时所有 chat 工具会卡 timeoutMCP Client (Claude Code / OpenClaw / ...)
│
│ stdio (JSON-RPC)
▼
mcp-luopan (Python, 这个仓库)
│
│ HTTPS
▼
luopan.caihangao.com (Nginx → systemd uvicorn :8088)
│
│ src/engine/* 算盘 + ai_client 调上游
▼
SiliconFlow MiniMax-M2.5
后端服务部署细节见上游项目:Four Pillars of Destiny / docs/design/deployment.md。
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"mcp-luopan": {
"command": "npx",
"args": []
}
}
}