Céu Natal について
Céu Natalは、AIアシスタントによる解釈向けにSwiss Ephemerisで占星術チャートを計算するオープンソースのMCPサーバーです。ポルトガル語で結果を返し、出生図、相性、トランジット、プログレス、太陽回帰図と月回帰図を扱います。
主な機能
- 01出生図と惑星位置の計算
- 02シナストリーによる2つのチャートの比較
- 03トランジットとプログレスの計算
- 04太陽回帰図と月回帰図の計算
- 05複数のハウスシステムに対応
活用シーン
- 01AIによる解釈用にチャート位置を取得
- 022人の占星術チャートを比較
- 03指定日のトランジットを確認
- 04太陽回帰図または月回帰図を計算
MCP 対応
チャート計算、アスペクト情報、サーバー状態のツールをMCPクライアントに公開します。無料の公開Streamable HTTPエンドポイントがあり、ローカルでstdio経由でも実行できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://astrologia-mcp.gustavocancado.com.br/mcp/claude mcp add --transport http gucancado-ceu-natal https://astrologia-mcp.gustavocancado.com.br/mcp/{"mcpServers":{"gucancado-ceu-natal":{"type":"http","url":"https://astrologia-mcp.gustavocancado.com.br/mcp/"}}}Cursor で開く{"servers":{"gucancado-ceu-natal":{"type":"http","url":"https://astrologia-mcp.gustavocancado.com.br/mcp/"}}}VS Code で開く{"mcpServers":{"gucancado-ceu-natal":{"type":"http","url":"https://astrologia-mcp.gustavocancado.com.br/mcp/"}}}{"mcpServers":{"gucancado-ceu-natal":{"serverUrl":"https://astrologia-mcp.gustavocancado.com.br/mcp/"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Céu Natal
スイス暦を使って占星術チャートを計算し、AI アシスタントが解釈できるようにする MCP サーバーです。
英語版。 Céu Natal は、Swiss Ephemeris を使って出生図、シナストリー、トランジット、プログレス、太陽回帰・月回帰を計算し、ポルトガル語で応答するオープンソースの Model Context Protocol サーバーです。無料の公開エンドポイントが
https://astrologia-mcp.gustavocancado.com.br/mcp/ で稼働しています(登録不要)。ライセンスは AGPL-3.0 です。Claude、ChatGPT、Claude Code、Cursor の英語でのセットアップ方法:
https://mistico.gustavocancado.com.br/en。Claude Code でのクイックスタート:
claude mcp add --transport http --scope user ceu-natal https://astrologia-mcp.gustavocancado.com.br/mcp/。
開発の背景
AI アシスタントに占星術チャートを頼むと、自信たっぷりに答えますが、位置がでっち上げられていることがよくあります。モデルには暦がないため、月の星座やアセンダントを推測しているのです。このサーバーは実際に計算して数値を返し、AI は解釈だけを行います。
今すぐ使う
無料の公開 MCP エンドポイント(Streamable HTTP、ログイン不要):
https://astrologia-mcp.gustavocancado.com.br/mcp/
Claude、ChatGPT、Gemini、Manus、Cursor、n8n のセットアップ手順: https://mistico.gustavocancado.com.br/#conectar。
計算できる内容
| ツール | 内容 |
|---|---|
calcular_mapa_natal | 出生図の位置、ハウス、角度、アスペクト、ノード、キロン、概要を計算します。 |
calcular_sinastria | 2 人の間のクロスアスペクトと、一方の惑星がもう一方のハウスに入る位置を計算します。 |
calcular_transitos | 指定日の位置、出生図とのアスペクト、主要な遅いトランジットを計算します。 |
calcular_progressoes | 二次進行(1 日 = 1 年)を計算し、進行する月と太陽を表示します。 |
calcular_mapa_composto | ミッドポイント法で 2 人のコンポジットチャートを計算します。 |
calcular_revolucao_solar | ある年に太陽が出生時の位置へ戻るときのチャートを、回帰時の場所とともに計算します。 |
calcular_revolucao_lunar | 指定日以降、月が出生時の位置に戻る次の時点を計算します。 |
listar_aspectos_tipos | 対応するアスペクト、角度、オーブ、性質を一覧表示します。 |
healthcheck | サーバーのステータスとバージョンを表示します。 |
人物の入力項目:data(DD/MM/YYYY、必須)、hora(HH:MM)、local
(「都市、州」または「都市、国」)、nome、is_dst。出生時刻なしで出生図を計算する場合、計算には現地時間の 12:00 を使用します。月には不確実であることを示す印(posicao_incerta、signo_pode_mudar)が付き、ハウスと角度は出力されません。sistema_casas は任意です:P Placidus(デフォルト)、K Koch、
W Whole Sign、E Equal、R Regiomontanus、C Campanus、O Porphyrius、B Alcabitus、
M Morinus、T Topocentric。GET /tools にはツールとパラメーター名が一覧表示されます。完全な inputSchema は MCP の
tools/list から取得できます(どの MCP クライアントでも表示できます)。
例
リクエスト(tools/call):
{
"name": "calcular_mapa_natal",
"arguments": {"nome": "Ana", "data": "12/03/1990", "hora": "14:30", "local": "Belo Horizonte, MG"}
}
応答の抜粋:
{
"planetas": {
"sol": {"signo": "Peixes", "grau": "21°52'", "grau_decimal": 21.8779, "posicao_absoluta": 351.8779,
"retrogrado": false, "elemento": "Agua", "qualidade": "Mutavel", "casa": 8},
"lua": {"signo": "Libra", "grau": "6°19'", "grau_decimal": 6.329, "posicao_absoluta": 186.329,
"retrogrado": false, "elemento": "Ar", "qualidade": "Cardinal", "casa": 3}
},
"angulos": {
"ascendente": {"signo": "Cancer", "grau": "18°38'", "grau_decimal": 18.6412, "posicao_absoluta": 108.6412}
},
"aspectos": [
{"planeta_a": "lua", "planeta_b": "venus", "tipo": "trigono", "orbe": 0.48,
"aplicando": true, "exato": true, "natureza": "harmonico"}
],
"local_resolvido": {"lat": -19.9167, "lng": -43.9333, "fuso": "America/Sao_Paulo"}
}
完全な応答には、ほかの惑星、12 ハウス、ミッドヘブン、ディセンダント、イムム・コエリ、感受点、概要(エレメント、クオリティ、半球、ステリウム)も含まれます。
ローカルで実行
Docker を使用:
cp .env.example .env
docker compose up --build # http://localhost:8000
pip を使用(Linux または macOS。Windows では pyswisseph がコンパイルできないため、WSL を使用してください):
python3.11 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.server:app --port 8000
ローカルプロセスを起動するクライアント向けの stdio:python -m app.stdio(環境変数は同じです)。
ルート:/mcp/(MCP Streamable HTTP)、/health、
/tools(ツール一覧。MCP_API_KEY が空の場合は公開)、/llms.txt、
/mapa-rapido(サイトのフォーム)、/(PUBLIC_SITE_URL にリダイレクト)。
開発する場合は、requirements-dev.txt もインストールし、ruff check .、mypy app、および
python -m pytest -q を実行してください。詳細は CONTRIBUTING.md をご覧ください。
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
MCP_SERVER_NAME | ceu-natal | initialize で返される名前 |
MCP_SERVER_VERSION | 2.2.6 | 公開されるバージョン |
MCP_API_KEY | (空) | 設定すると、Authorization: Bearer <chave> が必要になります。空の場合、すべて許可されます |
MCP_ALLOWED_HOSTS | (空) | /mcp/ で許可されるホスト(DNS リバインディング対策)。カンマ区切りです。空の場合、検証しません |
RATE_LIMIT_SESSION_PER_MIN | 30 | MCP セッションごとの1分あたりのツール呼び出し数(0で無効) |
RATE_LIMIT_GLOBAL_PER_MIN | 600 | 全体での1分あたりのツール呼び出し数(0で無効) |
RATE_LIMIT_MAPA_RAPIDO_IP_PER_MIN | 6 | IPごとの1分あたりの/mapa-rapidoへのリクエスト数(0で無効) |
RATE_LIMIT_MAPA_RAPIDO_GLOBAL_PER_MIN | 120 | 全体での1分あたりの/mapa-rapidoへのリクエスト数(0で無効) |
PUBLIC_SITE_URL | https://github.com/gucancado/ceu-natal | /と/llms.txtのリダイレクト先(<site>/llms.txtへ移動します) |
CORS_ORIGINS | (空 = PUBLIC_SITE_URL) | /mapa-rapidoのCORSで許可されるオリジン。カンマ区切りです |
GEONAMES_USERNAME | (空) — 設定しない場合、Nominatimのみ使用 | ジオコーディングに使用するGeoNamesアカウント(geonames.orgで無料アカウントを作成してください) |
NOMINATIM_USER_AGENT | ceu-natal-mcp/2.0 | Nominatim(OSM)に送信するUser-Agent |
NOMINATIM_MIN_INTERVAL_S | 1.0 | Nominatimへの呼び出し間の最小間隔(秒) |
GEOCODER_MAX_CONCORRENTES | 4 | ジオコーディングプロバイダーへの同時呼び出しの上限 |
GEOCODER_ESPERA_MAX_S | 3.0 | 上限の空きができるまでの最大待機時間(秒)。超過するとエラーになります |
GEOCODER_CACHE_PATH | <tmp>/ceu-natal-geocode-cache.json | 座標の永続キャッシュ。Dockerでは/var/cache/ceu-natalにボリュームを設定します |
CONTATOS_PATH | 空(/contatoを無効化) | サイトで新着情報の受け取りを希望した連絡先を保存するJSONLファイル。本番環境では/var/lib/ceu-natal/contatos.jsonl(永続ボリューム) |
ESTATISTICAS_PATH | 空(/estatisticasを無効化) | 使用状況の集計統計を保存するSQLiteデータベース(ステータスページ)。本番環境では/var/lib/ceu-natal/estatisticas.sqlite3(永続ボリューム) |
HISTORICO_PATH | 空(何も保存しません) | サイトのフォームで作成されたマップ(日時、都市)を保存するSQLiteデータベース。匿名のブラウザーIDと連絡先に紐付けられます。本番環境では/var/lib/ceu-natal/historico.sqlite3 |
CONTATOS_ADMIN_TOKEN | 空(/contatosは404を返します) | GET /contatos(各連絡先とそのマップ)およびGET /historico(ブラウザーごとの履歴)ルートで使用するBearerトークン。MCP_API_KEYとは別です |
サイト(web/)
紹介サイト(https://mistico.gustavocancado.com.br)は、独自のDockerイメージ(web/Dockerfile)を持つ独立したNext.js 16アプリです。起動するには、
cd web && pnpm install && pnpm devを実行してください。URLはweb/.env.exampleで設定します。
精度と制限
- 天体暦: Astrodienst AGのSwiss Ephemerisを、 Kerykeionとpyswisseph経由で使用します。トロピカル方式の黄道帯です。
- 緯度66°超: 極付近ではハウス計算の信頼性が低くなります。出生図はハウスとアングルを含めずに出力され、警告が表示されます。トランジット、プログレス、リターンは拒否されます。
- 年: 1800年から2399年までの日付(キロンの天体暦の範囲)。ソーラーリターンは1800年から2200年までです。
- 夏時間: 時刻が切り替わりのタイミング(曖昧または存在しない時刻)に当たる場合、サーバーは
is_dstを指定するよう求めるエラーを返します(true= 夏時間、false= 標準時間)。 - 出生時刻が不明な場合: 現地時間の12:00として計算します。月の位置は、その日の移動量の半分まで前後する可能性があります(通常6°から7.6°で、
margem_grausに返されます)。結果には、月のサインが変わる可能性のある時刻が示されます。 - 公開エンドポイントの制限: セッションごとに1分あたり30回、全体で1分あたり600回の呼び出しが可能です。MCP経由で受信したデータは保存されません(サイトのフォームで作成したマップは保存されます)。詳しくは プライバシーポリシーをご覧ください。
貢献
Issue やプルリクエストを歓迎します。CONTRIBUTING.mdをご覧ください。 セキュリティ上の問題については、SECURITY.mdをご覧ください。
ライセンス
AGPL-3.0-or-later。AGPL はネットワーク経由での利用にも適用されます。変更を加えたこのサーバーをサービスとして提供する場合は、コードを公開する必要があります。公開エンドポイントでは、このリポジトリのコードがそのまま実行されています。
Copyright (C) 2026 Gustavo Cançado。サードパーティのクレジットとライセンスについては、NOTICEをご覧ください。
この選択は依存関係に基づいています。Kerykeion は AGPL-3.0 であり、pyswisseph(Swiss Ephemeris)は AGPL-3.0 または Astrodienst の有料プロフェッショナルライセンスで配布されています。AGPL の条件に従わない利用には、Swiss Ephemeris のプロフェッショナルライセンスを取得し、Kerykeion を置き換える必要があります。サイトでは、AGPL と互換性のある MIT ライセンスのパッケージ @beeads/* を使用しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。