mcpField
C
CNN Fear & Greed Index

CNN Fear & Greed Index

本地服务
github.com/wildsurfer金融数据27 周前更新

关于 CNN Fear & Greed Index

这是用于获取 CNN 美国股市 Fear & Greed 指数的 Go 包、命令行工具和 MCP 服务,提供当前及过往分数、每日历史数据,以及 7 项组成指标的详细数值。

主要功能

  1. 01当前分数和评级
  2. 02过往时段分数
  3. 03约一年的每日历史数据
  4. 047 项组成指标及其历史数据
  5. 05Go 包和命令行工具

适用场景

  1. 01查看当前市场情绪
  2. 02比较不同过往时段的情绪
  3. 03检查各组成指标分数
  4. 04以 JSON 导出指数数据

MCP 相关

stdio MCP 服务提供一个 get_fear_and_greed 工具,用于查询指数,并支持可选的 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 恐惧与贪婪指数的 Go 包。该指数以 0–100 的数值衡量美国股市情绪。它会返回当前分数和评级、前一收盘日、前一周、前一月和前一年的数值、约一年的每日历史,以及七项组成指标(市场动能、股价强度、股价广度、看跌/看涨期权、市场波动率、垃圾债券需求、避险资产需求),每项指标都有自己的分数、评级和原始值历史。该模块还附带命令行工具和 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 保存底层原始数据序列(动能指标使用标普 500 指数水平,波动率指标使用 VIX 指数水平,其余指标使用比率和利差),Score 则是 CNN 归一化到 0–100 的分数。如需使用自己的 http.Client(设置超时、代理),请替换 cnnfag.HTTPClient。

命令行工具

用于定时任务和 Shell 管道,无需编写 Go 代码:

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 助手查询指数。它提供一个工具 get_fear_and_greed,并支持可选参数 include_history。MCP 客户端配置:

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

客户端必须能够找到该二进制文件:如果 MCP 客户端无法继承 Shell 的 PATH,请使用完整路径(通常为 ~/go/bin/cnnfag)。与该模块的其他部分一样,此服务仅使用标准库构建。

该服务也已发布到 MCP Registry,名称为 io.github.wildsurfer/cnnfag,并提供容器映像 ghcr.io/wildsurfer/cnnfag,供偏好使用 Docker 而非本地二进制文件的客户端使用。

工作原理

CNN 没有提供有文档说明的公共 API。此包会请求恐惧与贪婪指数页面本身使用的 JSON 端点:

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

该端点会拒绝看起来不像来自浏览器的请求,因此此包会发送类似浏览器的 User-Agent 和 Referer 标头。这与其他语言中已知封装库使用的数据源相同。

定期运行的 CI 任务每周会针对真实端点运行一次测试套件,因此 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 是新增字段:包含约一年的每日分数

分数从四舍五入后的整数改为 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。