mcpField
T
True Solar Time

True Solar Time

本地服务
auspiceoracle.com游戏娱乐04 周前更新

关于 True Solar Time

面向 BaZi 从业者和排盘工具开发者的确定性太阳时转换服务、CLI 和 TypeScript 库。它根据历史夏令时、经度和均时差校正出生时间,但不解读命盘。

主要功能

  1. 01将出生时间校正为真太阳时
  2. 02报告夏令时、经度及均时差
  3. 03检测不存在的本地时间
  4. 04计算距时辰边界的时间
  5. 05判断所属时辰

适用场景

  1. 01排 BaZi 盘前校正出生资料
  2. 02核查受历史夏令时影响的日期
  3. 03标记接近时辰边界的出生时间
  4. 04将太阳时转换集成到 BaZi 工具

MCP 相关

向 MCP 客户端提供 `true_solar_time` 和 `hour_branch` 工具。托管版及桌面配置还提供排盘相关工具,并将远程调用转发至 Auspice Oracle 引擎。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"shann5-true-solar-time": {
"command": "npx",
"args": [
"-y",
"true-solar-time-mcp"
]
}
}
}
启动命令npx -y true-solar-time-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmtrue-solar-time-mcp1.0.1

工具

2

收录的工具列表 · 更新于 2 周前

参数类型必填说明
dayinteger是
hourinteger是记录的墙上时钟小时,24 小时制
yearinteger是出生年份(公历)
monthinteger是
minuteinteger是
timeZonestring是出生地的 IANA 时区,例如 'Asia/Shanghai'、'America/Vancouver'
longitudenumber是出生地经度(度),东经为正(乌鲁木齐 ≈ 87.6,温哥华 ≈ -123.1)

详细介绍

true-solar-time-mcp

为八字/四柱排盘进行真太阳时校正——多数排盘工具会跳过的步骤。

一个 MCP 服务、命令行工具和 TypeScript 库,可将记录的出生时间(挂钟时间 + IANA 时区 + 经度)转换为出生地太阳的实际时间。结果具有确定性:相同输入,每次得到相同输出。

$ npx true-solar-time 1988-07-01 08:00 Asia/Shanghai 121.47

clock time    1988-07-01 08:00 (Asia/Shanghai, DST GMT+9)
true solar    1988-07-01 07:02
correction    -58 min
  DST         -60
  longitude   +6
  eq. of time -4
hour branch   辰 (2 min from 卯)
⚠ within 8 min of a branch boundary — cast both candidates

为什么需要它

八字命盘取决于太阳的位置,但出生记录采用的是民用钟表时间。两者之间需要进行三项校正,而几乎所有排盘工具——包括广受欢迎的开源 LLM“技能”——都会悄然跳过这些校正:

  1. 历史夏令时。 中国在 1986 年至 1991 年间实行夏令时。在这六个夏天出生的人,出生证明上的时间都记录了拨快一小时后的钟表时间——这足以跨越一个完整的时辰;若出生时间恰好合适,日柱也会改变。IANA/ICU 时区数据库掌握这些信息;大多数排盘工具却从不查询。
  2. 经度。 中国横跨四个地理时区,却统一使用一个时区。在乌鲁木齐,按北京时间 07:10 出生时,当地真太阳时刚过 05:00——相差整整两个时辰。
  3. 均时差。 真太阳时与平太阳时一年中最多相差 ±16 分钟(此处采用 NOAA 近似算法,误差远小于一分钟)。仅在 11 月初,这项校正就可能使命盘跨越时辰边界。

本库还会报告大多数工具不会告知你的两件事:

  • 你的出生时间是否真实存在过。 春季拨快时钟的夜晚,当地时间会从 01:59 跳到 03:00;出生记录中的 02:30 并不对应任何真实时刻。我们会检测这个缺口、报告其时长,绝不会悄悄猜测。
  • 校正后的时间距离时辰边界有多近。 如果只差几分钟,诚实的答案应是“排出两个候选结果”,而不是假装精确。

本工具明确不会做什么

它不会排盘、挑选有利五行,也不会进行任何解读。排盘是已有成熟开源实现的成熟问题;解读没有唯一正确答案,也不属于查询库的职责。只做好一步,且力求严谨。

完整方法论——包括本库采用的每个常量、阈值和惯例——均已发布于 auspiceoracle.com/en/method。三个附有完整推导的实例:出生时间测试。背景文章:真太阳时。

无需安装,即可使用自己的出生数据试算:免费八字计算器(已应用真太阳时校正)。

MCP 服务

