time-direction
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@time-direction六壬奇门合参 2026-10-06 20:00 祈福 本命午 坐标30N120E"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
择时与方位插件 / Time Direction Plugin
当前版本:0.3.2 · 维护者:GEsoFo · 源码仓库 · 问题反馈
本地运行的六壬、奇门与真实北斗方位联合择时插件,适用于支持 stdio MCP 与 Skill 的 AI 客户端。
一个组合插件,包含通用、可离线计算的 stdio MCP 服务器和 time-direction-election Skill。提供六壬、奇门和北斗方位的
固定事实与候选材料,由调用它的模型按事项和全部本命作取舍。
不使用吉神加分、凶神扣分,不自动给出“最佳方位”。没有模型 API 密钥依赖。
能力
六壬完整式盘:天地盘、四课、九宗门三传、十二天将、旬遁、六亲长生。
奇门:时家转盘拆补/置闰可选,星、门、神、天地干、值符值使、时旬空。
具名九遁组合,含龙遁、虎遁主式与另说;门迫、击刑、三奇入墓及 乙加辛等条件一起提供,格名不自动等于通用吉方。
六壬贵人所临地盘方、式盘辰天罡斗柄方,保留原文事类边界。
真实北斗七星:每次传入任意经纬度,计算具体时刻的几何方位、高度、 是否在地平线上及近似太阳高度。没有默认城市,也不要求在线星历下载。
多个具名本命分别比较;婚姻需双方资料,缺一方不能回填可用结论。
判断材料按小批次读取,模型回填后生成离线 HTML;用方留空时可用段 必须附模型选择的方位和理由。
Related MCP server: BaZi (Eight Characters) Calculator
安装与启动
Python 3.11+、Node.js 18+。
git clone https://github.com/GEsoFo/time-direction-plugin.git
cd time-direction-plugin
python -m pip install .
time-direction-mcp也可通过仓库的 Code → Download ZIP 下载源码后解压,在解压目录执行安装命令。启动命令供客户端接入或协议调试使用,交互时请在 AI 客户端加载 MCP 配置与配套 Skill。
源代码方式可运行 python /path/to/time-direction-mcp/server.py,先安装
lunar-python==1.4.8 skyfield==1.54 tzdata。所有资源跟随包安装,
不依赖开发者的盘符、用户目录、另一个项目 checkout 或私人配置。
服务器采用 MCP 标准 UTF-8 JSON-RPC stdio,支持初始化、工具列举、 工具调用与 ping。它是专用 stdio 实现;不声称提供 HTTP、SSE、OAuth 或通用 MCP 框架的所有可选能力。日志不混入 stdout。
MCP 配置
安装后可使用仓库的 .mcp.json:
{"mcpServers":{"time-direction":{"command":"time-direction-mcp","args":[]}}}若使用源码,把 command 设为实际 Python 命令,args 设为
服务器入口的绝对路径;不同客户端的配置存放位置由其产品决定。
可通过 TIME_DIRECTION_OUTPUT_ROOT 指定生成文件的根目录;默认使用
系统临时目录下的独立目录。观测地点只由工具参数提供,没有环境里的
隐藏默认城市。
工具
工具 | 用途 |
| 指定时刻起奇门局 |
| 指定时刻和经纬度计算真实七星 |
| 联合六壬、奇门、式盘斗柄、真实七星及各本命 |
| 创建1–7日材料和未判断 HTML,跨月不丢窗口 |
| 完整公历年365/366日;按月加载HTML,模型逐批判断 |
| 恢复日历HTTP预览与已登记书签 |
| 每次读取最多14个窗口供模型审阅 |
| 校验并累积合并各批判断后回填 HTML |
示例工具参数(地点是本次请求的示例,不是服务器默认值):
{
"datetime":"2026-10-06T20:00:00+08:00",
"purpose":"祈福",
"participants":[{"name":"本人","branch":"午"}],
"observer":{"latitude":30.0,"longitude":120.0,"elevation_m":0,"label":"本次观测点"}
}不传 observer 时,六壬、奇门和式盘斗柄仍正常计算,真实七星返回
needs_observer,不会假定城市或编造地平坐标。
计算口径和来源
本版术数时钟明确使用北京时间、默认23:00换日;input_timezone 仅用于
解析无偏移的输入时间,有时区偏移的 ISO 时间会先转换到北京时间起课。
观测地点影响真实星空,不暗改术数时钟为当地真太阳时。海外地点也可
调用真实天文工具,但不能把此默认术盘误称当地太阳时盘。
奇门采用具名现代拆补转盘口径:天禽寄芮、中五寄坤二,值符随时干, 值使按阴阳顺逆计时落宫,八门转八宫,八神阳顺阴逆。 局表、符首三元、八门九星及格局参考:
qimen_method 可传 chaibu(拆补,默认)或 zhirun(置闰)。
置闰按《遁甲演义》超接引例,采用含符首九日阈值、芒种/大雪重复三元、接气借新节下元;以1899-12-07甲午大雪正授连续推算,支持1900–2099。
两法均用时家转盘;不是九星飞宫。每次判断绑定所选起局法。龙遁“休乙加癸”引文含伏吟文字歧义,作为条件候选,
不宣称该另说完整成立。虎遁休门主式、生门另说分别保留。
天文使用 SIMBAD/CDS ICRS J2000 坐标与自行、Skyfield 公共接口的岁差章动
及地球转动转换。返回巡天级几何方位,不含周年光行差、视差、大气折射、
天气或地形;地平线上不等于肉眼可见。太阳高度是日光提醒的近似计算。
日历中的七星是窗口中点快照,并非两小时内方位恒定;要具体分钟请
再次调用 get_beidou_sky。
模型工作流
明确事项、每个参与者本命、范围和是否有观测坐标。
创建材料,按小批次读取所有需要的窗口,不能只挑漂亮案例。
模型比较每个方位的多体系证据、事类用途和矛盾;填写
verdict/reason/evidence。未指定用方的可用段还需suggested_direction(单一地支、理由、证据)。不能把吉格、贵人方或真实星空坐标机械累加成吉凶分数。
回填工具绑定参与者、观测点、事实摘要;不完整或旧参数不能冒充已审。
资料不足的窗口可以明确标待定。盘面事实和文化择时不构成中奖、疾病 结果、婚姻结局或其他现实事件的保证。
验证与发布
python -m unittest discover -s tests -v测试覆盖原文天遁示例、局盘排列不变量、主式/另说分离、太阳节气边界、 跨地点星空、MCP 初始化和真实工具调用、跨月材料及回填约束。
MIT 许可适用于本插件原创代码,派生六壬引擎保留 BSD-3-Clause;见
THIRD_PARTY_NOTICES.md。发布目录不包含开发环境、私人判断或个人坐标。
由 GEsoFo 维护;问题与改进建议可提交到 GitHub Issues。反馈请使用虚构示例,不要提交个人生成日历、真实坐标或凭据。
全年择日
调用 build_year_election,传入 year(1900–2099),以及事项、具名多本命、所选奇门方法和可选观测坐标。生成12个月全部365/366日事实。年度材料只保留窗口索引,每批 read_election_windows 最多14窗才展开完整盘面。
模型回填每批 render_election_calendar 后,会保留并合并之前已判断窗口;同ID再次提交可纠正结论。每批返回累计覆盖数及 complete,部分判断不会冒充全年完成。HTML只载入当前月份,保留同目录全部 .data.js 文件才能离线切月。
CLI:python <resources/calendar/scripts/calendar.py> --year 2027 --output <输出目录>。默认显示当前日期所在月;没有该月时从生成范围第一月开始。离线页面只浏览已有年份,要新年份由 MCP 或 CLI 重新生成。
组合插件安装与使用
发布 ZIP 解压后根目录包含 plugin.json、mcp.json、skills/time-direction-election/,以及兼容旧客户端的 .codex-plugin/plugin.json、.mcp.json。Skill 的 MCP 依赖标识与服务名称统一为 time-direction。
准备 Python 3.11+、Node.js 18+;在解压目录执行
python -m pip install .安装计算运行时。也可安装同版 wheel,依赖仍需通过合法包源安装。插件管理器不会自动安装 Python/Node,这一步是运行前提。在支持本地插件的客户端中添加解压目录/本地插件源并启用插件。新客户端读取根
plugin.json/mcp.json,兼容客户端读取.codex-plugin/plugin.json/.mcp.json。仅支持 MCP 的客户端可单独导入.mcp.json,并手动加载配套 Skill。新会话确认
time-direction的8个工具与time-direction-electionSkill 可见,输入“用择时与方位插件,为2027年开业择日,本命午,用方未指定”。多本命用名称与地支逐人提供。
如果客户端找不到 time-direction-mcp,将本机客户端配置的 command 改为实际 Python 环境的该入口绝对路径;发布包不包含开发者机器路径。该包是本地 stdio 插件,未部署远程服务、未提交官方公共插件目录,也没有自动修改用户的客户端配置。官方公共目录提交需满足其当前远程 HTTPS 接入要求。
MCP固定事实,Skill组织事项判断、全年的逐批审阅、上下文绑定和日历回填。安装两者不代表模型已经审阅任何日期。
开发者重建发布包:python scripts/package_release.py <包外输出目录>。不要把个人事实/判断输出、虚拟环境或密钥加入发布包。
官方包装规范:https://developers.openai.com/plugins/build/plugins ,Skill连接规范:https://developers.openai.com/plugins/build/skills 。
本地日历预览(0.3.0)
生成、回填工具现在自动返回标准 HTTP preview_url。预览在 MCP 进程中运行,仅绑定127.0.0.1,只提供明确注册的日历 HTML 与 .data.js,不暴露事实JSON、配置、目录列表或任意磁盘路径。地址使用ASCII路径;支持UTF-8脚本名。页面显示实际已回填/总窗口数,未回填不冒充全审阅。
服务随 MCP 进程存活,应用重启后请调用 preview_election_calendar(artifact_id) 恢复地址。默认自动分配空闲端口;TIME_DIRECTION_PREVIEW_PORT 可设首选端口,占用时回退空闲端口,返回实际地址。启动失败仍保留离线HTML与数据文件,返回 preview_error。没有自动关闭或绕过浏览器策略。
独立预览命令:time-direction-preview --artifact <artifact_id> --output-root <生成根目录> --port 8767。该命令保持运行才能提供预览;可用 --alias <短名> 兼容现有书签。本地 /health 返回服务名和版本。它只预览文件,不是远程HTTP MCP服务。
0.3.1 在每个已预览 artifact 内保存 preview.json(仅本机使用,不通过预览提供),MCP启动时恢复已登记的日历与别名。设置固定首选端口且该端口空闲时,重启后原书签可继续用;端口回退时以工具返回的新地址为准。
0.3.2 发布审查修复
从明确的
release-files.json清单在干净目录构建,扫描最终 ZIP 和 wheel;排除 Python 缓存,并在 wheel 内携带第三方许可说明。修复重启后第一次读取年度材料的导入错误、无效起盘口径未提前拒绝、北京时间转换和跨年范围越界。
修复异常预览记录导致启动失败及别名/令牌冲突,增加跨站读取限制。
未判断的日历保留请求事项、参与者和口径;页面导入时拒绝无效建议方位。
隐私边界和发布步骤见
SECURITY.md。公开仓库只使用新发布 ZIP 解压内容。
使用示例
在已连接的 AI 客户端输入:
用择时与方位插件,为 2027 年开业择日。参与者本命为午,用方未指定。先生成全年事实,再逐批判断并回填日历;报告已经判断的窗口数量与未完成部分。
只看盘面可输入:
查看北京时间 2027-01-01 12:00 的六壬和奇门盘,只列固定事实。
真实北斗方位须另行提供本次观测坐标;没有观测点时仍可查看术盘。参与者姓名可以使用“甲方”“乙方”等代号。
开发与贡献
src/time_direction_mcp/:服务器、文件材料管理与本机预览。src/time_direction_mcp/resources/calendar/:历法、六壬桥接、奇门、神煞、天文与离线页面。skills/time-direction-election/:事项澄清、逐批判断与回填工作流。tests/:排盘不变量、日历、协议、发布和隐私边界的回归测试。
欢迎通过 Issue 或 Pull Request 提交可复现问题与修复。修改计算规则时,请附具名口径、原始出处与虚构案例,并保持“固定事实、真实天文、模型判断”之间的界限。
0.3.2 在 Windows / Python 3.14 环境通过 23 项测试及隔离安装验证;其他系统与 Python 版本尚未逐一验证。常规算例测试不等于所有规则和日期逐例校勘。
Available Tools
8 toolsbuild_election_request
生成1至7日的联合择时判断材料及离线HTML;逐批读材料后由模型裁决。跨月不会漏掉窗口。
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| start | Yes | ||
| purpose | No | ||
| mountain | No | ||
| observer | No | ||
| rollover | No | ||
| participants | No | ||
| qimen_method | No | 拆补法 / 置闰法(九日含符首、接气借下元) | chaibu |
| noble_profile | No |
build_year_electionB
生成完整公历年度365/366日择时事实及按月加载的HTML;模型逐批判断,回填累积全年覆盖。没有默认观测城市。
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| purpose | No | ||
| mountain | No | ||
| observer | No | ||
| rollover | No | ||
| participants | No | ||
| qimen_method | No | 拆补法 / 置闰法(九日含符首、接气借下元) | chaibu |
| noble_profile | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the agent knows this is a non-destructive but non-read-only operation. The description adds useful behavioral notes (full-year coverage, month-by-month HTML loading, batch judging, and that no default observation city exists), but does not explain what happens if the optional observer is omitted despite that warning, nor the return artifact details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact, front-loaded sentences with no filler; the core deliverable (full-year facts + month-loaded HTML) leads. The workflow clause is slightly dense but earns its place by implying the batching model.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, nested-object tool with no output schema and only 13% schema coverage, the description omits output shape, parameter behavior, and prerequisites for most inputs. It communicates the deliverable but leaves the agent under-equipped to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 13% across 8 parameters with 4 enums and a nested observer/participants structure. The description only touches the observer concept via '没有默认观测城市' and says nothing about purpose, mountain, rollover, participants, qimen_method, or noble_profile, so it fails to compensate for the large schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: generating a full Gregorian year (365/366 days) of electional-timing facts plus month-loaded HTML, with a clear 'full-year batch' scope. It partially distinguishes itself from siblings like preview/render_election_calendar by emphasizing year-wide coverage, but does not explicitly name why an agent would pick this over build_election_request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause '模型逐批判断,回填累积全年覆盖' implies a usage pattern (process in batches and back-fill cumulative coverage), and '没有默认观测城市' hints the observer must be supplied. However, there is no explicit when-to-use vs. the many sibling tools (preview_election_calendar, render_election_calendar, read_election_windows), leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_beidou_skyBRead-only
按每次请求的经纬度计算真实北斗七星几何方位/高度与地平线状态;没有默认城市。
| Name | Required | Description | Default |
|---|---|---|---|
| datetime | Yes | ISO 8601; naive times use input_timezone; chart clock explicitly converts to Beijing civil time. | |
| observer | Yes | ||
| input_timezone | No | Asia/Shanghai |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered by structured data. The description adds that computation is driven strictly by request-supplied coordinates with no default city, which tells the agent omission of location will not silently succeed with a fallback. It says nothing about precision, ephemeris source, or performance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tightly written sentence with the core action front-loaded and the scope caveat attached. Nothing is redundant, though it is terse enough that the omitted details (units, return shape) feel like truncation rather than deliberate brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no description of the returned values (azimuth/altitude units, horizon-state vocabulary), the agent cannot predict the response shape. Annotations cover the safety profile and the input constraint is stated, but for a coordinate-driven astronomy computation with an underspecified nested observer object, more behavioral detail would be warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%: only 'datetime' is documented, while the nested observer fields (latitude, longitude, label, elevation_m) and input_timezone carry no descriptions. The description partly compensates by stating coordinates must be provided per request (no default city), but it never clarifies label/elevation_m meaning or timezone handling, leaving most parameters unexplained in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb/resource: computing real Big Dipper geometric azimuth/altitude and horizon status. It also states a scope constraint ('per-request lat/long, no default city') that distinguishes it from chart tools like get_qimen_chart that likely accept defaults. It never names a sibling explicitly, so differentiation is by domain inference rather than direct routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use/when-not guidance and no alternative tool is named. The phrase '没有默认城市' hints that coordinates must always be supplied, but that is a constraint on inputs, not guidance about which tool to pick for a given task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_direction_factsCRead-only
联合六壬完整式盘、奇门、贵人方、式盘斗柄、可选真实七星及每个本命;只给证据和候选,不给分数。
| Name | Required | Description | Default |
|---|---|---|---|
| purpose | No | ||
| datetime | Yes | ISO 8601; naive times use input_timezone; chart clock explicitly converts to Beijing civil time. | |
| mountain | No | ||
| observer | No | ||
| rollover | No | ||
| participants | No | ||
| qimen_method | No | 拆补法 / 置闰法(九日含符首、接气借下元) | chaibu |
| noble_profile | No | ||
| input_timezone | No | Asia/Shanghai |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a non-destructive, closed-world read. The description adds one genuinely useful behavioral fact: it returns evidence and candidates only, never scores, which sets expectations for how to consume the output. It stops there, saying nothing about cost, size, or determinism of the fused result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single dense sentence with no padding, and the most useful fact (evidence/candidates but no scores) is placed last rather than front-loaded. The list of fused techniques dominates the sentence, which buries the output contract.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with nested observer and participants objects, four enums, no output schema, and very low schema coverage, the description is far too thin. It does not explain how inputs like mountain, rollover, or per-participant branches shape the divination result, leaving the agent unable to reason about the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 22% across 9 parameters, so the description carries most of the burden, yet it never names or explains any parameter such as mountain, rollover, participants, noble_profile, or observer. The only enum that is documented (qimen_method) is explained in the schema, not here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific techniques it fuses (六壬完整式盘, 奇门, 贵人方, 斗柄, 可选七星, 本命), so the resource is identifiable, but it reads as a component checklist rather than a statement of what the tool delivers. It never distinguishes itself from the sibling get_qimen_chart or get_beidou_sky, which overlap heavily with two of the listed components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. A reader cannot tell from the description when this combined tool should be preferred over the single-technique siblings get_qimen_chart or get_beidou_sky.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_qimen_chartBRead-only
奇门时家转盘拆补/置闰局:星门神、天地干、主式和另说格局与警示;不自动判吉。
| Name | Required | Description | Default |
|---|---|---|---|
| datetime | Yes | ISO 8601; naive times use input_timezone; chart clock explicitly converts to Beijing civil time. | |
| rollover | No | zi | |
| qimen_method | No | 拆补法 / 置闰法(九日含符首、接气借下元) | chaibu |
| input_timezone | No | Asia/Shanghai |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds that it does not automatically judge auspiciousness and that output includes warnings/alternative formations, which is useful context for a divination chart with no output schema. It still does not describe return format or timezone behavior in depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single front-loaded sentence with no filler, ordered as purpose → contents → caveat. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only chart tool with no output schema, the description should explain return contents and key parameter choices. It lists output components but omits the return format and leaves rollover/timezone meaning to the schema, which only supplies defaults. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already documents datetime and qimen_method (50% coverage). The description repeats '拆补/置闰' but adds no syntax or behavior beyond the schema. It is silent on rollover and input_timezone, leaving two parameters undocumented, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names the exact resource (奇门时家转盘) and two method variants (拆补/置闰), and lists the produced components (星门神、天地干、主式和另说格局与警示). It distinguishes itself from siblings like get_beidou_sky or read_election_windows by domain, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, no when-not-to-use, no alternatives, and no prerequisites are provided. The only guidance is the caveat that it does not automatically judge auspiciousness, which is a behavioral note rather than usage routing. An agent must infer from the tool name that this is the Qimen chart provider.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_election_calendarB
恢复已生成日历的本机HTTP预览;只开放该日历及配套数据脚本。MCP重启后可再次取地址,文件仍可离线打开。
| Name | Required | Description | Default |
|---|---|---|---|
| artifact_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses that this is a local HTTP preview, that only the calendar and its supporting data scripts are exposed, and that the address can be retrieved again after restart while files remain offline-openable. This adds meaningful operational and security context, though lifecycle details such as stopping the server are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the main action. Both sentences add useful information, though the phrasing is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that starts/restores a server, the description covers persistence and exposure scope but does not explain what the call returns, such as the preview URL, nor how to stop or manage the preview. With no output schema, these gaps matter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter artifact_id has 0% schema description coverage, and the description does not explain its format, source, or how it identifies the calendar. The phrase '该日历' only weakly implies the parameter's role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair: restore a local HTTP preview of a generated calendar. It also states the exposure scope, but does not explicitly distinguish this tool from the sibling render_election_calendar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies use after a calendar has already been generated and for re-obtaining the address after an MCP restart. It gives no explicit when-not conditions or alternative routing relative to render_election_calendar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_election_windowsBRead-only
读取已生成材料中的小批次窗口;每窗包含完整式盘、方位候选和判断规则。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| artifact_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral value by stating that each returned window bundles chart, direction candidates, and judgment rules, but it omits pagination behavior (that only up to 14 windows come back at a time) and any cost or size characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the verb and resource and appends the payload contents. Nothing is wasted, though the description is short enough that its omitted pagination detail is a sizing trade-off rather than pure conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 0% parameter coverage, the description must carry the load, yet it omits pagination semantics, the 14-item cap, and what artifact_id refers to. Given the sibling set of build/render/preview calendar tools, an agent lacks the detail needed to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all three parameters (artifact_id, limit, offset) are undocumented in both schema and description. The description never explains that artifact_id selects the generated material or that limit is capped at 14 and offset drives paging, leaving the agent to infer parameter meaning entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a concrete verb ('读取' / read) with a specific resource ('小批次窗口' / small-batch windows) and then enumerates what each window contains: complete chart, direction candidates, and judgment rules. That content list goes beyond the name and helps an agent recognize the payload, though it never distinguishes this tool from the render/preview calendar siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'已生成材料中的' (within already-generated materials) implicitly tells the agent this only reads from an artifact that must already exist, which lightly contrasts with the build_* siblings. However, it gives no explicit when-to-use, no exclusions, and no routing versus render_election_calendar or preview_election_calendar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_election_calendarC
合并本批与已保存判断,逐批累积;校验模型判断与全部参与者、观测点和事实版本一致后回填HTML;未指定用方的可用段必须附建议方位。
| Name | Required | Description | Default |
|---|---|---|---|
| review | Yes | ||
| artifact_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, openWorldHint=false, and destructiveHint=false, so the description adds substantial context above that bar: it discloses stateful accumulation (merging current batch with saved judgments batch-by-batch), a validation precondition against all participants/observation points/fact versions, and a constraint that unspecified-usage segments require a suggested direction. It stops short of saying what happens when validation fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three semicolon-separated clauses are reasonably compact with no filler, but the structure is not front-loaded: the description opens with a merge/accumulation detail rather than stating what the tool produces, making it hard to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with an opaque nested-object parameter, zero schema coverage, and no output schema despite producing HTML, the description leaves essential gaps. It does not define artifact_id, the review payload shape, or the artifact returned, so an agent cannot reliably construct the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the 'review' parameter is a bare nested object with no inner schema, so the description carries full burden. It alludes to 'this batch's judgments' and 'saved judgments' but never explains what artifact_id is or what fields review must contain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys a process (merge batch judgments with saved ones, validate, write back HTML), which implies rendering the election calendar, but never states the purpose in a single clear verb+resource form. It also fails to differentiate from the sibling preview_election_calendar, leaving the render-vs-preview distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no mention of the preview_election_calendar alternative, and no stated prerequisites beyond an embedded validation condition. The agent must guess when to call this rather than preview_election_calendar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.3.2- First observed
build_election_request - First observed
build_year_election - First observed
get_beidou_sky - First observed
get_direction_facts - First observed
get_qimen_chart - First observed
preview_election_calendar - First observed
read_election_windows - First observed
render_election_calendar
Related MCP Connectors
Verifiable Chinese calendar & feng shui: BaZi, flying stars, Kua, almanac. SHA-256 replayable.
101BaZi four pillars, Chinese zodiac, lunisolar calendar and almanac days for AI agents.
Read-only Bazi, True Solar Time, and Chinese almanac tools in English and Traditional Chinese.
Chinese almanac: lunar calendar, BaZi 八字, daily 宜忌, lucky-day picker, public holidays.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables generation of detailed Chinese Ziwei Doushu (Purple Star) astrological charts with geographic location support and true solar time conversion. Provides tools for geocoding locations, converting Beijing time to apparent solar time, and creating comprehensive astrology readings based on birth information.3 npm13MIT
- FlicenseNot gradedqualityNot gradedmaintenanceCalculates Chinese BaZi (Four Pillars of Destiny) charts based on birth date, time, and location, including solar term information, decade luck cycles, and true solar time corrections.2-
- AlicenseAqualityAmaintenanceCalculates Vietnamese Tử Vi horoscope charts, generating structured JSON with Thiên Bàn and Địa Bàn, transit analysis, and local persistence via SQLite.4105 PyPI7Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables Chinese metaphysics Ba Zi (Four Pillars) birth chart calculation and Huangli (almanac) queries via natural language, with lightweight offline setup.MIT