loading…
Search for a command to run...
loading…
Provides AI assistants with access to TheRumble.app investment research data for the Egyptian stock market (EGX), including fundamental calls, technical calls,
Provides AI assistants with access to TheRumble.app investment research data for the Egyptian stock market (EGX), including fundamental calls, technical calls, track records, and portfolios.
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).
| 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 RSP |
npx rumble-mcp
npm install -g rumble-mcp
git clone https://github.com/AndrewHossam/rumble-mcp.git
cd rumble-mcp
npm install && npm run build
npm link # Makes 'rumble-mcp' globally available
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?
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"
}
}
}
}
}
{
"rumble": {
"command": "npx",
"args": ["rumble-mcp"],
"env": {
"RUMBLE_FIREBASE_TOKEN": "your_firebase_token",
"RUMBLE_REFRESH_TOKEN": "your_refresh_token",
"RUMBLE_MARKET": "EGY"
}
}
}
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 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
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"
}
}
| 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 | Fundamental track record (avg return, alpha vs index, holding period) |
get_technical_track_record |
Insights | Technical track record (hit ratio, avg win/loss, holding period) |
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 UsagecallId (required), type (optional: fundamental/technical), sections (optional: ["story", "performance", "updates"]){"callId": "call_id_here", "sections": ["performance", "updates"]}
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"
| Variable | Required | Description |
|---|---|---|
RUMBLE_FIREBASE_TOKEN |
✅ Yes | Your Firebase ID token from therumble.app |
RUMBLE_REFRESH_TOKEN |
Recommended | Firebase refresh token for automatic token renewal |
RUMBLE_MARKET |
No | Market code (default: EGY for Egypt) |
RUMBLE_DEVICE_ID |
No | Stable device ID for request headers (auto-generated if omitted) |
RUMBLE_SESSION_ID |
No | Stable session ID for request headers (auto-generated if omitted) |
FIREBASE_API_KEY |
No | Public Firebase Web API key for token refresh (falls back to the built-in default) |
# 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
This project includes automated safety checks to prevent breaking changes:
npm publish to ensure users always get the latest code.If you find this MCP useful, consider supporting the project:
MIT © 2026
Made with ❤️ for the Egyptian investment community
Выполни в терминале:
claude mcp add rumble-mcp -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.