<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: openfate</title>
    <description>The latest articles on DEV Community by openfate (openfate).</description>
    <link>https://dev.to/openfate</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F14306%2F17b953df-583a-4f4e-871c-4fdc7132309c.png</url>
      <title>DEV Community: openfate</title>
      <link>https://dev.to/openfate</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/openfate"/>
    <language>en</language>
    <item>
      <title>Why AI Agents Shouldn’t Calculate Bazi Charts From Memory</title>
      <dc:creator>openfate ai</dc:creator>
      <pubDate>Thu, 10 Sep 2026 14:45:29 +0000</pubDate>
      <link>https://dev.to/openfate/why-ai-agents-shouldnt-calculate-bazi-charts-from-memory-115e</link>
      <guid>https://dev.to/openfate/why-ai-agents-shouldnt-calculate-bazi-charts-from-memory-115e</guid>
      <description>&lt;p&gt;&lt;em&gt;A calculation-first MCP server for Four Pillars, True Solar Time, and auditable chart data&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Large language models are good at explaining ideas in natural language. They are much less reliable when a task depends on exact calendar conversion, timezone rules, solar-time correction, or repeated symbolic lookups.&lt;/p&gt;

&lt;p&gt;Bazi, also called the Four Pillars of Destiny, contains all of those requirements. A chart depends on a recorded birth date and time, the correct timezone and daylight-saving rule, the calendar convention being used, and sometimes a True Solar Time correction based on location. If an AI assistant tries to recreate that arithmetic from memory, a polished explanation can begin with the wrong pillars.&lt;/p&gt;

&lt;p&gt;That is why we built the open-source &lt;a href="https://github.com/openfate-ai/bazi-mcp" rel="noopener noreferrer"&gt;OpenFate Bazi MCP server&lt;/a&gt;. It gives compatible AI clients deterministic chart tools while leaving conversation and interpretation to the client.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate calculation from explanation
&lt;/h2&gt;

&lt;p&gt;The architecture has a simple boundary:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A calculation engine validates the input and produces the chart data.&lt;/li&gt;
&lt;li&gt;The MCP server exposes that data through structured tools.&lt;/li&gt;
&lt;li&gt;The connected AI client explains the returned result without recalculating it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This does not make a metaphysical interpretation scientifically proven. It solves a narrower engineering problem: the explanation can be tied to a specific, reproducible calculation instead of arithmetic improvised by a language model.&lt;/p&gt;

&lt;p&gt;The public MCP server runs locally over standard input and output. It wraps the public calculation engine and does not need to send a birth record to an OpenFate web endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install and run it
&lt;/h2&gt;

&lt;p&gt;The package is available from npm and can be started with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;-y&lt;/span&gt; @openfate/bazi-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A typical MCP client configuration follows this shape:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"openfate_bazi"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@openfate/bazi-mcp"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart the client after changing its MCP configuration. The exact settings screen and configuration file vary by client.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the server exposes
&lt;/h2&gt;

&lt;p&gt;The server currently provides tools for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;calculating a Bazi chart;&lt;/li&gt;
&lt;li&gt;detecting Earthly Branch interactions;&lt;/li&gt;
&lt;li&gt;calculating True Solar Time;&lt;/li&gt;
&lt;li&gt;finding possible solar times from a known Bazi chart;&lt;/li&gt;
&lt;li&gt;reading the calculation policy; and&lt;/li&gt;
&lt;li&gt;retrieving supporting OpenFate Bazi resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A calculated chart can include normalized solar and lunar datetimes, the applied calculation policy, True Solar Time details, enriched Four Pillars data, hidden stems, Ten Gods, Na Yin, void branches, growth stages, and Da Yun timing.&lt;/p&gt;

&lt;p&gt;Returning this data as structured fields is useful for more than display. An AI client can cite the exact pillar or interaction behind an explanation, ask for missing location data before applying solar-time correction, and avoid silently switching calculation conventions halfway through a conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  A safer agent workflow
&lt;/h2&gt;

&lt;p&gt;Consider a user who asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Calculate my Bazi chart and explain the strongest relationship patterns.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A calculation-first agent should not immediately invent four pillars. It should first collect the birth date, recorded time, location, timezone, daylight-saving context, and any other input required by the selected policy. It can then call the MCP chart tool, retain the returned policy metadata, and base its explanation on those results.&lt;/p&gt;

&lt;p&gt;If location data is available, the agent can use the True Solar Time tool rather than estimating the correction in prose. If the user later asks why the result differs from another calculator, the stored input and policy metadata provide a concrete starting point for comparison.&lt;/p&gt;

&lt;p&gt;The same boundary also helps with uncertainty. The server supplies calendrical and chart data. The AI client remains responsible for the quality, tone, and limits of its interpretation. A responsible explanation should distinguish calculated fields from subjective meaning and should avoid guaranteed predictions, medical claims, or financial instructions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why MCP is a useful fit
&lt;/h2&gt;

&lt;p&gt;MCP lets a general-purpose assistant call a specialized tool without pretending that the language model itself contains a reliable calendar engine. The pattern applies beyond Bazi: use deterministic software for exact domain calculations, then use language models for explanation, follow-up questions, and presentation.&lt;/p&gt;

&lt;p&gt;For developers, this creates clearer ownership. Calculation bugs belong in the engine and can be covered by deterministic tests. Transport behavior belongs in the MCP server. Conversation behavior belongs in the client. Each layer can change without hiding the boundary between fact generation and narrative generation.&lt;/p&gt;

&lt;p&gt;The OpenFate Bazi MCP server is MIT licensed. You can inspect the source, report issues, and contribute on &lt;a href="https://github.com/openfate-ai/bazi-mcp" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. The package is available as &lt;a href="https://www.npmjs.com/package/@openfate/bazi-mcp" rel="noopener noreferrer"&gt;&lt;code&gt;@openfate/bazi-mcp&lt;/code&gt;&lt;/a&gt;, and the &lt;a href="https://openfate.ai/en/developers/bazi-mcp" rel="noopener noreferrer"&gt;developer overview&lt;/a&gt; explains the public integration.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>opensource</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
