npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-server-fear-greed

v1.0.1

Published

An MCP server for mcp-server-fear-greed

Readme

MCP Server Fear & Greed Index

NPM Downloads

Install MCP Server

A Model Context Protocol (MCP) server that provides access to the CNN Fear & Greed Index for the US stock market. This server fetches real-time market sentiment data and presents it in both structuredContent and text content.

Features

  • Real-time Fear & Greed Index: Get the current market sentiment score (0-100)
  • Historical Comparisons: View previous close, week, month, and year data
  • Detailed Market Indicators: Access individual component scores including:
    • Market Momentum (S&P 500 & S&P 125)
    • Stock Price Strength & Breadth
    • Put/Call Options Ratio
    • Market Volatility (VIX)
    • Junk Bond Demand
    • Safe Haven Demand
  • Flexible Output: Choose between structured markdown or raw JSON format

Requirements

  • Node.js 18 or newer
  • VS Code, Cursor, Windsurf, Claude Desktop or any other MCP client

Getting Started

Local (Stdio)

First, install the Fear & Greed MCP server with your client. A typical configuration looks like this:

{
  "mcpServers": {
    "mcp-server-fear-greed": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-fear-greed@latest"
      ]
    }
  }
}

You can also install the mcp-server-fear-greed MCP server using the VS Code CLI:

# For VS Code
code --add-mcp '{"name":"mcp-server-fear-greed","command":"npx","args":["mcp-server-fear-greed@latest"]}'

After installation, the Fear & Greed MCP server will be available for use with your GitHub Copilot agent in VS Code.

Go to Cursor Settings -> MCP -> Add new MCP Server. Name to your liking, npx mcp-server-fear-greed. You can also verify config or add command like arguments via clicking Edit.

{
  "mcpServers": {
    "mcp-server-fear-greed": {
      "command": "npx",
      "args": [
        "mcp-server-fear-greed@latest"
      ]
    }
  }
}

Follow Windsurf MCP documentation. Use following configuration:

{
  "mcpServers": {
    "mcp-server-fear-greed": {
      "command": "npx",
      "args": [
        "mcp-server-fear-greed@latest"
      ]
    }
  }
}

Follow the MCP install guide, use following configuration:

{
  "mcpServers": {
    "mcp-server-fear-greed": {
      "command": "npx",
      "args": [
        "mcp-server-fear-greed@latest"
      ]
    }
  }
}

Remote (SSE / Streamable HTTP)

At the same time, use --port $your_port arg to start the browser mcp can be converted into SSE and Streamable HTTP Server.

# normal run remote mcp server
npx mcp-server-fear-greed --port 8089

You can use one of the two MCP Server remote endpoint:

  • Streamable HTTP(Recommended): http://127.0.0.1::8089/mcp
  • SSE: http://127.0.0.1::8089/sse

And then in MCP client config, set the url to the SSE endpoint:

{
  "mcpServers": {
    "mcp-server-fear-greed": {
      "url": "http://127.0.0.1::8089/sse"
    }
  }
}

url to the Streamable HTTP:

{
  "mcpServers": {
    "mcp-server-fear-greed": {
      "type": "streamable-http", // If there is MCP Client support
      "url": "http://127.0.0.1::8089/mcp"
    }
  }
}

In-memory call

If your MCP Client is developed based on JavaScript / TypeScript, you can directly use in-process calls to avoid requiring your users to install the command-line interface to use Fear & Greed MCP.

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';

// type: module project usage
import { createServer } from 'mcp-server-fear-greed';
// commonjs project usage
// const { createServer } = await import('mcp-server-fear-greed')

const client = new Client(
  {
    name: 'test fear greed client',
    version: '1.0',
  },
  {
    capabilities: {},
  },
);

const server = createServer();
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();

await Promise.all([
  client.connect(clientTransport),
  server.connect(serverTransport),
]);

// list tools
const result = await client.listTools();
console.log(result);

// call tool
const toolResult = await client.callTool({
  name: 'get_fear_greed_index',
  arguments: {
    format: 'json'
  },
});
console.log(toolResult);

API Reference

Tool: get_fear_greed_index

Fetches the current Fear & Greed Index and related market indicators.

Parameters

  • format (optional): Output format
    • "structured" (default): Returns formatted markdown with organized data
    • "json": Returns raw JSON data

Example Usage

// Get structured output
await client.callTool("get_fear_greed_index");

// Get JSON output
await client.callTool("get_fear_greed_index", { format: "json" });

Response Structure

The tool returns data in the following structure:

{
  "fear_and_greed": {
    "score": 75,
    "rating": "greed",
    "timestamp": "2025-07-18T23:59:57+00:00",
    "previous_close": 75.31,
    "previous_1_week": 75.26,
    "previous_1_month": 54.29,
    "previous_1_year": 45.94
  },
  "fear_and_greed_historical": {
    "timestamp": 1752883197000,
    "score": 75,
    "rating": "greed"
  },
  "market_momentum_sp500": {
    "timestamp": 1752871567000,
    "score": 61.2,
    "rating": "greed"
  },
  "market_momentum_sp125": {
    "timestamp": 1752871567000,
    "score": 61.2,
    "rating": "greed"
  },
  "stock_price_strength": {
    "timestamp": 1752883197000,
    "score": 80,
    "rating": "extreme greed"
  },
  "stock_price_breadth": {
    "timestamp": 1752883197000,
    "score": 84,
    "rating": "extreme greed"
  },
  "put_call_options": {
    "timestamp": 1752871897000,
    "score": 79.6,
    "rating": "extreme greed"
  },
  "market_volatility_vix": {
    "timestamp": 1752869701000,
    "score": 50,
    "rating": "neutral"
  },
  "market_volatility_vix_50": {
    "timestamp": 1752869701000,
    "score": 50,
    "rating": "neutral"
  },
  "junk_bond_demand": {
    "timestamp": 1752877800000,
    "score": 88.8,
    "rating": "extreme greed"
  },
  "safe_haven_demand": {
    "timestamp": 1752868799000,
    "score": 81.4,
    "rating": "extreme greed"
  }
}

Fear & Greed Index Ratings

The index uses the following rating scale:

  • 0-25: Extreme Fear
  • 26-45: Fear
  • 46-55: Neutral
  • 56-75: Greed
  • 76-100: Extreme Greed

Development

Access http://127.0.0.1:6274/:

npm run dev

Error Handling

The server includes comprehensive error handling:

  • Network request failures are caught and reported
  • Invalid API responses are handled gracefully
  • Missing data fields are filled with sensible defaults
  • All errors include descriptive messages