mcpField
M
morningstar

morningstar

github.com/gauss314データ・データベース252254 回インストール20 週間前に更新
リポジトリ

morningstar について

morningstarは、Morningstarのスクリーナーで使われるJSONエンドポイントから世界の株式データを取得するスキルです。市場、国、項目を指定した検索や抽出、エクスポートに利用できますが、エンドポイントは非公式です。

主な機能

  1. 01銘柄名で株式を検索
  2. 02複数市場のデータを抽出・ダウンロード
  3. 03取得する項目を選択
  4. 04結果をJSONまたはCSVで出力
  5. 05項目と市場コードのリファレンスを確認

活用シーン

  1. 01指定市場の株式を検索
  2. 02複数市場の銘柄一覧を一括出力
  3. 03評価指標やリターンで株式を抽出
  4. 04分析用のCSVファイルを作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gauss314/skills --skill morningstar

インストール後、Claude Code で/morningstarを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
DATA_POINTS.md
UNIVERSES.md
references/
REFERENCE.md
scripts/
fetch_morningstar.py

詳細

Morningstar — API JSON 経由のスクリーナー

リバースエンジニアリングによって発見された内部 JSON エンドポイントを使って、Morningstar の世界株式データベースをダウンロードするスキルです。API キー不要、認証不要、厳しいレート制限もありません。


⚠️ 法的注意事項

  • このエンドポイントは公式ではありません。Morningstar のスクリーナー Web UI の XHR トラフィックを傍受して発見されました。
  • データは Morningstar の公開サイトから取得されます。サイトの利用規約を遵守してください。
  • 認証なしでアクセスできるのはエンドポイント /security/screener のみです。Morningstar のその他のエンドポイント(api-global、global、lt など)では AWS WAF チャレンジの解決が必要です(このスキルではサポートされていません)。
  • 集中的に使用する場合は、リクエストの間に 0.5~1 秒の間隔を空けてください。

スクリプト

スクリプト説明
fetch_morningstar.pyメインスクリプト:情報、フィールド、検索、スクリーナー、ダウンロード

依存関係のインストール

pip install requests

requests のみを使用し、追加の依存関係はありません。


クイックスタート

# === INFO ===
python scripts/fetch_morningstar.py info       # Stats del skill
python scripts/fetch_morningstar.py fields     # 33 campos disponibles

# === BUSCAR TICKERS (por nombre, multi-universe) ===
python scripts/fetch_morningstar.py search Apple --universe XNAS
python scripts/fetch_morningstar.py search Apple --universe XNAS XFRA XBUE
python scripts/fetch_morningstar.py search YPF --universe XBUE
python scripts/fetch_morningstar.py search "MercadoLibre" --universe XNAS BVMF

# === DESCARGA MASIVA (screener) ===
python scripts/fetch_morningstar.py screener --universe XNAS
python scripts/fetch_morningstar.py screener --universe XBUE
python scripts/fetch_morningstar.py screener --universe XNAS XLON XTKS

# === DESCARGA POR PAIS ===
python scripts/fetch_morningstar.py screener --country AR
python scripts/fetch_morningstar.py screener --country US
python scripts/fetch_morningstar.py screener --country DE

# === DESCARGA COMPLETA (53 universes, 100K+ listings) ===
python scripts/fetch_morningstar.py screener --all

# === GUARDAR A ARCHIVO ===
python scripts/fetch_morningstar.py screener --universe XBUE -o argentina.json
python scripts/fetch_morningstar.py screener --universe XNAS -o nasdaq.csv
python scripts/fetch_morningstar.py screener --country AR -o ar.csv
python scripts/fetch_morningstar.py search "YPF" --universe XBUE -o ypf_results.json

# === DOWNLOAD (alias de screener) ===
python scripts/fetch_morningstar.py download --universe XBUE -o ar.csv

# === MODO SILENCIOSO (solo JSON, sin logs) ===
python scripts/fetch_morningstar.py search Apple --universe XNAS -q
python scripts/fetch_morningstar.py screener --universe XBUE -q -o ar.json

