mcpField
R
Rot Trading Intelligence

Rot Trading Intelligence

Local
web-production-71423.up.railway.appFinance13Updated 2w ago

About Rot Trading Intelligence

Rot Trading Intelligence is a Reddit sentiment and signal pipeline for developers and options researchers. It extracts trending tickers, events, and credibility from posts and news, then produces an options idea or a reason not to trade; it is for research and education only.

Key features

  1. 01Read Reddit posts and RSS news
  2. 02Extract tickers, events, and sentiment
  3. 03Score post credibility
  4. 04Generate options ideas or reasons not to trade
  5. 05Provide a dashboard and REST and WebSocket APIs

Use cases

  1. 01Study Reddit sentiment as a stock signal
  2. 02Track post momentum and related market events
  3. 03Review the basis for trade ideas and rejections
  4. 04Demonstrate an NLP pipeline with sample posts

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"Reddit-Options-Trader-ROT-": {
"command": "npx",
"args": [
"-y",
"mcp-remote"
]
}
}
}
Run commandnpx -y mcp-remote

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-remote

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Reddit Options Trader (ROT)

English | 简体中文 | 日本語 | 한국어

A Python app that reads Reddit and market news, spots which stock tickers people are suddenly excited about, scores how trustworthy each post looks, and turns it into an options trade idea, or a clear reason not to trade. It is a Reddit sentiment and options signal pipeline with a web dashboard, a REST/WebSocket API and optional LLM reasoning (OpenAI, Anthropic or DeepSeek).

For developers and retail options traders who want to study Reddit sentiment as a signal, and for anyone curious how a social-media NLP pipeline is built end to end.

Project site · Try it · How it works · Examples · Full reference

Python 3.10+ License: MIT

Warning

Research and educational tool only. Not financial advice. ROT produces signals and trade ideas, not a tested strategy. Options can lose 100% of the premium paid, Reddit sentiment is noisy and often manipulated, and LLM reasoning can be confidently wrong. Broker integration defaults to paper trading.

The ROT web dashboard: signal counts, average confidence, a bullish/bearish/mixed split, a list of the latest signals with ticker, stance, confidence and an LLM-written summary, and trending tickers

The dashboard running locally (February 2026 screenshot, live Reddit data).

Try it in one command

No Reddit account, no API keys. The demo runs the real pipeline on five bundled sample posts:

git clone https://gitlab.com/mattbusel/Reddit-Options-Trader-ROT.git && cd Reddit-Options-Trader-ROT-
pip install -e . && python examples/demo.py

Python 3.10+. The sample posts in examples/sample/posts.json were written for the demo (they are not real Reddit posts); ticker checks and prices come from a Yahoo Finance snapshot saved on 2026-09-28, so it runs offline. Add --live for fresh prices.

