Stellara について
Stellaraは、出生図やトランジットを平易な文章で読みたい人向けの無料・読み取り専用占星術MCPサーバーです。出生図画像や有名人との相性比較も提供し、文章は固定の手書きでLLM呼び出しはありません。
主な機能
- 01太陽星座とライフパス数の解釈
- 02惑星位置とアスペクトを含む出生図
- 03今日または1週間のトランジット
- 04出生図比較と有名人との相性
- 05PNG・SVGの出生図画像
活用シーン
- 01わかりやすい出生図の解釈を得る
- 02指定期間の惑星トランジットを確認する
- 03出生図画像や有名人との相性結果を共有する
MCP 対応
Stellaraは、`/mcp`のステートレスなStreamable HTTP MCPエンドポイントで占星術ツールを提供します。構造化コンテンツとテキストを返し、出生図ツールは画像コンテンツも返せます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.mystellara.com/mcpclaude mcp add --transport http yulo-max-stellara https://mcp.mystellara.com/mcp{"mcpServers":{"yulo-max-stellara":{"type":"http","url":"https://mcp.mystellara.com/mcp"}}}Cursor で開く{"servers":{"yulo-max-stellara":{"type":"http","url":"https://mcp.mystellara.com/mcp"}}}VS Code で開く{"mcpServers":{"yulo-max-stellara":{"type":"http","url":"https://mcp.mystellara.com/mcp"}}}{"mcpServers":{"yulo-max-stellara":{"serverUrl":"https://mcp.mystellara.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Stellara MCP(無料)
Stellara 用の無料の読み取り専用 MCP サーバーです。ログインも支払いもデータベースも不要です。バリアント B:出力の末尾に「Stellara 制作。自己内省のためのものであり、予測ではありません。」(オランダ語:「Gemaakt door Stellara. ...」)が付き、mystellara.com へのリンクは含まれません。画像リンクと共有リンクには MCP 独自のホスト(mcp.mystellara.com)を使用し、含まれるのは計算済みのチャートデータのみで、出生データは含まれません。
名前、説明、フィールドの説明は src/config.ts に、すべての出力テキストは src/copy.ts にあります。
このリポジトリは Cursor プラグインでもあります:.cursor-plugin/plugin.json、mcp.json(https://mcp.mystellara.com/mcp を指定)、skills/stellara-reading/SKILL.md、assets/logo.svg。npm run validate-plugin で検証してください。
エンドポイント
| メソッド | パス | 内容 |
|---|---|---|
| POST | /mcp | Streamable HTTP による MCP(ステートレス、JSON レスポンス) |
| GET | /health | {"status":"ok","version":"..."} |
| GET | / | 短いプレーンテキストの情報 |
GET/DELETE /mcp は 405 を返します(セッションなし、SSE ストリームなし)。
チャート画像
GET /chart.png および GET /chart.svg に ?id=<id>(任意で lang=nl)を付けると、完全なネイタルチャート画像(1400x1000)が返されます。クリーム色の背景、色付きのサイン記号と度数目盛りを備えた黄道十二宮のリング、番号とカスプ度数を付けたプラシーダス方式のハウス区分、As/Ds/Mc/Ic、度数付きの惑星記号、アスペクト線(調和的なものは緑、緊張を示すものは赤)、エレメントとクオリティの割合、位置とカスプのサイドテーブルが含まれます。PNG は resvg-js(MPL-2.0、変更せずに使用)と同梱の DejaVu Sans フォント(fonts/、無料ライセンス)でレンダリングされるため、どこでも同じように記号が表示されます。レート制限は /mcp と同じで、リクエストごとに計算され、保存されるものはありません。ID はランダム(128 ビット)です。計算済みのレンダリングデータはサーバー側のインメモリ LRU(30 日間、最大 20,000 件。CHART_STORE_DIR が書き込み可能なボリュームを指す場合は、任意でディスクにもコピー)に保持されます。URL にも画像にも個人情報は含まれません。不明な ID または期限切れの ID には 404 が返されます。メモリのみに保存されたリンクは、再起動後は機能しません。以前の ?date= 形式は拒否されます(400)。get_birth_chart はこの URL を chart_image_url として返し、チャートを PNG 画像のコンテンツブロックとして返します(幅 1000 px。MCP ホストは SVG 画像ブロックを拒否し、「Could not find MIME for Buffer」と表示します)。
X での共有
get_birth_chart と compare_charts(celebrity 指定時)は、share_url(テキストと共有ページを含む X 投稿インテント。@タグは付けません)、share_page_url、share_image_url を返します。
GET /s/match?t=…、GET /s/chart?t=…:og:*とtwitter:card=summary_large_image、短いテキスト、mystellara.com へのボタンを含む共有ページ。GET /match.png?t=…、GET /chart-card.png?t=…:1200x675 のカード。- トークン
tは、計算済みの結果(サインのインデックス、整数度単位の惑星の黄経、スコア、公人である有名人の名前)のみを含む base64url JSON です。出生日時や出生地は含まれません。保存もログ記録もされません。
有名人
compare_charts は person_b の代わりに celebrity(名前、X のハンドル、またはその誤記)を受け付け、遊び心のある相性結果を返します。スコア(40~98)、短い一文、平易な文章、mystellara.com へのリンクを含む X 用の共有テキスト、個人の私生活については何も示さないという注記が含まれます。list_celebrities(query?) は利用可能な人物を一覧表示します。
data/celebrities.json には、X で最もフォロワー数の多い実在の人物 1000 人が登録されています。scripts/build_celebrities.py によって作成されます。順位は、Wikidata のフォロワー数(X ユーザー ID の修飾子が付いた P8687、人間のみ)に基づき、出生年月日 P569(日単位の精度)、出生地 P19(座標付き)を使用し、Grokipedia との照合も行っています。各エントリーには、フィールドごとの情報源と信頼度(高=両方の情報源が一致、中=情報源が一つ、低=不一致。出力でフラグ表示)が記録されます。出生時刻があるのは出生証明書が公開されている場合のみ(Obama、Trump)で、その他全員は日付のみです(上昇星座やハウスはなく、その旨を明記します)。Wikidata は CC0 です。
読み方
チャートとトランジットの文章は、占星術に初めて触れる人向けに書かれています。度数やアスペクト名、「アセンダント」は記載せず、文は短く、メインの読み解きは最大6行です。すべての技術データ(位置、度数、ハウス、オーブ付きのアスペクト、トランジットの正確な日付)は structuredContent に含まれています。
ツール
get_sun_sign_reading(birth_date, language?, voice?):シンプルな日付表とピタゴラス式のライフパスナンバーから太陽星座を割り出し、手書き風の短い文章を生成します。デフォルトでは三人称で書かれます(voice: "second_person"にすると、読み手に語りかけます)。太陽の星座が切り替わる日とその前日は、生まれた時刻によって星座が異なると伝えます。create_christmas_star_card(birth_date, recipient_name?, language?):ステララカラーを使った、テキストとSVG画像(1080x1350)からなるお祝いカードを作成します。get_birth_chart(birth_date, birth_time?, birth_place? | latitude+longitude+timezone, language?):太陽から冥王星までの実際の位置(トロピカル方式、星座、度数、逆行)、オーブ付きの主要なアスペクト(合/衝は8°、トライン/スクエアは7°、セクスタイルは5°)、短い性格解釈を返します。アセンダント、ミッドヘブン、プラシーダスハウス(極圏より北ではホールサイン方式。カスプはEinsteinについてastro.com/astrothemeと一致)は、出生時刻と出生地の両方が指定されている場合にのみ返されます。出生時刻が指定されていない場合は、現地時間の12:00を使用し、月のアスペクトは省略され、当日に月が星座を移動した場合はその旨が示されます。chart_image_urlにはランダムなIDと言語のみが含まれます。最後にフッターが付きます。get_transits(birth data, date?, period? = today|week, language?):UTC期間(今日、またはdateから7日間)の中央時点における惑星の位置と、ネイタルの惑星に対するトランジット(太陽から冥王星まで。月は除外)を返します。オーブは個人天体が2°、外惑星が1.5°で、期間内に正確なアスペクトが生じる場合も含まれます。±10日/45日の範囲内にある場合は、UTCでの正確な日付も返します。compare_charts(person_a, person_b, language?):シナストリーを返します。少なくとも一方に個人天体が関わる相互アスペクト(オーブは75%)を、個人天体同士のアスペクトを先にして順位付けし、件数と短い概要も返します。
出生地:世界約171,000か所(GeoNamesのcities1000に基づく、人口1,000人以上のすべての町)を収録したオフライン地名データベース、またはlatitude、longitude、IANAのtimezoneを指定できます。大文字小文字とアクセントの違いは区別されません(Zurich = Zürich)。別名やオランダ語名(Den Haag、Den Bosch、Keulen、Luik)にも対応し、"Hengelo, Gelderland"、"Springfield, Illinois"、"Ootmarsum, Nederland"のように場所の情報を追加できます。正式名称が優先され、次に人口が考慮されます。名称が曖昧な場合(例:Springfield)は、地域名と国名を含む候補上位5件を列挙したエラーをツールが返すため、アシスタントから確認できます。外部のジオコーダーは呼び出されないため、場所の情報がサーバーの外部に送信されることはありません。
地名データベースはscripts/build-gazetteer.mjsで前処理され、data/gazetteer.tsv.gz(4.5 MB:名称、別名、国、地域、緯度、経度、タイムゾーン、人口)として保存されます。起動直後に約1秒で読み込まれます(合計RSSは約210 MBです)。
場所データ:GeoNames。ライセンスはCC BY 4.0です。 data/NOTICE.mdを参照してください。チャート出力では、place.sourceと注記にデータの出典が記載されます。現地時刻の変換にはluxonとIANAデータベースを使用するため、過去の夏時間も処理できます(例:1975年にはオランダで夏時間がありませんでした)。
精度
位置はastronomy-engine(MIT、VSOP87/ELP ベース)に基づいています。日付時点での見かけの地心黄経です。テストでは、1990-06-01 12:00 UT と 1879-03-14 10:50 UT について、10 天体すべてを JPL Horizons(quantity 31)と比較しています。最大差は 0.0016° です。アインシュタイン(ウルム、1879-03-14 11:30 LMT)のアセンダント/MC は、astro.com と同じく、蟹座 11°38'/魚座 12°50' になります。
最初の 2 つのツールでは、birth_date(YYYY-MM-DD、または DD-MM-YYYY)のみが必須入力です。language は en(デフォルト)または nl です。すべてのツールは、outputSchema に一致する structuredContent(sun_sign、life_path_number、reading/card_text、disclaimer など)と、同じ JSON をテキストブロックとして返します。無効な日付の場合、プロトコルエラーではなく、isError: true のツール結果を返します。扱うのは性格と内省のみで、予測は行いません。mystellara.com に言及するのは get_birth_chart のみで、1 回だけです。すべてのテキストは固定された手書きのもので、LLM の呼び出しはありません。
データの取り扱い
データは保存されません。データベース、ファイル、リクエストのログ記録、分析はいずれもありません。生年月日と名前はレスポンスの作成にのみ使用され、リクエストの終了時に破棄されます。レートリミッターはリクエスト数を数えるため、クライアントの IP を最大 1 分間メモリ上に保持します。ディスクへの書き込みやログ記録は行いません。ログ行は起動メッセージのみです。
セキュリティ
- 意図的に認証はありません。サーバーにはアカウント、シークレット、ユーザーデータがないため、IP ごとのレート制限で保護しています。これは MCP の「認証すべき」というガイダンスから意図的に逸脱しています。
/mcpのオリジンチェック(DNS リバインディング対策):Originヘッダーのないリクエスト(通常の MCP クライアント)は許可されます。ブラウザーからのリクエストは、localhost またはALLOWED_ORIGINS(カンマ区切り)に記載されたオリジンからの場合のみ許可されます。それ以外は 403 を返します。- 入力は検証され(zod、最大長)、SVG 内の名前は XML エスケープされます。
レート制限
/mcp では、IP ごとに 1 分あたり 30 リクエストまでです(環境変数 RATE_LIMIT_PER_MINUTE)。上限を超えると HTTP 429 を返します。
実行
npm ci && npm run build && npm start # PORT defaults to 8080
npm test # node:test, no extra framework
npm run license-check # fails on non MIT/BSD/Apache/ISC deps
npx @modelcontextprotocol/inspector --cli http://localhost:8080/mcp --transport http --method tools/list
デプロイ(Railway)
Dockerfile(ヘルスチェック /health)。プラットフォームが PORT を設定します。シークレットや環境変数は不要です。
ライセンス
MIT。依存関係は MIT、BSD、Apache-2.0、ISC、MPL-2.0 に限定されています(resvg-js のみ改変なしで使用)。kerykeion、Swiss Ephemeris、その他の (A)GPL コードは使用していません。太陽星座のリーディングには日付テーブルを使用し、チャートツールには astronomy-engine(MIT)と luxon(MIT)を使用しています。場所データは GeoNames(CC BY 4.0)を使用しています。
内部用:無料出生チャートのレンダリング(stellara-reports 向け)
POST /render/free-chart は、無料出生チャートメール用に、縦向きの PNG(1080 × 1350、ブランドカラー、Cormorant/Inter、fonts/ 内の OFL フォント)と主要な 3 つの星座を返します。この機能は FREE_CHART_RENDER_SECRET が設定されている場合(16 文字以上)のみ利用でき、呼び出し元が X-Render-Secret でその値を送信する必要があります。それ以外の場合は 404 を返します。出生データは POST 本文にのみ含め、URL に含めたり、ログに記録したり、保存したりすることはありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。