Yuanzi Zhiyi Bazi Agent Kit
LocalAbout Yuanzi Zhiyi Bazi Agent Kit
Yuanzi Zhiyi Bazi Agent Kit is a local Four Pillars engine for agents, with a TypeScript API, CLI, MCP server, and Agent Skill. Its deterministic calculations cover calendar and time handling, and can render PNG charts without network requests or telemetry.
Key features
- 01Deterministic Four Pillars calculations
- 02Calendar, timezone, and true solar time handling
- 03Ten Gods, hidden stems, and element counts
- 04CLI output in JSON or readable form
- 05Local PNG chart rendering
Use cases
- 01Provide agents with reviewable chart facts
- 02Calculate Four Pillars locally from the CLI
- 03Display charts in MCP clients that support images
MCP support
It provides a local stdio MCP server with read-only tools for chart calculation and capability lookup. Results can include structured data, text, and a PNG image.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
2Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | object | Yes | |
| date.day | integer | Yes | |
| date.year | integer | Yes | |
| date.month | integer | Yes | |
| time | object | Yes | |
| time.hour | any | Yes | |
| time.minute | any | Yes | |
| locale | enum | No | zh-CN | zh-Hant | en |
| options | object | No | |
| options.dayBoundary | enum | No | ziEarly | midnight |
| options.timeCorrection | enum | No | standard | trueSolar |
| calendar | object | Yes | |
| calendar.type | enum | Yes | solar | lunar |
| calendar.isLeapMonth | boolean | No | |
| location | object | Yes | |
| location.timezone | string | Yes | |
| location.longitude | any | No |
Details
From the project README
Yuanzi Bazi Agent Kit
A local-first, deterministic basic Four Pillars (Bazi) engine, CLI, MCP server, and Agent Skill by Yuanzi Zhiyi.
The calculation scope includes: calendar conversion, time-zone and true-solar-time handling, explicit day boundaries, four pillars, day master, ten gods, hidden stems, and unweighted five-element counts, composition shares, and a documented eight-shensha rule set. The stable result schema is yuanzi-basic-bazi/v1.
Topics / 主题: 八字排盘 · Bazi / Four Pillars · 真太阳时 / True Solar Time · 历法转换 / Calendar Conversion · MCP · Agent Skill · 本地命盘图片 / Local Chart Images
Example chart
Illustrative chart. Birth date, time and location are hidden; no customer data is used.
Why this kit exists
Agents should call deterministic software for deterministic chart facts. This kit gives OpenAI, Google, and other MCP-compatible agents the same reviewable calculation core without requiring users to upload identity data or send birth data to a hosted API.
Calculation is local, uses zero telemetry, and makes no network requests. See scope and privacy.
Included
| Surface | Purpose |
|---|---|
| TypeScript API | Embed the versioned deterministic core |
yuanzi-bazi CLI | JSON or readable local calculation |
| stdio MCP | Two schema-first, read-only tools |
SKILL.md | Agent workflow and safety boundary |
Luck cycles, interpretation of shensha, compatibility, AI readings, reports, and advisor services are not part of the public core.
Install with npm
Version 0.3.0 includes the new chart layout, bundled fonts, and chart structure extension.
Requires Node.js 22.19 or later. Start the local MCP server:
npx -y [email protected] mcp
MCP client configuration:
{
"mcpServers": {
"yuanzi-bazi": {
"command": "npx",
"args": ["-y", "[email protected]", "mcp"]
}
}
}
The first run downloads npm dependencies; chart calculation and image rendering then run locally.
Install from this source tree
Requires Node.js 22.19 or later.
git clone https://github.com/yuanzizhiyi/yuanzi-bazi-agent-kit.git
cd yuanzi-bazi-agent-kit
npm ci
npm run build
npm test
npm link
The source repository is yuanzizhiyi/yuanzi-bazi-agent-kit. The npm package is yuanzi-bazi-agent-kit, version 0.3.0.
Chart images
MCP calculate_basic_bazi_chart returns structuredContent.chart, JSON text, readable facts, and an image/png content block. Clients that support MCP images can display the chart directly. The Skill also saves and displays a PNG by default.
For CLI usage, append --image chart.png to chart --stdin --format json. JSON stays on stdout; a save confirmation goes to stderr. Choose an unused filename in an existing directory. Images contain birth/chart data: share them deliberately. Rendering uses the same paper and pillar design language as the main site, without its advanced calculations. It runs locally with bundled Noto-derived serif and sans-serif fonts and no network calls. The 2160px-wide report includes the highlighted day column, full pillar table, shensha and combinations, directed element relationships and all ten composition bars. See chart structure and rules.
CLI
printf '%s' '{"calendar":{"type":"solar"},"date":{"year":1988,"month":8,"day":9},"time":{"hour":2,"minute":53},"location":{"timezone":"Asia/Shanghai"},"options":{"timeCorrection":"standard","dayBoundary":"ziEarly"}}' \
| yuanzi-bazi chart --stdin --format json
The CLI keeps JSON results on stdout and typed errors on stderr. See the input and output reference.
Local MCP server
The server exposes:
calculate_basic_bazi_chart: local deterministic calculation;get_yuanzi_bazi_capabilities: an optional, intent-specific hosted-feature link that never receives birth data.
Configure a local stdio MCP client after building. Replace the absolute path with your installation directory:
{
"mcpServers": {
"yuanzi-bazi": {
"command": "node",
"args": ["/absolute/path/yuanzi-bazi-agent-kit/dist/cli.js", "mcp"]
}
}
}
For Codex-compatible TOML:
[mcp_servers.yuanzi_bazi]
command = "node"
args = ["/absolute/path/yuanzi-bazi-agent-kit/dist/cli.js", "mcp"]
Both tools declare read-only, non-destructive, idempotent annotations and explicit input/output schemas. The server uses stdout only for the MCP protocol.
Agent Skill
Copy or clone the repository into an Agent Skills directory as yuanzi-basic-bazi, install dependencies, build it, and let the agent load SKILL.md. The same Skill layout is usable from .agents/skills in supporting clients.
The Skill instructs agents to collect only required chart inputs, preserve unknown hours, surface warnings, and use exactly one contextual hosted hook only after the user asks for a feature outside the public scope.
TypeScript API
import { calculateBasicBazi } from 'yuanzi-bazi-agent-kit';
const chart = calculateBasicBazi({
calendar: { type: 'solar' },
date: { year: 1988, month: 8, day: 9 },
time: { hour: 2, minute: 53 },
location: { timezone: 'Asia/Shanghai' },
options: { timeCorrection: 'standard', dayBoundary: 'ziEarly' },
});
Versioning and methodology
Package releases follow semantic versioning. The versioned data contract is independent: compatible additions remain under yuanzi-basic-bazi/v1; incompatible output changes require a new schema identifier.
Method details and validation examples are linked in each result at attribution.methodUrl.
Development
npm test
npm run test:coverage
npm run build
npm run pack:check
Licensed under MIT. The license does not grant trademark rights; see TRADEMARKS.md.
Contributions are welcome under CONTRIBUTING.md. Report vulnerabilities privately as described in SECURITY.md.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.