FinBERT news sentiment and price history for 42 crypto, FX, stock, ETF and commodity tickers.
One address for any MCP client. No sign-in needed on this server.
6 read
Grouped by tool name. At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Full-stack crypto sentiment intelligence platform. Scrapes financial news headlines, scores them with FinBERT (a finance-specific transformer model), and correlates sentiment against live GBP crypto prices to surface predictive signals.
Live: sentimentfx.org · app.sentimentfx.org · developers.sentimentfx.org
positive_prob - negative_prob → range -1 to +1)| Layer | Technology |
|---|---|
| Backend | Python 3.11, FastAPI, SQLAlchemy |
| AI Model | FinBERT (ProsusAI/finbert) |
| Database | PostgreSQL |
| Auth | Supabase (email + Google OAuth) |
| Payments | Stripe (subscriptions + metered API billing) |
| Frontend | React, Recharts, Vite |
| Data | GNews API, feedparser (RSS), yfinance |
| Resend | |
| Deploy | Railway (backend), Vercel (frontend) |
Dashboard
Tickers: BTC, ETH, SOL, XRP, DOGE
Access tiers
Developer API (api.sentimentfx.org/v1/)
/v1/sentiment/{ticker} — scored headlines/v1/summary/{ticker} — daily averaged sentiment/v1/prices/{ticker} — daily GBP closing prices/v1/correlation/{ticker} — Pearson r across lag periodsGNews API + RSS feeds
↓
scraper.py → FinBERT (sentiment.py) → headlines table
↓
yfinance → prices.py → prices table /dashboard/{ticker}
↓
React + Recharts
APScheduler runs scrape_all() on a cron trigger at the top of every hour.
cd backend
python -m venv venv
source venv/Scripts/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # fill in your keys
python -m uvicorn app.main:app --reload
cd frontend
npm install
npm run dev
Uses FinBERT's output probabilities directly:
score = positive_probability - negative_probability
Range: -1 (maximally negative) to +1 (maximally positive). Neutral headlines score near 0. This avoids the label × confidence collapse that zeros out neutral predictions.
Full docs at developers.sentimentfx.org
# Generate a free API key
curl -X POST https://api.sentimentfx.org/api/keys/generate \
-H "Content-Type: application/json" \
-d '{"email": "your@email.com"}'
# Use the key
curl https://api.sentimentfx.org/v1/summary/BTC \
-H "X-API-Key: sfx_your_key_here"
Procfile + nixpacks.toml. Starts with uvicorn app.main:app --host 0.0.0.0 --port $PORT.main.