15 种术数排盘引擎
taibu-core 内置 15 个术数排盘工具,覆盖八字、紫微斗数、六爻、梅花易数、奇门遁甲、大六壬、小六壬、太乙、塔罗、西方占星、黄历等命理术数领域。每个术数以独立 domain 子路径提供算法与类型,并输出规范化的 to*Text() 文本和 to*Json() JSON,可直接阅读或供程序消费;同时可通过 MCP 工具名(如 qimen)调用 executeTool 执行排盘并渲染统一结果。

太卜(TaiBu)是一个把传统命理术数与 AI 结合的开源项目,仓库同时包含 Web 应用、移动端(iOS/Android)、算法核心库与 MCP 服务。其核心包 taibu-core 用 TypeScript 实现八字、紫微斗数、六爻、梅花易数、奇门遁甲、大六壬、小六壬、太乙、塔罗、西方占星、黄历等 15 种术数的排盘算法,并统一提供规范文本(content)与结构化 JSON(structuredContent)两种输出。围绕这套引擎,项目提供三种接入方式:本地 stdio 的 taibu-mcp、公共在线 HTTP 的 taibu-mcp-server(无需 OAuth/API Key),以及随 skill 打包、仅依赖 Node.js 18+ 的本地计算脚本。上层 Web 应用还提供 AI 分析、历史记录、知识库、@提及、合盘、面相手相、MBTI 等功能。它适合希望在 AI Agent 中调用命理排盘工具、或在自己的 Node.js 项目中直接使用排盘算法的开发者与命理应用构建者。
taibu-core 内置 15 个术数排盘工具,覆盖八字、紫微斗数、六爻、梅花易数、奇门遁甲、大六壬、小六壬、太乙、塔罗、西方占星、黄历等命理术数领域。每个术数以独立 domain 子路径提供算法与类型,并输出规范化的 to*Text() 文本和 to*Json() JSON,可直接阅读或供程序消费;同时可通过 MCP 工具名(如 qimen)调用 executeTool 执行排盘并渲染统一结果。
taibu-mcp-server 使用 MCP HTTP 传输,标准入口为 POST /mcp,不要求 OAuth、API Key 或数据库,客户端可直接连接 https://mcp.mingai.fun/mcp。
taibu-mcp 是太卜的本地 stdio MCP Server,通过 npx -y taibu-mcp 或全局安装 taibu-mcp 后,可在 Claude Desktop、Cursor、Cherry Studio 等支持 MCP stdio 的客户端中接入,直接调用八字、紫微斗数、六爻、梅花易数、奇门遁甲、大六壬、小六壬、太乙、塔罗、西方占星、黄历等 15 种排盘工具,工具结果以规范文本和结构化 JSON 两种形式返回。
`taibu-core/mcp` 的 `renderToolResult(...)` 和 `buildToolSuccessPayload(...)` 使用统一输出契约:
太卜占术工具的计算引擎已随 skill 打包为 scripts/vendor/taibu-core.bundle.mjs,无需安装依赖即可在本地直接运行,仅要求环境中有 Node.js 18 或更高版本。通过 node scripts/taibu.mjs list 列出全部工具、schema 查看参数说明与调用示例、call 传入 JSON 参数执行排盘,默认输出适合直接作为解读依据的规范文本,加 --json 可改为输出结构化数据。
太卜同时提供 Web 应用与 iOS/Android 客户端,并配套三种 Docker Compose 部署文件:docker-compose.yml 用于主站部署,docker-compose.web.yml 用于 Web 端,docker-compose.mcp.yml 用于启动公共 MCP Server 容器,该容器无需 Supabase、JWT 或站点账号变量即可运行。
使用场景用户在对话中提供出生时间,希望得到八字排盘
Agent 调用 bazi 工具,传入 gender、birthYear、birthMonth、birthDay、birthHour 等参数,工具返回四柱、十神、藏干、神煞与关系格局,可直接作为解读依据。
使用场景用户只记得自己的八字四柱,想确认可能的出生时间
调用 bazi_pillars_resolve,传入年柱、月柱、日柱、时柱,返回 1900-2100 范围内的出生时间候选列表。
使用场景用户询问今天是否适合求婚或出行
调用 almanac 工具查询指定日期的黄历,输出宜忌、冲煞、值星、方位系统、12 时辰吉凶与二十八星宿等信息。
使用场景开发者需要在自有服务中集成奇门遁甲排盘
安装 taibu-core 后从 taibu-core/mcp 导入 executeTool,以 'qimen' 为工具名传入 year、month、day、hour、minute、timezone,再用 renderToolResult 渲染结果。