mcpField
S
Stellara

Stellara

リモート
mcp.mystellara.comゲーム・エンタメ01 週間前に更新
リポジトリ公式サイト

Stellara について

Stellaraは、出生図やトランジットを平易な文章で読みたい人向けの無料・読み取り専用占星術MCPサーバーです。出生図画像や有名人との相性比較も提供し、文章は固定の手書きでLLM呼び出しはありません。

主な機能

  1. 01太陽星座とライフパス数の解釈
  2. 02惑星位置とアスペクトを含む出生図
  3. 03今日または1週間のトランジット
  4. 04出生図比較と有名人との相性
  5. 05PNG・SVGの出生図画像

活用シーン

  1. 01わかりやすい出生図の解釈を得る
  2. 02指定期間の惑星トランジットを確認する
  3. 03出生図画像や有名人との相性結果を共有する

MCP 対応

Stellaraは、`/mcp`のステートレスなStreamable HTTP MCPエンドポイントで占星術ツールを提供します。構造化コンテンツとテキストを返し、出生図ツールは画像コンテンツも返せます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.mystellara.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、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/mcpStreamable 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 に含めたり、ログに記録したり、保存したりすることはありません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。