mcpField
C
CNN Fear & Greed Index

CNN Fear & Greed Index

ローカル
github.com/wildsurfer金融データ27 週間前に更新

CNN Fear & Greed Index について

CNN の米国株式市場 Fear & Greed Index を取得する Go パッケージ、CLI、MCP サーバーです。現在と過去のスコア、日次履歴、7 つの構成指標の詳細を取得できます。

主な機能

  1. 01現在のスコアと評価
  2. 02過去の期間別スコア
  3. 03約 1 年分の日次履歴
  4. 047 つの構成指標とその履歴
  5. 05Go パッケージと CLI

活用シーン

  1. 01現在の市場心理の確認
  2. 02過去の期間との市場心理の比較
  3. 03各構成指標スコアの確認
  4. 04指数データの JSON 出力

MCP 対応

stdio の MCP サーバーは get_fear_and_greed ツールを 1 つ公開し、指数の取得に対応します。include_history 引数は任意です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"wildsurfer-cnnfag": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/wildsurfer/cnnfag:2.2.0"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/wildsurfer/cnnfag:2.2.0

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/wildsurfer/cnnfag:2.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

cnn-fear-and-greed-parse

Go Reference CI Coverage Status License: MIT Glama score

CNN の Fear & Greed Index 用の Go パッケージです。米国株式市場のセンチメントを 0~100 で示します。現在のスコアと評価、前日終値・1 週間前・1 か月前・1 年前の値、約 1 年分の日次履歴に加え、7 つの構成指標(市場モメンタム、株価の強さ、株価の幅、プット/コールオプション、市場のボラティリティ、ジャンク債需要、安全資産需要)を取得できます。各指標には独自のスコア、評価、実数値の履歴があります。このモジュールには CLI と MCP サーバーも含まれており、Go 標準ライブラリ以外の依存関係はありません。

インストール

go get github.com/wildsurfer/cnn-fear-and-greed-parse/v2

使い方

package main

import (
	"context"
	"fmt"

	cnnfag "github.com/wildsurfer/cnn-fear-and-greed-parse/v2"
)

func main() {
	result, err := cnnfag.Get(context.Background())
	if err != nil {
		panic(err)
	}

	fmt.Printf("Now: %.0f (%s)\n", result.Score, result.Rating)
	fmt.Printf("One year ago: %.0f\n", result.OneYearAgo)
	fmt.Printf("History: %d daily points since %s\n",
		len(result.History), result.History[0].Date.Format("2006-01-02"))
	fmt.Printf("VIX indicator: %.0f (%s)\n",
		result.MarketVolatility.Score, result.MarketVolatility.Rating)
}

出力:

Now: 64 (greed)
One year ago: 58
History: 250 daily points since 2025-08-11
VIX indicator: 50 (neutral)

Indicator の History には元となる系列の実数値(モメンタムの場合は S&P 500 の水準、ボラティリティの場合は VIX の水準、その他の場合は比率やスプレッド)が格納され、Score は CNN による 0~100 の正規化値です。独自の http.Client(タイムアウト、プロキシ)を使うには、cnnfag.HTTPClient を置き換えてください。

CLI

Go のコードを書かずに、cron ジョブやシェルパイプラインで使う場合:

go install github.com/wildsurfer/cnn-fear-and-greed-parse/v2/cmd/cnnfag@latest
$ cnnfag
64 (greed) as of 2026-08-11T00:00:00Z
previous close 64 · week ago 60 · month ago 47 · year ago 58

$ cnnfag -json | jq .score
64.3714285714286

-json は日次履歴を含む結果全体を出力します。-timeout はリクエストのタイムアウトを変更します(デフォルトは 15s です)。

MCP サーバー

cnnfag mcp は stdio 経由で Model Context Protocol サーバーを起動し、AI アシスタントがインデックスを照会できるようにします。オプションの include_history 引数を持つツール get_fear_and_greed を 1 つ公開します。MCP クライアントの設定:

