mcp-luopan
mcp-luopan
把"罗盘"——基于子平真诠格局法的命盘推算——做成一个 MCP(Model Context Protocol)工具集,让任何 MCP 客户端(Claude Code / Claude Desktop / OpenClaw / Cursor / 自研 LLM Agent)都能在对话里给用户起盘、读盘、追问。
云端入口已上线:https://luopan.caihangao.com。MCP 默认就指向它,开箱即用,不需要本机起服务。
它解决什么问题
LLM 自己不会算八字。让模型直接基于训练知识"分析命盘"是错的——干支、月令、十神、格局判定全是规则计算,必须由专门的引擎做。
mcp-luopan 把整套引擎(排盘 → 十神 → 格局 → 大运 → 报告 → 多轮追问)封装成 3 个 MCP 工具,LLM 不再瞎编,而是:
拿到准确的命盘数据(四柱 / 格局 / 大运 / 五行 / 十神)
依据真实数据组织语言(讲故事的能力交给 LLM,事实交给引擎)
支持有上下文的追问(5 次追问 / 2 小时 TTL,由后端 session 管理)
典型使用场景
场景 A:在 Claude Code / Claude Desktop 里给朋友测一个
你(用户):
帮我分析一下 1991 年 3 月 15 日早上 5 点出生的男生,看看格局和今年事业。
Claude 自动:
调
luopan_analyze(year=1991, month=3, day=15, hour=5, gender=1)→ 拿到session_id和完整命盘用自然语言把"正官格 / 天成 / 大运走势 / 配偶画像"翻译给你
你追问"今年事业"→ Claude 调
luopan_chat(session_id, "今年事业")→ 拿到针对这一个盘的回答
整个过程你不需要懂术语、不需要看到 JSON。
场景 B:批量分析
你想跑一份"100 个名人的格局分布":
# 伪代码:让一个 Agent 循环调用
for person in people:
chart = call_tool("luopan_analyze", **person.birth_info)
record(person.name, chart["pattern"]["final_pattern"])引擎在云端,不占你本机 CPU;脚本只管 IO 编排。
场景 C:嵌入到 OpenClaw / 飞书 Agent
把 luopan 注册到 OpenClaw 的 mcp.json,给某个 agent(比如飞书 bot)授权这 3 个工具,agent 就能在飞书对话里给用户测命盘 + 追问。当前本机 OpenClaw 已经按这个模式跑过;云端 OpenClaw 部署还在 TODO。
场景 D:LLM Eval / 提示工程实验
想测试不同模型解读命盘的语言风格、想给某个 agent 调"罗盘人设"——后端永远返回同一份事实数据,模型差异完全暴露在自然语言层。
Quick start:60 秒上手
1. 装
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/ 里)。
2. 烟雾测试(不进 MCP host 直接验证)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | .venv/bin/mcp-luopan预期看到 3 个工具:luopan_analyze / luopan_chat / luopan_session_info。
3. 注册到一个 MCP host
Claude Code(当前最常见)
编辑 ~/.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(本机或云端)
加到 ~/.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。
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json,结构同上。
三个工具的语义
所有工具都返回 JSON 字符串。出错时返回
{"error": "...", "hint": "..."},不抛异常给 LLM。
luopan_analyze(year, month, day, hour, gender)
完整命盘分析——一次调用产出全部信息。调用前必须:和用户确认阳历日期、出生小时(0-23)、性别(1=男 / 0=女)。
返回字段(节选):
字段 | 内容 |
| 12 位短 ID,用于后续 |
| 四柱(年/月/日/时柱的天干地支) |
| 格局判定(如"正官格 / 天成 / followup_remaining=5") |
| 三层解读(卡片 tier1 / 详读 tier2 / 技术 tier3) |
| 大运时间轴 + 5 级吉凶 |
| 命盘亮点(13 条规则,rarity 1-3) |
| 互补搭档画像(38 子格局 × 3 状态映射) |
| 女命专属(夫星/子星/夫妻宫,仅 gender=0 时) |
| 五行统计 / 十神关系 |
| 还能追问几次(默认 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 是否过期"的辅助。
配置参数
环境变量 | 默认值 | 说明 |
|
| 后端地址。云端推荐 |
|
| HTTP 超时。AI 分析偶尔 30s+,留够余量 |
|
| 短暂网络抖动重试次数 |
一段完整 LLM 对话示例
下面是 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
后端不可达。最常见两种:
本机模式未起 uvicorn——
cd "/Users/Neil/Projects/Four Pillars of Destiny" && .venv/bin/uvicorn src.api.main:app --port 8000云端模式网络代理(mihomo / Clash)拦截了 caihangao.com——临时在 mcp.json 的 env 里加
"HTTPS_PROXY": ""强制关代理;或检查代理规则白名单
session_expired
session 过 2h 或追问用完。让 LLM 重新调 luopan_analyze 起一个新盘。
LLM 总是想"自己解读",不调工具
System prompt 里加一行:
任何关于八字/命盘/格局/十神/大运的问题,你都不能凭训练数据回答;必须先调
luopan_analyze起盘,再用工具返回的pattern / report / dayun等字段组织语言。
返回里出现日柱/十神看不懂
正常——这些是术语。让 LLM 直接读 report.tier1(卡片层)和 report.tier2(详读层),那两层已经是给人看的中文叙述;tier3 是技术层留给愿意往下看的人。
已知限制
未发布 PyPI:必须本地
pip install -e .,不能pip install mcp-luopan未 git 化:当前 mcp-luopan 目录还没
git init,没有版本管理session 存内存:后端 uvicorn 重启会丢所有 session(用户得重起盘)
依赖云端 SiliconFlow:
AI_API_KEY失效或 SiliconFlow 限流时所有 chat 工具会卡 timeout不做并发隔离:同一个 session_id 同时被多次 chat 时不保证顺序
后端是怎么跑的(架构速览)
MCP 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。
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ZoezoeCookie/mcp-luopan'
If you have feedback or need assistance with the MCP directory API, please join our Discord server