# === CAMPOS ESPECIFICOS (--fields) ===
python scripts/fetch_morningstar.py screener --universe XNAS --fields Ticker Name ClosePrice MarketCap PERatio

利用可能なモード

モード説明例
infoスキルの統計情報、ドメイン、トークン、ユニバース数、フィールド数python fetch_morningstar.py info
fields利用可能な 33 個の securityDataPoints を説明付きで一覧表示しますpython fetch_morningstar.py fields
search1 つまたは複数のユニバース内で、名前からティッカーを検索しますpython fetch_morningstar.py search Apple --universe XNAS
screener1 つまたは複数のユニバースを一括ダウンロードします(データベース全体)python fetch_morningstar.py screener --universe XNAS
downloadscreener の別名ですpython fetch_morningstar.py download --universe XNAS
フラグ
フラグ説明例
--universe XNAS1 つまたは複数のユニバースコード(E0EXG$ の接頭辞なし)--universe XNAS XBUE
--country ARISO 国コード(39 か国に対応)--country AR US DE
--all53 の全ユニバース(約 10 万件の上場銘柄、所要時間は約 1~2 分)--all
--fields Ticker Nameフィールドのサブセット(デフォルト:33 個すべて)--fields Ticker Name ClosePrice
--output archivo.jsonJSON 形式で保存します-o data.json
--output archivo.csvCSV 形式で保存します(フラット形式)-o data.csv
-q / --quietログを表示せず、JSON のみを出力します-q

カバレッジ

53 のユニバース、102,093 件の上場銘柄、39 か国 — assets/UNIVERSES.md を参照してください。

上位 10 のユニバース
ユニバース取引所国上場銘柄数
XFRAフランクフルト(Tradegate)ドイツ14,082
XSTUシュトゥットガルトドイツ9,971
XMUNミュンヘンドイツ8,425
XDUSデュッセルドルフドイツ8,297
XBOMボンベイ(BSE)インド5,192
XTKS東京日本3,989
XNASNasdaq米国3,741
XNSENSE Indiaインド3,018
XSHE深圳中国2,934
XKRX韓国取引所韓国2,877
アルゼンチン

XBUE(BCBA)→ 469 件の CEDEAR(外国株式の預託証書)。価格は ARS 建てです。

python fetch_morningstar.py screener --universe XBUE -o ar.csv

各 CEDEAR は、元の ADR とは異なる PerformanceId を持ちます。例:Apple Inc CEDEAR(0P0000TFNY)≠ Apple Inc NASDAQ(0P000000GY)。

ブラジル

BVMF(B3)→ 2,070 件の BDR/株式。価格は BRL 建てです。

メキシコ

XMEX(BMV)→ 2,233 件の株式。価格は MXN 建てです。


フィールド(合計33)

メタデータ5項目: Ticker、Name、PerformanceId、Universe、MarketCountryName

カテゴリ項目5つ: SectorName、IndustryName、EquityStyleBox(1~9)、QuantitativeStarRating(1~5)

数値項目23個:

  • 価格/規模(2): ClosePrice、MarketCap
  • バリュエーション(3): PERatio、PEGRatio、DividendYield
  • 品質(7): DebtEquityRatio、NetMargin、EBTMarginYear1、ROATTM、ROETTM、ROEYear1、ROICYear1
  • 成長(2): EPSGrowth3YYear1、RevenueGrowth3Y
  • リターン(9): ReturnD1、ReturnW1、ReturnM0、ReturnM1、ReturnM3、ReturnM6、ReturnM12、ReturnM36、ReturnM60、ReturnM120

詳細はassets/DATA_POINTS.mdを参照してください。


出力例