托管端点(无需安装): https://auspiceoracle.com/mcp — 无状态、可流式传输的 HTTP,无需身份验证。可用作 claude.ai 自定义连接器,也适用于任何支持可流式 HTTP 的 MCP 客户端:

{
  "mcpServers": {
    "true-solar-time": { "url": "https://auspiceoracle.com/mcp" }
  }
}

本地运行(stdio):

{
  "mcpServers": {
    "true-solar-time": {
      "command": "npx",
      "args": ["-y", "true-solar-time-mcp"]
    }
  }
}

工具:

  • true_solar_time — 完整校正:校正后的时刻、夏令时/经度/均时差明细(三者之和始终与总校正量完全相等)、时辰、距边界的距离,以及对不存在时间的检测。
  • hour_branch — 查询已校正时间所属的时辰及其距边界的距离。

托管端点还提供 cast_pillars——由生产环境中的 Auspice Oracle 引擎计算经过太阳时校正的四柱,以及藏干、纳音和大运(该引擎为闭源;采用与已发布方法论相同的惯例)。只提供事实,不判断强弱,也不作解读。

如果你正在构建八字技能或 Agent,请在排盘之前调用 true_solar_time,并将校正后的时间传给排盘工具。LLM 无法在上下文中完成这一转换:均时差需要用三角级数计算,而夏令时历史记录保存在数据库中,不在模型权重里。

库

import { toTrueSolarTime } from 'true-solar-time-mcp'

const r = toTrueSolarTime(1992, 6, 15, 7, 10, 'Asia/Shanghai', 87.6)
// r.hour === 4, r.minute === 59, r.correctionMinutes === -130
// r.hourBranch === '寅' — two branches away from what the clock says

明确说明约定

  • 时辰分支在奇数时切换(子时从 23:00 开始),每个时辰为 120 分钟。
  • 边界风险标记采用 8 分钟阈值。这是一项约定,并非物理定律——请根据自己的容忍度调整;临近边界的命盘无论如何都应按两种方式排盘。
  • 历史时区数据来自运行时的 ICU 数据(Node ≥ 18)。我们不维护自己的时区表。
  • 当标准时差本身在年中发生变化(俄罗斯,2011 年)时,分解中的夏令时/经度拆分可能无法精确归因;总校正始终根据实际时差计算,不受影响。

桌面扩展(Claude Desktop)

releases 中的 MCPB bundle 打包了此服务,可一键安装,并加入完整的排盘流程:

工具运行位置
true_solar_time、hour_branch本地离线运行,使用本仓库中的代码
cast_chart、personality_sketch、compose_sketch远程运行,位于 https://auspiceoracle.com/mcp/bazi

排四柱需要生产引擎(节气时刻、起运日期、晚子时约定),这些不属于此软件包的一部分——因此 bundle 会通过 HTTPS 转发这三个调用,并原样传回结果。你也可以用 npm run build:mcpb 自行构建。

同一托管端点也可作为普通远程 MCP 服务使用,无需安装:

claude mcp add --transport http bazi https://auspiceoracle.com/mcp/bazi

隐私政策

完整政策:https://auspiceoracle.com/en/privacy

  • 本地工具(true_solar_time、hour_branch)不会向任何地方发送数据。不联网、不进行遥测,也不写入文件。
  • 远程工具(cast_chart、personality_sketch、compose_sketch)会通过 HTTPS 将你提供的出生信息——日期、钟表时间、IANA 时区、经度,以及排盘时用于设置起运方向的性别标记——发送至 https://auspiceoracle.com/mcp/bazi,以计算并返回本次结果。
  • 此端点不要求也不接受姓名、电子邮件、账户或身份验证信息。
  • 不会持久保存任何信息:此端点为无状态服务,不存储出生信息或结果,也不会将其用于训练。CDN 会保留标准边缘请求日志(IP、时间戳、路径)以防止滥用;不会记录请求正文。
  • 不会向第三方传输数据;此端点不会调用任何外部服务。
  • 保留期限:不保留请求内容。联系方式:https://github.com/Shann5/true-solar-time-mcp/issues 或 auspiceoracle.com 上的联系页面。

与 auspiceoracle.com 的关系

这是从 Auspice Oracle 背后的引擎中提取出来的太阳时模块镜像。主引擎是权威来源;这里的黄金测试会将此镜像固定为与相同的已发布示例一致。非常欢迎提交 Bug 报告;会拒绝任何更改上述约定的 PR(分叉约定会使已发布的方法论失实)。

MIT © Shan Liu

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。