{
  "mcpServers": {
    "cnnfag": {
      "command": "cnnfag",
      "args": ["mcp"]
    }
  }
}

MCP クライアントがバイナリを見つけられる必要があります。MCP クライアントがシェルの PATH を引き継がない場合は、フルパス(通常は ~/go/bin/cnnfag)を指定してください。このモジュールのほかの部分と同様に、サーバーも標準ライブラリのみで構築されています。

このサーバーは MCP Registry に io.github.wildsurfer/cnnfag として公開されており、ローカルバイナリではなく Docker を使いたいクライアント向けに、コンテナイメージ ghcr.io/wildsurfer/cnnfag も提供されています。

仕組み

CNN は、公開されている仕様付きの API を提供していません。このパッケージは、Fear & Greed ページ自体が使用する JSON エンドポイントにリクエストを送信します。

https://production.dataviz.cnn.io/index/fearandgreed/graphdata

このエンドポイントは、ブラウザーからのリクエストに見えないものを拒否するため、パッケージはブラウザーに似せた User-Agent と Referer ヘッダーを送信します。これは、他の言語で知られているラッパーと同じデータソースを使用しています。

スケジュールされた CI ジョブが週に 1 度、実際のエンドポイントに対してテストスイートを実行するため、CNN 側の変更を数日以内に検知できます。

v1 からの移行

v2 は全面的な書き直しです。CNN が v1 の解析対象だった HTML ページを削除したため、v1 は動作しなくなり、そのデータモデルも CNN が公開する内容と一致しなくなりました。まずインポートパスを更新してください。

import cnnfag "github.com/wildsurfer/cnn-fear-and-greed-parse/v2"

次に、呼び出しを調整してください。

v1v2
cnnfag.Parse()cnnfag.Get(ctx)。context.Context を受け取ります
Result.Now.Value (int)Result.Score (float64)
Result.Now.TextResult.Rating
Result.PreviousClose.Value (int)Result.PreviousClose (float64)
Result.OneWeekAgo.Value、.OneMonthAgo.Value、.OneYearAgo.Valueフィールド名は同じですが、現在は通常の float64 です
Result.PreviousClose.Text およびその他の過去期間のラベル削除されました。CNN の API には過去期間のラベルがありませんが、すべての History ポイントには評価が含まれます
Result.LastUpdateDateResult.Timestamp。解析による推測値ではなく、CNN の正確な時刻になりました
Result.ImageURL、Result.GetImageBytes()削除されました。ニードル画像はもう存在しません
ErrHTTPNon200ErrUnexpectedStatus。errors.Is で確認してください
ErrEmptyFieldErrEmptyResult
ErrImgLoadNon200、ErrReadingBytes画像 API とともに削除されました
—Result.History が新たに追加されました。約 1 年分の日次スコアが含まれます

スコアは整数に丸めた値から、CNN が提供する正確な浮動小数点数に変更されました。そのため、v1 の 44 は、v2 では 43.71 のような値に相当します。以前と同じ表示にする必要がある場合は、%.0f または math.Round で丸めてください。

プロジェクトの歴史

v1(2021 年)は goquery を使用して money.cnn.com/data/fear-and-greed の HTML を解析し、インデックスのニードル画像もダウンロードできました。CNN がそのページを削除したため解析が動作しなくなり、画像も存在しなくなりました。v2(2026 年)は JSON エンドポイントを使用した書き直しで、API を簡素化し、履歴データを追加して、依存関係をゼロにしました。v1 の最後のリリースには v1.2.0 のタグが付いています。

データに関する免責事項

このパッケージは CNN と提携しておらず、CNN の承認も受けていません。Fear & Greed Index とその値は CNN(Warner Bros. Discovery)に帰属します。MIT ライセンスの対象はこのリポジトリ内のコードのみであり、CNN のデータに関する権利は付与されません。CNN の利用規約では、サイトコンテンツの個人利用が許可されている一方、商用利用は制限されています。このデータを製品で使用する場合、規約への準拠は利用者の責任です。また、エンドポイントはいつでも変更または消失する可能性があります。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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