MCP server for TheRumble.app investment research data
npm install rumble-mcp



> ⚠️ 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).
| 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 |
bash
npx rumble-mcp
`$3
`bash
npm install -g rumble-mcp
`$3
`bash
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:
`bash
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
$3
1. Click the Install in VS Code button above, or
2. Open Settings (
Cmd+,) → search "MCP" → Add server configuration:`json
{
"mcp": {
"servers": {
"rumble": {
"command": "npx",
"args": ["rumble-mcp"],
"env": {
"RUMBLE_FIREBASE_TOKEN": "your_firebase_token",
"RUMBLE_REFRESH_TOKEN": "your_refresh_token",
"RUMBLE_MARKET": "EGY"
}
}
}
}
}
`$3
1. Click the Install in Cursor button above, or
2. Go to Settings → MCP Servers → Add:
`json
{
"rumble": {
"command": "npx",
"args": ["rumble-mcp"],
"env": {
"RUMBLE_FIREBASE_TOKEN": "your_firebase_token",
"RUMBLE_REFRESH_TOKEN": "your_refresh_token",
"RUMBLE_MARKET": "EGY"
}
}
}
`$3
Edit
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):`json
{
"mcpServers": {
"rumble": {
"command": "npx",
"args": ["rumble-mcp"],
"env": {
"RUMBLE_FIREBASE_TOKEN": "your_firebase_token",
"RUMBLE_REFRESH_TOKEN": "your_refresh_token",
"RUMBLE_MARKET": "EGY"
}
}
}
}
`$3
`bash
claude mcp add rumble -- npx rumble-mcp
`Then set your tokens:
`bash
export RUMBLE_FIREBASE_TOKEN="your_firebase_token"
export RUMBLE_REFRESH_TOKEN="your_refresh_token"
export RUMBLE_MARKET="EGY" # Optional, defaults to EGY
`$3
Most MCP-compatible clients follow a similar pattern:
`json
{
"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 |$3
* Parameters: callId (required), type (optional: fundamental/technical), sections (optional: ["story", "performance", "updates", "news"])
* Example:
`json
{"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
`bash
Clone and setup
git clone https://github.com/AndrewHossam/rumble-mcp.git
cd rumble-mcp
npm installDevelopment mode (hot reload)
npm run devBuild for production
npm run buildRun tests
npm test
`$3
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.
---
If you find this MCP useful, consider supporting the project:
- Sponsor on Open Collective (International)
- Support via TipTea (Egypt Local: InstaPay / Vodafone Cash)
MIT © 2026
---
Made with ❤️ for the Egyptian investment community