Sell The News
Real-time US stock market news, r/wallstreetbets sentiment, options GEX & max pain, daily recaps
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"sellthenews": {
"url": "https://mcp.sellthenews.org/mcp"
}
}
}Puntos de conexión remotos
https://mcp.sellthenews.org/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (14)
🟢get_live_news(limit, offset, lang, sources, marketOnly, ...)
Get the latest live financial news from major sources (Wall Street Journal, New York Times, Bloomberg, Financial Times, CNBC, Reuters, Yahoo Finance). Returns pinned headlines (top stories, at offset=0 only) and recent news cards. Each card includes source name, timestamp (ET), title, full article text, and relevant stock tickers. By default, cross-source duplicates of the same story are folded into one card and the other outlets covering it are listed under 'Also reported by' (pass clusterDedupe=false to get every outlet's card separately). Use the 'before' cursor from previous responses to paginate forward through older news.
Esquema de entrada
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"minimum": 1,
"maximum": 20,
"description": "Number of news items per page (1-20). Default: 15"
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Pagination offset. 0 = first page with pinned news. Default: 0"
},
"lang": {
"type": "string",
"enum": [
"en",
"zh"
],
"description": "Article language. 'en' = English, 'zh' = Chinese. Default: 'en'"
},
"sources": {
"type": "string",
"description": "Comma-separated source filter. Valid values: wsj, nyt, bloomberg, ft, cnbc, reuters, yahoo. Omit for all sources."
},
"marketOnly": {
"type": "boolean",
"description": "Filter to market/finance-relevant stories only, dropping general politics, sports and lifestyle coverage. Use when the user wants pure market news. Default: false (all news)."
},
"clusterDedupe": {
"type": "boolean",
"description": "When several outlets report the SAME story, fold them into ONE card and list the others under 'Also reported by' (cross-source corroboration) instead of returning near-duplicate cards. Keeps the feed concise. Default: true. Set false only when you need each outlet's separate wording/framing, or want to gauge how many outlets covered a story."
},
"aiSummary": {
"type": "boolean",
"description": "Return a concise AI-written summary (~80 words) in place of each article's full body. Use it to scan many stories quickly or to save tokens; keep false (full text) when you need to quote or deeply analyze the complete article. Default: false."
},
"liveOnly": {
"type": "boolean",
"description": "Return only real-time live-coverage cards (breaking, fast-moving updates) and hide long-form analysis articles (Bloomberg Latest and the outlets' standalone articles). Use when the user wants the latest developments as they happen. Default: false (includes both live cards and articles)."
},
"before": {
"type": "string",
"description": "Time cursor for forward pagination. Pass the 'time' value of the last item from a previous response. Format: 'YYYY-MM-DD HH:MM:SS ET'"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_wsb_analysis(lang, offset, run)
Get the AI-generated analysis report of r/wallstreetbets daily discussion threads. Reports cover market sentiment, trending tickers, notable trades, community mood, and contrarian signals. Each day may have multiple analysis runs as new comments accumulate. Use 'offset' to step back through earlier report posts and 'run' to view a specific analysis run of one post.
Esquema de entrada
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"enum": [
"en",
"zh"
],
"description": "Report language. 'en' = English, 'zh' = Chinese. Default: 'en'"
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Report-post offset, newest first: 0 = the latest daily-discussion post, 1 = the one before, etc. A trading day usually has 2 posts, so this is not a day count. Default: 0"
},
"run": {
"type": "number",
"minimum": 0,
"description": "Specific analysis run index within a day (0-indexed). Each day may have multiple runs as new comments come in. Omit for the latest run."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_wsb_discussion(limit, date)
Get raw Reddit comments from the r/wallstreetbets daily discussion thread. Returns comments in a compact threaded format: [score] comment_text, with 2-space indentation for each reply level. Low-quality comments (negative score, very short low-score posts, bot commands) are automatically filtered out. Useful for directly analyzing retail investor sentiment, popular tickers, and trading ideas.
Esquema de entrada
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"minimum": 1,
"maximum": 1500,
"description": "Maximum number of comments to return (1-1500). Default: 500"
},
"date": {
"type": "string",
"description": "Specific date to get comments for (format: YYYY-MM-DD). Omit for latest available discussion."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_stock_news(ticker, limit, offset)
Get recent news articles for a specific stock ticker symbol. Articles are sourced from Google News and other financial news aggregators. Returns article titles, publication dates, source names, and URLs. Covers US-listed symbols only (non-US listings such as 9988.HK or 000660.KS are not available). If the ticker is not yet tracked, the system will automatically fetch and index its news on first request (may take a few seconds).
Esquema de entrada
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g. 'AAPL', 'TSLA', 'NVDA'). Case-insensitive."
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 20,
"description": "Number of articles to return (1-20). Default: 15"
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Pagination offset. Default: 0"
}
},
"required": [
"ticker"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_options_data(ticker, expiration, greeks, maxStrikes)
Get options chain data and Greek exposure analysis for a stock ticker. Includes spot price, available expiration dates, key levels (gamma flip, call/put walls, max pain, net GEX, bullish score, implied move, P/C OI ratio, total OI/volume), human-readable positioning insights, and per-strike net Greek exposure profiles. Supported Greeks: gamma, vanna, charm, delta, theta, vega. Useful for analyzing options market positioning, dealer hedging flows, and identifying key support/resistance levels.
Esquema de entrada
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g. 'SPY', 'AAPL', 'QQQ'). Case-insensitive."
},
"expiration": {
"type": "string",
"description": "Specific expiration date (YYYY-MM-DD). Omit for nearest available expiration."
},
"greeks": {
"type": "string",
"description": "Comma-separated Greek metrics to include. Valid: gamma, vanna, charm, delta, theta, vega, or 'all'. Default: 'gamma'"
},
"maxStrikes": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"description": "How many strikes to show per greek, chosen nearest to the spot price (the most trade-relevant ones). Higher = more complete gamma/greek profile but more tokens; lower = faster, cheaper, easier for small-context models. Default: 12 (compact). Use ~40 for the full profile, or ~6 for a quick glance. Key Levels and Insights are always included regardless."
}
},
"required": [
"ticker"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_news(query, lang, sources, limit, offset, ...)
Full-text search across all news articles from Wall Street Journal, New York Times, Bloomberg, Financial Times, CNBC, Reuters, Yahoo Finance. Powered by Meilisearch for fast, typo-tolerant search. Results can be filtered by source and sorted by relevance (default) or time. Native-language results are ranked higher when a language preference is set.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 100,
"description": "Search query string (2-100 characters)"
},
"lang": {
"type": "string",
"enum": [
"en",
"zh"
],
"description": "Language preference. Native-language results rank higher. Default: 'en'"
},
"sources": {
"type": "string",
"description": "Comma-separated source filter. Valid: wsj, nyt, bloomberg, ft, cnbc, reuters, yahoo. Omit for all sources."
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 20,
"description": "Number of results per page (1-20). Default: 15"
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Pagination offset. Default: 0"
},
"sort": {
"type": "string",
"enum": [
"relevance",
"time"
],
"description": "Sort order: 'relevance' (default) or 'time' (newest first)"
},
"marketOnly": {
"type": "boolean",
"description": "Filter to market/finance-relevant results only, dropping general politics/lifestyle coverage. Default: false."
},
"aiSummary": {
"type": "boolean",
"description": "Return a concise AI-written summary instead of each result's full article body (fewer tokens, faster scanning); keep false when you need the complete text. Default: false."
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_trump_posts(lang, limit, offset, showAll)
Get recent posts from Donald Trump's Truth Social account (@realDonaldTrump). Each post includes AI-generated stock market impact analysis identifying affected tickers and predicted price directions. By default only returns posts with identified market impact; set showAll=true to include all posts. Use offset to paginate through older posts.
Esquema de entrada
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"enum": [
"en",
"zh"
],
"description": "Language for the market impact analysis text. 'en' = English, 'zh' = Chinese. Default: 'en'"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 20,
"description": "Number of posts to return (1-20). Default: 5"
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Pagination offset. Default: 0"
},
"showAll": {
"type": "boolean",
"description": "If true, show all posts including those without market impact. Default: false (market-impact posts only)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_dd_list(lang, limit, offset)
List the most recent r/wallstreetbets DD (Due Diligence) posts that have been AI-analyzed. Returns titles only (AI-generated headline + Reddit title), affected tickers with sentiment (bullish/bearish/mixed/neutral), score, comment count, and a postId you can pass to get_dd_post for the full analysis. Cheap to call — no analysis bodies are returned. Use get_dd_post or search_dd to drill into a specific thread.
Esquema de entrada
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"enum": [
"en",
"zh"
],
"description": "Headline + ticker sentiment language. Default: 'en'"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 50,
"description": "Number of posts per page (1-50). Default: 10"
},
"offset": {
"type": "number",
"minimum": 0,
"maximum": 1000,
"description": "Pagination offset (0-1000). Default: 0"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_dd_post(postId, lang)
Get the full bilingual AI analysis for one r/wallstreetbets DD post. Returns: AI-generated title, post summary (author's thesis + evidence + holes), discussion summary (top-rated rebuttals, OP responses, irony detection), affected tickers with sentiment, and a fact-check list — each fact-check item has a status (supported / questionable / unsupported / unclear) and source URLs when available. The original Reddit selftext is also included for context. Discover postId via get_dd_list or search_dd.
Esquema de entrada
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"pattern": "^[a-z0-9_-]{2,32}$",
"description": "Reddit post id, e.g. '1tbev9x'. Get from get_dd_list or search_dd."
},
"lang": {
"type": "string",
"enum": [
"en",
"zh"
],
"description": "Analysis language. 'en' = English, 'zh' = Chinese. Default: 'en'"
}
},
"required": [
"postId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡search_dd(query, lang, limit, offset)
Full-text search across r/wallstreetbets DD analyses (separate from /search which only covers news). Powered by Meilisearch, typo-tolerant. Indexes AI title, original Reddit title, tickers, post summary, discussion summary, fact-check claims, and selftext (both languages). Returns titles + tickers only; pass the returned postId to get_dd_post for the full analysis.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 100,
"description": "Search query (2-100 chars). Try a ticker, theme, or keyword."
},
"lang": {
"type": "string",
"enum": [
"en",
"zh"
],
"description": "Headline language preference. Default: 'en'"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 30,
"description": "Results per page (1-30). Default: 10"
},
"offset": {
"type": "number",
"minimum": 0,
"maximum": 1000,
"description": "Pagination offset (0-1000). Default: 0"
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_news_recaps(level, limit, offset)
Discover which precomputed AI news recaps are available through the website Time Machine API. Use this automatically when a user asks what AI market recaps exist, asks for an unspecified historical daily/weekly/intraday recap, or needs valid dates/weekIds before calling a detail tool. This returns lightweight metadata only from the website Time Machine API: recap type, date or ISO week, and intraday bucket count. It does not return full narratives. For full text, call get_intraday_news_recaps, get_daily_news_recap, or get_weekly_news_recap using the returned date/weekId/bucketId. Dates are US Eastern calendar dates. Weekly recaps use ISO weeks in YYYY-Www format, Monday through Sunday.
Esquema de entrada
{
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"all",
"intraday",
"daily",
"weekly"
],
"description": "Filter the discovery results. Default: 'all'. Use 'intraday' for same-day buckets, 'daily' for end-of-day reports, 'weekly' for ISO-week reports."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 60,
"description": "Maximum number of metadata rows to return (1-60). Default: 30."
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000,
"description": "Pagination offset after filtering and sorting latest-first (0-1000). Default: 0."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_intraday_news_recaps(lang, date, bucketId, limit, offset)
Get precomputed AI intraday news recap buckets from the database. Use this when the user asks for intraday news analysis, same-day market narrative, what happened during the trading day, or a specific recap bucket. If bucketId is provided, this returns exactly that bucket. Otherwise it returns all buckets for date, ordered chronologically. If neither date nor bucketId is provided, it automatically returns the latest date that has intraday recap data, so the AI does not need to ask the user for a date first. Returned fields include bucket time window in US Eastern Time, source/news counts, headline, market narrative, and affected tickers. This is read-only and never triggers new AI analysis.
Esquema de entrada
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"enum": [
"en",
"zh"
],
"description": "Recap language. 'en' = English, 'zh' = Chinese. Default: 'en'."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "US Eastern calendar date to fetch, e.g. 2026-05-12. Omit to use the latest date with intraday data. Ignored when bucketId is provided."
},
"bucketId": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}ET$",
"description": "Exact intraday bucket id returned by list_news_recaps, e.g. 2026-05-12T14:30ET. Use this for a single bucket."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Maximum buckets to return when bucketId is omitted (1-20). Default: 10."
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Bucket pagination offset for the selected date (0-100). Default: 0."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_daily_news_recap(lang, date, includeIntraday)
Get one precomputed AI daily news recap from the database. Use this when the user asks for a daily market recap, today's/yesterday's AI news summary, end-of-day narrative, or what mattered on a specific date. If date is omitted, this automatically returns the latest date with a daily recap, so the AI can answer without asking the user to choose a date. The daily recap synthesizes that date's intraday recap buckets into one market narrative. Set includeIntraday=true only when the user asks how the daily recap was built or wants the source intraday bucket headlines.
Esquema de entrada
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"enum": [
"en",
"zh"
],
"description": "Recap language. 'en' = English, 'zh' = Chinese. Default: 'en'."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "US Eastern calendar date, e.g. 2026-05-12. Omit to get the latest available daily recap."
},
"includeIntraday": {
"type": "boolean",
"description": "If true, append source intraday bucket ids and headlines. Default: false."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_weekly_news_recap(lang, weekId, date, includeDaily)
Get one precomputed AI weekly news recap from the database. Use this when the user asks for a weekly market recap, this week's/last week's AI news summary, or the dominant market themes across a week. Weekly recaps follow ISO week ids in YYYY-Www format and cover Monday through Sunday in US Eastern dates. If weekId is provided, it is used directly. If date is provided, the tool returns the week containing that date. If neither weekId nor date is provided, this automatically returns the latest available weekly recap. Set includeDaily=true only when the user asks for the day-by-day inputs or wants daily source headlines.
Esquema de entrada
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"enum": [
"en",
"zh"
],
"description": "Recap language. 'en' = English, 'zh' = Chinese. Default: 'en'."
},
"weekId": {
"type": "string",
"pattern": "^\\d{4}-W\\d{2}$",
"description": "ISO week id, e.g. 2026-W19. Takes precedence over date when both are supplied."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "US Eastern date inside the desired week, e.g. 2026-05-12. Ignored when weekId is supplied."
},
"includeDaily": {
"type": "boolean",
"description": "If true, append source daily recap dates and headlines. Default: false."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia