Openfate Bazi Mcp について
OpenFate Bazi MCP は、Claude Desktop、Cursor、Cline などのクライアントから AI エージェントが八字(四柱)の計算を行えるようにする MCP サーバーです。節気や真太陽時、地支の関係は決定的な計算エンジンで処理され、LLM は解釈に集中できます。
主な機能
- 01決定的な八字命盤の計算
- 02真太陽時による補正
- 03地支の衝・合・刑・害の検出
- 04四柱から公暦日時の候補を逆引き
- 05計算ポリシーとリソースの提供
活用シーン
- 01AI クライアント内での八字命盤データの構造化出力
- 02時柱が一般的な時刻ツールと異なる理由の説明
- 03四柱から出生日時の候補を探索
MCP 対応
MCP サーバーとして、命盤計算、真太陽時、地支の関係、逆引きのツールを提供します。計算ポリシーやリソースリンクも MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| year | integer | はい | 出生年。calendarType が lunar の場合は、旧暦の年を使用してください。 |
| month | integer | はい | 出生月、1-12。 |
| day | integer | はい | 出生の日、1-31。 |
| hour | integer | いいえ | 現地の民間時刻での出生時刻(時)、0-23。出生時刻が不明な場合は省略してください。 |
| minute | integer | いいえ | 現地の民間時刻での出生時刻(分)。 |
| gender | enum | はい | 大運の方向判定に使用する出生時の性別。male | female |
| longitude | number | いいえ | 出生地の経度(十進法の度数)。真太陽時の補正に使用します。 |
| timezone | number | いいえ | 出生時の時計時刻に対する UTC オフセット(時間)。中国なら 8、米国東部標準時なら -5 などです。 |
| timezoneId | string | いいえ | 任意の IANA タイムゾーン ID。例:Asia/Shanghai、America/New_York。 |
| dstOffset | number | いいえ | 民間時刻から差し引く夏時間のオフセット(時間)。1時間の夏時間には 1 を指定してください。 |
| calendarType | enum | いいえ | 入力する暦の種類。solar | lunar |
| isLeapMonth | boolean | いいえ | 入力した旧暦の月が閏月かどうか。calendarType が lunar の場合にのみ使用します。 |
| enableTrueSolarTime | boolean | いいえ | 経度とタイムゾーンのデータがある場合、真太陽時を適用します。 |
| dayBoundaryMode | enum | いいえ | 日付変更のルール。ZI_HOUR_23 は 23:00 に翌日の日柱が始まることを示します。MIDNIGHT_00 | ZI_HOUR_23 |
詳細
@openfate/bazi-mcp
英語 | 繁體中文(台灣)
OpenFate Bazi MCP は、Claude Desktop、Cursor、Cline、Continue などの AI エージェント内で、正確な Bazi/四柱推命の計算を行うための Model Context Protocol サーバーです。
OpenFate.ai が提供する、AI ネイティブな Bazi、Ziwei、占星術のプラットフォームを利用しています。無料の Bazi Chart Calculator もお試しいただけます。AI Bazi Reading を生成したり、Bazi Compatibility で相性を比較したり、True Solar Time guide を読んだりすることもできます。AI クローラーは OpenFate llms.txt を参照できます。
この MCP は、決定論的な OpenFate 計算パッケージをラップしています。
@openfate/bazi-engine@openfate/true-solar-time
目的はシンプルです。言語モデルが暦の計算を幻覚的に生成するのではなく、信頼性の高い計算エンジンを呼び出せるようにします。
これが必要な理由
LLM が手作業で Bazi のチャートを計算すべきではありません。難しい部分は決定論的です。
- 24 節気の境界
- 真太陽時
- 経度とタイムゾーンの補正
- DST オフセット
- 子の刻の日境界ルール
- 旧暦から新暦への変換
- 地支の相互作用
このサーバーは AI エージェントに安定した JSON を提供し、モデルが説明と解釈に集中できるようにします。
インストール
npx で実行します。
npx -y @openfate/bazi-mcp
MCPB 対応クライアントおよび Smithery 向けに、自己完結型のローカルバンドルをビルドします。
npm run mcpb:pack
アップロード可能なアーティファクトは release/openfate-bazi-mcp-v<version>.mcpb に出力されます。
smithery auth login の実行後、このローカルバンドルを Smithery に公開するには、次のコマンドを実行します。
npm run smithery:publish
Claude Desktop
{
"mcpServers": {
"openfate-bazi": {
"command": "npx",
"args": ["-y", "@openfate/bazi-mcp"]
}
}
}
macOS で Claude Desktop が npx を見つけられない場合は、絶対パスを使用します。
{
"mcpServers": {
"openfate-bazi": {
"command": "/opt/homebrew/bin/npx",
"args": ["-y", "@openfate/bazi-mcp"]
}
}
}
Cursor
{
"mcpServers": {
"openfate-bazi": {
"command": "npx",
"args": ["-y", "@openfate/bazi-mcp"]
}
}
}
Cline
{
"mcpServers": {
"openfate-bazi": {
"command": "npx",
"args": ["-y", "@openfate/bazi-mcp"],
"disabled": false
}
}
}
エージェントスキル
このリポジトリには、移植可能なエージェントスキルも含まれています。
skills/openfate-bazi/SKILL.md
Claude、Claude Code、Codex、OpenClaw 形式のエージェント、またはその他の SKILL.md 対応ツールに、OpenFate Bazi MCP の正しい使い方を記憶させたい場合に使用します。
Claude Code のワークスペースで使用するには、スキルフォルダーを次の場所にコピーします。
.claude/skills/openfate-bazi/
Claude のカスタムスキルとして使用するには、フォルダーのルートに SKILL.md がある状態で openfate-bazi フォルダーを zip 圧縮し、Claude のスキル設定からアップロードします。
ツール
calculate_bazi_chart
決定論的な Bazi チャートを計算します。
入力:
yearmonthdayhourminutesecondgendercalendarTypeisLeapMonthlongitudetimezonetimezoneIddstOffsetenableTrueSolarTimedayBoundaryMode
MCP は開始時刻のポリシーを DAYUN_SECOND_V2 に固定しており、呼び出し側が別のルールを暗黙に選択することはできません。計算済みの結果を得るには、正確な出生時刻と timezone または timezoneId を渡します。正確な開始時刻を提示するのは、chart.daYun.timing.status が CALCULATED で、バージョンが DAYUN_SECOND_V2 の場合に限ります。UNAVAILABLE の結果には理由が示され、保持されている従来のスカラーフィールドが代替値としてマークされます。真太陽時の補正には、longitude も渡します。
detect_bazi_interactions
出生図の地支について、任意の流年および大運の地支も含めて、生の関係の発生を検出します。
入力は yearBranch、monthBranch、dayBranch、任意の hourBranch、任意の annualBranch、および任意の dayunBranch です。出生時刻が不明な場合は hourBranch を省略してください。推定した地支で置き換えることはありません。流年のみを指定する既存の呼び出しも引き続きサポートされます。
サポートされる関係の種類:
- 衝
- 六合
- 中央の地支を含む半会(
COMBINATION_HALF) - 三合
- 方合
- 刑
- 破
- 害
一致する柱の出現はすべて保持されます。たとえば、{ yearBranch: '申', monthBranch: '寅', dayBranch: '申', hourBranch: '申' } は、1つではなく、それぞれ異なる3つの寅申の衝を返します。流年と大運の地支は、地支の値が命式内の位置と同じ場合も、それぞれ異なる annual と dayun の役割を保ちます。
半会のプロファイルは、申子、子辰、寅午、午戌、亥卯、卯未、巳酉、酉丑を対象とします。各ペアには中央の地支(子午卯酉)が含まれます。申辰のような端の地支だけのペアは、この半会の種類には該当しません。三合を構成する3つの地支がすべて揃っている場合も、半会は生の出力に残ります。
各発生には安定した id があり、branches と pillars の配列は対応しています。targetElement は関係の親和性を意味し、変化したエネルギーを意味するものではありません。合の transformationStatus は NOT_EVALUATED です。地支が存在するだけでは、変化したことも、変化に失敗したことも確定しません。その他の関係の種類では NOT_APPLICABLE を使用します。これらの結果は重み付けされたスコアではなく、衝を自動的に相殺するものでもありません。調整と解釈は、別の分析レイヤーで行います。
API との互換性のため、完全な TRINE と DIRECTIONAL の発生には、従来の resultElement も引き続き含まれます。これは targetElement と同じ値で、同じく親和性のみを意味します。六合と半会では resultElement は出力されません。
calculate_true_solar_time
真太陽時を直接計算します。
OpenFate の時柱が時計時刻を使うツールの結果と異なる理由をユーザーが尋ねた場合に使用してください。
reverse_bazi_to_solar_times
四柱の Bazi 文字列に対応する、可能性のあるグレゴリオ暦の日時を検索します。
入力例:
戊寅 己未 己卯 辛未
これは候補を検索するツールです。最終的な精度を確保するには、正確な経度、タイムゾーン、真太陽時を使用して結果を再計算してください。
get_openfate_bazi_policy
OpenFate の計算ポリシーを返します。
- 位置情報が利用可能な場合は、真太陽時を優先します。
- 日界のデフォルトモードは
ZI_HOUR_23です。 - 出生証明書の時刻が夏時間を含む場合は、夏時間を
dstOffsetとして渡してください。 - 大運の開始時期には
DAYUN_SECOND_V2を使用します。正確な日付には、計算済みのタイミングレシートが必要です。 - 逆引き検索は候補の検索として扱ってください。
- 地支の関係は、重み付けされた結果や自動的に変化した結果ではなく、柱ごとの生の出現を保持します。
get_openfate_bazi_resources
命式作成、鑑定、相性、財運、真太陽時、および llms.txt に関する OpenFate の正式なリンクを返します。
出力形式
応答では、機械処理に適した英語のキーを使用します。
{
"data": {
"chart": {},
"policy": {}
},
"attribution": {
"brand": "OpenFate.ai",
"url": "https://openfate.ai",
"engine": "@openfate/bazi-engine",
"trueSolarTimeEngine": "@openfate/true-solar-time"
}
}
帰属情報は隠し _meta ではなく、独立したデータとして返されるため、MCP クライアントや生成された成果物で確実に表示できます。
命式の結果には、拡張された柱の情報(十神、蔵干、納音、旬、空亡、および十二運)、バージョン管理された大運のタイミングレシート、正規化された太陽暦・太陰暦のデータ、および実際に適用された計算ポリシーが含まれます。
開発
npm install
npm run build
npm run smoke
スモークテストでは、ビルド済みの stdio サーバーを起動し、実際の MCP SDK クライアントを通じて動作させます。
ビルドせずに dist のソース変更をテストするには、npm run smoke:source を実行します。このテストには、依存関係をインストール済みの兄弟ディレクトリ ../bazi-engine のソースチェックアウトと、このパッケージの依存関係が必要です。テスト専用の tests/tsconfig.source.json は、@openfate/bazi-engine を兄弟ディレクトリの src/index.ts にマッピングします。スモークランナーはこの設定を SDK が起動するサーバーに渡し、テストの前に解決されたソースパスを検証します。インストール済みのエンジンにパッチを適用する必要はなく、このパッケージで npm ci --ignore-scripts を実行した後も再現可能です。
どちらのスモークテストモードでも、同じ MCP トランスポートと回帰テスト用フィクスチャを使用します。これには、秒単位で解決する大運の開始時期、タイミング入力の欠落、繰り返される地支、8 種類の半会、時柱不明、流年/大運の役割が含まれます。通常の smoke コマンドでは、ビルド済み MCP の出力を、インストール済みの公開エンジン依存関係と照合してテストします。npx tsc --noEmit -p tests/tsconfig.source.json は、ビルドファイルを出力せずに、連携するソース間の契約を検証します。
エンジンとの互換性
バージョン 0.3 には、@openfate/bazi-engine のバージョン 2 が必要です。DAYUN_SECOND_V2、raw-occurrence、dayunBranch の各契約は、ビルド済みパッケージと連携ソースの両方のスモークテストモードで検証されます。公開済みの依存関係をリリースの信頼できる情報源とし、このパッケージではローカルの file: 依存関係を使用しません。
プライバシー
このパッケージが外部に情報を送信することはありません。計算は MCP サブプロセス内でローカルに実行されます。
OpenFate のリンク
ライセンス
MIT
繁體中文(台灣)
OpenFate Bazi MCP は、AI エージェント向けの Model Context Protocol サーバーです。Claude Desktop、Cursor、Cline、Continue などのツールから、正確な八字/四柱命盤エンジンを直接呼び出せます。
このプロジェクトは OpenFate.ai が提供しています。OpenFate は、八字、紫微斗数、西洋占星術を組み合わせた AI 命術プラットフォームです。無料の八字命盤ツールを利用したり、詳細なAI 八字鑑定を作成したり、八字相性を確認したり、真太陽時の解説を読んだりできます。AI クローラーは OpenFate llms.txt も読み取れます。
この MCP は、OpenFate の決定論的計算パッケージを使用します。
@openfate/bazi-engine@openfate/true-solar-time
目的は明確です。LLM に干支、節気、真太陽時を独自に計算させず、検証可能な計算エンジンに命盤作成を任せます。
この MCP が必要な理由
八字の命盤作成は、文章の推論問題ではなく、決定論的な暦と時間の計算です。間違いやすい項目には次のものがあります。
- 二十四節気の境界
- 真太陽時
- 経度とタイムゾーンの補正
- 夏時間のオフセット
- 子刻の日付切り替え規則
- 農暦からグレゴリオ暦への変換
- 地支の刑・冲・合・害などの相互作用
このサーバーは安定した JSON を返すため、AI は説明、整理、解釈に専念できます。
インストール
npx で直接実行します。
npx -y @openfate/bazi-mcp
MCP クライアントが MCPB に対応している場合、または Smithery で公開する必要がある場合は、完全なローカルインストールバンドルを作成できます。
npm run mcpb:pack
アップロード可能なファイルは release/openfate-bazi-mcp-v<version>.mcpb に出力されます。
smithery auth login の完了後、このローカルバンドルを Smithery に公開できます。
npm run smithery:publish
Claude Desktop の設定
{
"mcpServers": {
"openfate-bazi": {
"command": "npx",
"args": ["-y", "@openfate/bazi-mcp"]
}
}
}
macOS 上の Claude Desktop が npx を見つけられない場合は、絶対パスに変更できます。
{
"mcpServers": {
"openfate-bazi": {
"command": "/opt/homebrew/bin/npx",
"args": ["-y", "@openfate/bazi-mcp"]
}
}
}
Cursor の設定
{
"mcpServers": {
"openfate-bazi": {
"command": "npx",
"args": ["-y", "@openfate/bazi-mcp"]
}
}
}
Cline の設定
{
"mcpServers": {
"openfate-bazi": {
"command": "npx",
"args": ["-y", "@openfate/bazi-mcp"],
"disabled": false
}
}
}
エージェントスキル
このリポジトリには、ポータブルなエージェントスキルも含まれています。
skills/openfate-bazi/SKILL.md
Claude、Claude Code、Codex、OpenClaw 形式のエージェント、または SKILL.md に対応するその他のツールに、OpenFate Bazi MCP の正しい使い方を記憶させたい場合は、このスキルを使用できます。
Claude Code のワークスペースで使用するには、スキルフォルダー全体を次の場所にコピーします。
.claude/skills/openfate-bazi/
Claude のカスタムスキルを作成するには、openfate-bazi フォルダーを zip に圧縮し、SKILL.md がフォルダーのルートにあることを確認してから、Claude のスキル設定でアップロードします。
ツール一覧
calculate_bazi_chart
決定論的な八字命盤を計算します。
入力フィールド:
yearmonthdayhourminutesecondgendercalendarTypeisLeapMonthlongitudetimezonetimezoneIddstOffsetenableTrueSolarTimedayBoundaryMode
MCP は DAYUN_SECOND_V2 を固定で使用し、呼び出し側が起運ルールを密かに切り替えることはできません。正確な出生時刻を指定するには、timezone または timezoneId も必要です。また、正確な起運時刻を表示できるのは、chart.daYun.timing.status が CALCULATED で、バージョンが DAYUN_SECOND_V2 の場合のみです。UNAVAILABLE の場合は理由が示され、従来の起運フィールドは、旧バージョンのフォールバックとして明確に表示されます。真太陽時を補正するには、longitude も指定してください。
detect_bazi_interactions
偵測本命盤及選填流年、大運地支的原始關係。
輸入欄位為 yearBranch、monthBranch、dayBranch,以及選填的 hourBranch、annualBranch、dayunBranch。出生時辰未知時省略 hourBranch,不會補入假設時柱。原有只傳流年的呼叫方式仍可使用。
支援類型:
- 沖
- 六合
- 含旺支的半合(
COMBINATION_HALF) - 三合
- 三會
- 刑
- 破
- 害
同一地支出現在不同柱位時,每個關係都會保留。例如申、寅、申、申會回傳三組不同柱位的寅申沖。流年與大運分別使用 annual、dayun 角色,即使地支相同,也不會與本命柱位合併。
半合口徑涵蓋申子、子辰、寅午、午戌、亥卯、卯未、巳酉、酉丑八組,每組都含子午卯酉其中一個旺支。申辰等兩端支不屬於此半合類型。三合齊全時,原始資料仍保留其中的半合關係。
每個關係包含穩定的 id,以及逐項對應的 branches、pillars。targetElement 只表示關係指向的五行,不代表已經合化。合類的 transformationStatus 為 NOT_EVALUATED,表示尚未評估合化,並非已成化或已判定不能化;其他關係使用 NOT_APPLICABLE。這些資料不是可直接累加的評分,也不會自動解沖;成立程度與解讀須由獨立分析層處理。
為相容既有 API,完整 TRINE、DIRECTIONAL 關係仍保留舊欄位 resultElement,值與 targetElement 相同,也僅表示五行指向。六合與半合不回傳 resultElement。
calculate_true_solar_time
直接計算真太陽時。
當使用者問「為什麼 OpenFate 算出的時柱跟一般排盤網站不同」時,可以用這個工具說明差異。
reverse_bazi_to_solar_times
用四柱八字反查可能的公曆時間。
範例輸入:
戊寅 己未 己卯 辛未
這是候選時間搜尋工具。最後仍應該用準確出生地經度、時區與真太陽時重新排盤。
get_openfate_bazi_policy
回傳 OpenFate 的計算口徑:
- 有出生地資料時,優先使用真太陽時。
- 預設換日規則是
ZI_HOUR_23。 - 如果出生證明時間包含夏令時間,應傳入
dstOffset。 - 大運起運固定採用
DAYUN_SECOND_V2;只有計算成功的 timing receipt 才是精確起運時間。 - 八字反查只能當候選搜尋,不能取代精準排盤。
- 地支互動保留原始柱位關係,不代表加權分數或自動合化結果。
get_openfate_bazi_resources
回傳 OpenFate 的官方連結,包括排盤、解讀、合盤、財富、真太陽時與 llms.txt。
回傳格式
回傳資料使用穩定、適合機器讀取的英文 key:
{
"data": {
"chart": {},
"policy": {}
},
"attribution": {
"brand": "OpenFate.ai",
"url": "https://openfate.ai",
"engine": "@openfate/bazi-engine",
"trueSolarTimeEngine": "@openfate/true-solar-time"
}
}
署名資訊會以一般資料欄位回傳,而不是藏在 _meta,方便 MCP client 或 AI 產生的圖表正確顯示來源。
排盤結果同時包含十神、藏干、納音、旬空、十二長生等柱位資料、版本化大運起運 receipt、標準化陽曆/農曆日期,以及實際採用的計算口徑。
開發
npm install
npm run build
npm run smoke
smoke 測試會啟動編譯後的 stdio server,並透過真正的 MCP SDK client 呼叫工具。
不編譯 dist 時可執行 npm run smoke:source 驗證原始碼。須具備相鄰的 ../bazi-engine 原始碼工作目錄,且引擎與本套件都已安裝依賴。測試專用的 tests/tsconfig.source.json 將 @openfate/bazi-engine 指向該引擎的 src/index.ts;測試執行器會把設定傳給 MCP SDK 啟動的伺服器,並先驗證實際解析的原始碼路徑。這個模式不依賴修改過的已安裝引擎,在本套件重新執行 npm ci --ignore-scripts 後仍可重現。
兩種 smoke 模式使用相同 MCP 傳輸與回歸案例,涵蓋秒級起運、缺少起運輸入、重複地支、八組半合、未知時辰,以及流年/大運角色。一般 smoke 仍驗證編譯後 MCP 與已安裝的 npm 公開引擎。npx tsc --noEmit -p tests/tsconfig.source.json 可檢查協調中的原始碼契約,不產生編譯檔案。
引擎相容性
0.3 版需要 @openfate/bazi-engine 2.x。DAYUN_SECOND_V2、完整柱位關係與
dayunBranch 契約皆由已編譯套件及協調原始碼兩種 smoke 模式驗證。正式發布的
npm 依賴仍是版本來源;本套件不使用本機 file: 依賴。
隱私
這個套件不會回傳資料到 OpenFate 伺服器。所有計算都在本機 MCP subprocess 內完成。
OpenFate 連結
授權
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。