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

rumble-mcp

v2.0.0

Published

MCP server for TheRumble.app investment research data

Readme

Rumble MCP

CI npm version npm downloads License: MIT

⚠️ Disclaimer: This tool requires a valid subscription to TheRumble.app. It is intended for personal use only. Any misuse of this tool is not the responsibility of the developer. By using this tool, you agree to comply with TheRumble's terms of service.

An MCP (Model Context Protocol) server that provides AI assistants with access to TheRumble.app investment research data for the Egyptian stock market (EGX).

Quick Install

Features

| Feature | Description | |---------|-------------| | 📈 Fundamental Calls | Long-term investment recommendations with target prices, analyst ratings, and performance metrics | | 📊 Technical Calls | Short-term trading signals with entry, target, and stop-loss prices | | 🏆 Track Records | Historical performance and alpha vs EGX30 benchmark | | 📋 Asset Lists | Curated portfolios: RFP, Bottom Fisher, and RTP |

Installation

Option 1: npx (No Installation Required)

npx rumble-mcp

Option 2: Global Install

npm install -g rumble-mcp

Option 3: From Source

git clone https://github.com/AndrewHossam/rumble-mcp.git
cd rumble-mcp
npm install && npm run build
npm link  # Makes 'rumble-mcp' globally available

Getting Your Credentials

TheRumble uses Firebase authentication. To prevent your token from expiring every hour, you should use both an ID token and a Refresh token.

Run the helper script to get both:

npx rumble-mcp extract-token
# OR inside the project
npm run extract-token

Paste the generated script into your browser console on therumble.app. It will give you the .env content to copy.

Why use a refresh token?

  • Without it: Credentials expire in 1 hour
  • With it: The MCP auto-refreshes your session indefinitely 🚀

IDE & AI Client Setup

VS Code / VS Code Insiders

  1. Click the Install in VS Code button above, or
  2. Open Settings (Cmd+,) → search "MCP" → Add server configuration:
{
  "mcp": {
    "servers": {
      "rumble": {
        "command": "npx",
        "args": ["rumble-mcp"],
        "env": {
          "RUMBLE_FIREBASE_TOKEN": "your_firebase_token",
          "RUMBLE_REFRESH_TOKEN": "your_refresh_token",
          "RUMBLE_MARKET": "EGY"
        }
      }
    }
  }
}

Cursor

  1. Click the Install in Cursor button above, or
  2. Go to SettingsMCP Servers → Add:
{
  "rumble": {
    "command": "npx",
    "args": ["rumble-mcp"],
    "env": {
      "RUMBLE_FIREBASE_TOKEN": "your_firebase_token",
      "RUMBLE_REFRESH_TOKEN": "your_refresh_token",
      "RUMBLE_MARKET": "EGY"
    }
  }
}

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "rumble": {
      "command": "npx",
      "args": ["rumble-mcp"],
      "env": {
        "RUMBLE_FIREBASE_TOKEN": "your_firebase_token",
        "RUMBLE_REFRESH_TOKEN": "your_refresh_token",
        "RUMBLE_MARKET": "EGY"
      }
    }
  }
}

Claude Code (Anthropic)

claude mcp add rumble -- npx rumble-mcp

Then set your tokens:

export RUMBLE_FIREBASE_TOKEN="your_firebase_token"
export RUMBLE_REFRESH_TOKEN="your_refresh_token"
export RUMBLE_MARKET="EGY"  # Optional, defaults to EGY

🤖 Other AI Clients (Windsurf, Continue, etc.)

Most MCP-compatible clients follow a similar pattern:

{
  "name": "rumble",
  "command": "npx",
  "args": ["rumble-mcp"],
  "env": {
    "RUMBLE_FIREBASE_TOKEN": "your_firebase_token",
    "RUMBLE_REFRESH_TOKEN": "your_refresh_token",
    "RUMBLE_MARKET": "EGY"
  }
}

Available Tools

| Tool | Category | Description | |------|----------|-------------| | get_fundamental_calls | Discovery | List active fundamental investment calls | | get_technical_calls | Discovery | List active technical trading calls | | get_call_details | Details | Get full details for any call (fundamental/technical) by ID | | get_fundamental_track_record| Insights | Overall fundamental track record (win rate, alpha) | | get_technical_track_record | Insights | Overall technical track record | | get_latest_releases | Insights | Latest content releases | | get_rfp_portfolio | Portfolios | Rumble Fundamental Portfolio (long-term picks) | | get_bottom_fisher_portfolio | Portfolios | Bottom Fisher Portfolio (undervalued stocks) | | get_rsp_portfolio | Portfolios | Rumble Shariah Portfolio (Shariah-compliant) | | list_known_portfolios | Portfolios | List all known portfolio aliases |

get_call_details Usage

  • Parameters: callId (required), type (optional: fundamental/technical), sections (optional: ["story", "performance", "updates", "news"])
  • Example:
    {"callId": "call_id_here", "sections": ["performance", "updates"]}

Example Usage

Once configured, ask your AI assistant:

"What are the current active fundamental calls on Rumble?"

"Get full details for call_id_here"

"Show me just the performance and updates for that symbol"

"Get the Bottom Fisher portfolio"


Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | RUMBLE_FIREBASE_TOKEN | ✅ Yes | Your Firebase ID token from therumble.app | | RUMBLE_REFRESH_TOKEN | ✅ Yes | Your Firebase refresh token for auto-renewal | | RUMBLE_MARKET | No | Market code (default: EGY for Egypt) |


Development

# Clone and setup
git clone https://github.com/AndrewHossam/rumble-mcp.git
cd rumble-mcp
npm install

# Development mode (hot reload)
npm run dev

# Build for production
npm run build

# Run tests
npm test

Developer Workflow & Safety

This project includes automated safety checks to prevent breaking changes:

  • Pre-commit Hooks: Automatically builds the project before every commit to catch syntax and type errors.
  • CI/CD: GitHub Actions automatically verifies builds and types on every push and pull request.
  • Publish Safety: The project is locked to automatically run a fresh build before npm publish to ensure users always get the latest code.

Support & Sponsorship

If you find this MCP useful, consider supporting the project:

License

MIT © 2026