search Apple --universe XNAS(1件)
{
  "_meta": {
    "query": "Apple",
    "universe_count": 1,
    "total_results": 1
  },
  "results": [
    {
      "Ticker": "AAPL",
      "PerformanceId": "0P000000GY",
      "Name": "Apple Inc",
      "ClosePrice": 311.23,
      "MarketCap": 4571145807880,
      "MarketCountryName": "United States",
      "SectorName": "Technology",
      "IndustryName": "Consumer Electronics",
      "_universe_code": "XNAS",
      "_universe_name": "Nasdaq"
    }
  ]
}
screener --universe XBUE -o ar.csv(469行)
_universe_code,Ticker,Name,PerformanceId,Universe,ClosePrice,MarketCap,SectorName,IndustryName,EquityStyleBox,...
XBUE,MMM,3M Co Cedear,0P0000D5UB,E0EXG$XBUE,23100,Industrials,Conglomerates,4,...
XBUE,A3,A3 Mercados SA Ordinary Shares,0P0000WJD7,E0EXG$XBUE,2215,Financial Services,Financial Data & Stock Exchanges,,...
XBUE,YPFD,YPF SA Class D,0P0000BS4D,E0EXG$XBUE,83850,Energy,Oil & Gas Integrated,9,...
search YPF --universe XBUE(4件)
{
  "_meta": {"query": "YPF", "universe_count": 1, "total_results": 4},
  "results": [
    {"Ticker": "YPFD",   "PerformanceId": "0P0000BS4D", "Name": "YPF SA Class D",        "ClosePrice": 83850, "SectorName": "Energy", "IndustryName": "Oil & Gas Integrated", "_universe_code": "XBUE"},
    {"Ticker": "YPFD1",  "PerformanceId": "0P0001NX4I", "Name": "YPF SA Class D Cedear", ...},
    {"Ticker": "YPF",    "PerformanceId": "...",          "Name": "YPF SA",                ...},
    ...
  ]
}

技術上の考慮事項

共通トークン

同じトークンklr5zyak8xが、tools.morningstar.*の5つのサブドメインで機能します。

ドメインデフォルト言語
tools.morningstar.co.uk英語(英国)
tools.morningstar.deドイツ語
tools.morningstar.frフランス語
tools.morningstar.itイタリア語
tools.morningstar.esスペイン語

どのドメインからも同じデータが返されます。スクリプトは、いずれかが200を返すまで5つすべてを試します。

機能しないドメイン: tools.morningstar.com(米国)、.com.au、.br、.jpなど(ジオフェンシング、IPブロック、またはエンドポイントが存在しないため)。

エンコーディング

APIは、languageId(es-AR、de-DEなど)の言語でセクター名/業種名を返します。問題: アクセント付き文字のエンコーディングが誤っています(Energ�aのように、Energíaではありません)。

スクリプトによる解決策: すべてのユニバースでlanguageId=en-GBを使用します。企業名(Apple、YPFなど)はそのままで、セクター名/業種名のみ英語で返されます(定量スクリーナーの標準です)。

レート制限

厳しいレート制限は確認されていません。ただし、次の点に注意してください。

  • 数秒間に50件以上リクエストすると、CDNによるスロットリングが発生する場合があります
  • スクリプトはユニバース間で0.5~1秒待機します(get()で設定可能)
  • 積極的な再試行は行いません
PerformanceId

各上場銘柄(特定の取引所に上場している金融商品)には、一意のPerformanceIdがあります。同じ「Apple Inc」でも、次のようになります。

  • NASDAQ(XNAS)では0P000000GY
  • XFRA(フランクフルト)では0P0000EEDJ
  • BVMF(ブラジルBDR)では0P0000VE8R
  • XBUE(アルゼンチンCEDEAR)では0P0000TFNY

PerformanceIdは取引所間で引き継がれません。特定の上場銘柄を識別するための唯一の安定したキーです。

スキルの構成

skills/morningstar/
├── SKILL.md                          # Este archivo (guia rapida)
├── assets/
│   ├── UNIVERSES.md                  # Lista completa de 53 universes
│   └── DATA_POINTS.md                # Lista de 33 campos disponibles
├── references/
│   └── REFERENCE.md                  # Documentacion tecnica detallada
└── scripts/
    └── fetch_morningstar.py          # Script principal

詳細なドキュメント: エンドポイント、JSONスキーマ、例、トラブルシューティングに関する包括的な技術ドキュメントは、references/REFERENCE.mdを参照してください。

コメント