SentimentFX
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
FinBERT news sentiment and price history for 42 crypto, FX, stock, ETF and commodity tickers.
| Author | org.sentimentfx |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 200 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"SentimentFX": {
"url": "https://api.sentimentfx.org/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (6)
list_tickersList every asset SentimentFX tracks. Cheap (free — doesn't hit the billing meter). Returns two groups: `primary` (5 crypto + 7 FX pairs — the ones with full sentiment coverage across the primary RSS feeds), and `background` (US equities, ETFs, commodity futures — coverage is thinner but real). Use the exact ticker string from either group as the `ticker` arg to the other tools.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_usageIntrospect your API key: included allowance, remaining credits, and when they refill. Free keys get 1,000 calls per 30-day window starting at their first billable call (`resets_at` is null when no window is running); paid plans refill on the 1st of each month. Free — doesn't hit the billing meter. Useful before a large batch of `get_sentiment`/`get_summary` calls to check you have credit headroom.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_sentimentReturn the most recent FinBERT-scored news headlines for `ticker`. Each headline has a `sentiment_score` in [-1, +1] (positive_prob - negative_prob), a categorical `sentiment_label`, and a `source_kind` (news / reddit / stocktwits / x / youtube). Costs 1 API credit per 25 headlines actually returned — same billing as GET /v1/sentiment/{ticker}. An empty result costs nothing. `limit` is capped at 100. Social posts are kept separate from news: the default `sources="news"` returns editorial news, `"social"` returns only Reddit, StockTwits and X posts, and `"all"` returns both, labelled by `source_kind`. Titles come back reverse-chronological so the first item is the freshest.
Parameters:
ticker(required) — stringlimit— integersources— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_summaryReturn daily aggregated news sentiment for `ticker` over the last `days`. Each entry has `avg_sentiment` (unweighted mean of that day's scores), `article_count`, and a directional `label` (positive / negative / neutral, thresholded at ±0.1). `sources="social"` returns a separate daily average of Reddit, StockTwits and X posts; news and social are never averaged together. Costs 1 API credit per day actually returned — same as GET /v1/summary/{ticker}. A window with no coverage costs nothing.
Parameters:
ticker(required) — stringdays— integersources— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_pricesReturn daily close prices for `ticker` over the last `days`, in the ticker's native currency -- see the `currency` field on the response. Costs 1 API credit per day actually returned — same as GET /v1/prices/{ticker}. Prices come back reverse-chronological. Crypto is GBP (yfinance BTC-GBP etc.), FX pairs are a raw exchange rate in the pair's native convention (e.g. USDJPY is yen per dollar), and everything else (stocks/ETFs/commodity futures) is native USD -- there is no currency conversion.
Parameters:
ticker(required) — stringdays— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_correlation180-day Pearson correlation between daily sentiment shifts and next-day price returns for `ticker`. Returns Pearson `r`, `p_value`, `n_days` overlapping, a 95% confidence interval (Fisher z), and a categorical `strength` (strong / weak / inconclusive). Costs 1 API credit — same as GET /v1/correlation/{ticker}. Requires ≥30 overlapping day-pairs. Under that, returns a `note` field explaining what's missing so a caller can suggest waiting or switching to a higher-coverage ticker.
Parameters:
ticker(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.