StockTwits MCP has well-structured tool definitions with clear descriptions and proper JSON schemas. All 9 tools have names, descriptions, and input schemas with typed properties. However, parameter descriptions are minimal or absent (most params lack individual descriptions), output schemas are undocumented, and error handling lacks recovery guidance. Naming follows verb_noun convention (symbol_stream, user_stream, trending_symbols) but some names are ambiguous (trending_symbols vs suggested_symbols distinction unclear without reading full descriptions). No tool annotations (readOnlyHint, destructiveHint) despite all being read-only operations.
"Chart data for [ticker]" / "sparkline data for [stock]" — price sparkline data for a ticker from StockTwits. Use for embedded thumbnail charts; prefer dedicated finance packs (yahoo-finance, alphavantage) for serious price analysis.
StockTwits editorially curated trending equities — a hand-picked selection distinct from raw-volume trending_symbols. Returns symbol tickers, names, and watch counts. Use when you want editorial picks rather than algorithmic social-volume rank.
"Look up StockTwits ticker for [company]" / "search for symbol on StockTwits" — symbol search on StockTwits to confirm a ticker exists or find variant tickers (e.g. crypto, ETFs).
"What are people saying about [ticker]" / "StockTwits sentiment for [TICKER]" / "retail / WSB / Twitter chatter on [stock]" / "Stocktwits feed for [symbol]" — recent messages mentioning a ticker on StockTwits (the largest finance-focused social-media platform). Returns user posts with bullish/bearish sentiment tags, timestamps, like counts. Use for retail-investor sentiment, social-volume tracking, contrarian signal.
"Most popular posts on StockTwits right now" / "trending stock chatter" — most-engaged-with messages across all StockTwits streams. Use for general market-zeitgeist sense-making.
Parameter descriptions missing or minimal. Properties like 'since', 'max', 'limit', 'filter', 'period', 'q' lack individual descriptions in inputSchema. LLMs cannot infer parameter semantics from names alone.
Output schemas undocumented. No specification of what fields are returned (e.g., symbol_stream returns messages with sentiment, timestamps, likes, but this is only in the description, not in a structured output schema). LLMs cannot plan downstream calls without knowing response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
"What stocks are trending today" / "most talked-about tickers" / "hot stocks on social media" / "WSB / retail trending names" — top trending tickers on StockTwits by message volume right now. Use for retail-attention scans, meme-stock detection, social-momentum trading.
Recent StockTwits posts from a specific user (by user_id string). Supports since/max cursor pagination and a limit cap. Returns messages with sentiment tags, timestamps, and ticker cashtags. Use to follow a particular trader's commentary stream.
Recent StockTwits messages for all tickers in a specific watchlist (by watchlist_id). Supports since/max cursor pagination and a limit cap. Use to track social chatter across a curated list of symbols in one call.
List a StockTwits user's public watchlists by user_id. Returns watchlist IDs, names, and ticker counts. Use to discover a trader's followed symbols; then pass a watchlist_id to the watchlist tool for the message stream.
No tool annotations. All 9 tools are read-only (no state modification), but none declare readOnlyHint. This prevents agents from understanding safety properties and optimizing execution (e.g., safe to retry, safe to parallelize).
Error handling lacks recovery guidance. callTool() throws generic errors ('StockTwits: 429 rate limit', 'StockTwits: 404, symbol/user/watchlist not found') without actionable next steps. LLMs cannot self-correct or retry intelligently.
Naming ambiguity: 'trending_symbols' vs 'suggested_symbols' distinction is unclear from names alone. Both return trending tickers; descriptions clarify that suggested_symbols are editorially curated, but LLMs may conflate them. Consider 'trending_symbols_by_volume' and 'curated_trending_symbols'.