To run the full app with live Reddit data and the dashboard, copy .env.example to .env, add your Reddit API keys, and run docker compose up --build (then open http://localhost:8000/dashboard). There is no hosted instance: the old Railway deployment is offline.

How it works

The nine pipeline stages as a snake of cards: ingest (5 posts), trend (4 trending, upvotes per second plus 2 times comments per second at least 0.01), tickers (3 with a ticker), event (3), validate and enrich (3 priced), credibility (3 scored 0 to 1), suppress (3 kept), reason with an LLM or stub (3), trade idea (3 records, 0 with legs). Below: earnings rumours are clamped to confidence 0.25, below the 0.30 bar; an unknown stance never trades; weekends block every trade.

In plain words, on every poll (Reddit is polled every 20 seconds by default):

  1. Ingest and trend. Posts come in from Reddit and RSS news feeds. A post "trends" when its upvotes and comments grow fast between two polls.
  2. Find the ticker and the story. A custom NLP engine pulls out $TSLA-style tickers, the kind of event (earnings rumour, product news, squeeze chatter...), the stance (bullish, bearish, mixed) and the time horizon. Tickers are checked against real market data.
  3. Score trust. A credibility score from 0 to 1 rewards DD posts, good subreddits and engagement, and penalises cross-posts, new accounts and pump-and-dump language.
  4. Reason and decide. An LLM (or a built-in stub when there is no key) writes a thesis, and the trade builder either proposes a structure (debit/credit spread, straddle...) or records why it will not trade.

Code: src/rot/app/runner.py (PipelineRunner.run_once). Diagram source: scripts/make_pipeline_svg.py.

Examples

Real output of python examples/demo.py on 2026-09-28 (stub reasoning, bundled market snapshot):

ROT demo: the real 9-stage pipeline on 5 sample posts (two polls, 10 minutes apart)
market data: bundled Yahoo Finance snapshot from 2026-09-28 (use --live for fresh data)
LLM reasoning: stub mode (no ROT_LLM_API_KEY)

pass 1: snapshots 5, candidates 0, events 0, trade_ideas 0
pass 2: snapshots 5, candidates 4, events 3, trade_ideas 3
  (pass 1 has nothing to compare with, so nothing can trend yet)

r/options  "NVDA DD: data center demand still outrunning supply into next quarter"
  poll: 420 -> 610 upvotes, 88 -> 131 comments
  event: earnings_rumor, bullish, horizon earnings, tickers NVDA
  credibility: 0.70   last close $228.86
  reasoning: Reddit chatter mentions NVDA; treat as unverified signal.
  trade idea: none (confidence_too_low)

r/wallstreetbets  "TSLA puts printing? Deliveries miss rumor going around"
  poll: 150 -> 390 upvotes, 60 -> 142 comments
  event: earnings_rumor, bearish, horizon unknown, tickers TSLA
  credibility: 0.45   last close $357.45
  reasoning: Reddit chatter mentions TSLA; treat as unverified signal.
  trade idea: none (confidence_too_low)

r/pennystocks  "This ticker is going to the moon 1000% guaranteed, get in before it ex"
  poll: 12 -> 40 upvotes, 9 -> 30 comments
  -> no signal (no valid ticker, or not trending)

r/stocks  "AMD earnings next week: what is priced in?"
  poll: 230 -> 300 upvotes, 75 -> 110 comments
  event: earnings_rumor, unknown, horizon earnings, tickers AMD
  credibility: 0.55   last close $607.87
  reasoning: Reddit chatter mentions AMD; treat as unverified signal.
  trade idea: none (unknown_stance)

r/investing  "How do you all think about rebalancing in a high-rate world?"
  poll: 80 -> 81 upvotes, 40 -> 41 comments
  -> no signal (no valid ticker, or not trending)

What it shows: the DD post on r/options scores highest (0.70) and the r/wallstreetbets rumour lowest (0.45); the hype post has no ticker and the calm question never trends, so both stop early; and ROT refuses to trade all three events, for the reasons it logs. Every stage also writes a JSONL audit trail. python examples/demo.py --keep leaves it on disk, for example:

{"run_id": "run_1790631982", "trade_idea": {"underlying": "AMD", "strategy": "none", "legs": [], "max_loss": 0.0, "thesis": "Reddit chatter mentions AMD; treat as unverified signal.", "time_stop": "N/A", "quality_score": 0.0, "do_not_trade_reasons": ["unknown_stance"], "meta": {}}, "ts": 1790631982}

Use it in 3 steps

  1. Run the demo above to see every stage on sample posts.
  2. Put your Reddit API keys (and optionally an LLM key) in .env, from .env.example.
  3. Start the app: docker compose up --build, or python -m rot.app.server after pip install -e ., and open http://localhost:8000/dashboard. API docs are at /docs.

Documentation

DocumentWhat is in it
docs/REFERENCE.mdEverything from the old long README: quickstart options, architecture, signal quality factors, configuration, options chain, API, lineage, brokers, risk monitor, tests, deployment, security, per-round feature notes
docs/architecture.mdPipeline stages and design decisions
docs/config.mdEvery ROT_* environment variable
docs/api-reference.mdREST and WebSocket endpoints
docs/nlp-engine.mdThe custom NLP engine
docs/deployment.mdDocker and self-hosting
SECURITY.md · CONTRIBUTING.md · CHANGELOG.mdSecurity policy, contributing, history

License

MIT, see LICENSE. Third-party licenses: THIRD_PARTY_LICENSES.md. Research and education only; the authors accept no liability for financial losses. Never risk capital you cannot afford to lose.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.