sellthenews-mcp
A read-only MCP server that provides access to financial news, Wall Street Bets sentiment analysis, and detailed options data from sellthenews.org. It enables LLMs to retrieve real-time news feeds, search historical data, and analyze options chains or Greek exposure for specific tickers.
README
sellthenews-mcp
A read-only MCP (Model Context Protocol) server that wraps sellthenews.org API endpoints, making financial news and options data available as tools for LLMs like Claude.
Architecture
sellthenews.org API → Adapters → Services → MCP Tools & Resources
Four layers, each with one job:
| Layer | What it does | Files |
|---|---|---|
| Domain | Defines TypeScript types for all data shapes | src/domain/*.types.ts |
| Adapters | Fetch raw JSON from upstream APIs (no processing) | src/adapters/*.adapters.ts |
| Services | Normalize raw data into clean domain objects | src/services/*.service.ts |
| MCP | Expose tools and resources to LLM clients | src/mcp/*.tools.ts |
Data flows left to right: the MCP layer calls services, services call adapters, adapters call the HTTP client.
Upstream APIs
| Endpoint | Description |
|---|---|
GET /api/live/recent |
Latest news feed with pinned stories |
GET /api/wsb/latest |
Wall Street Bets daily analysis snapshot |
GET /api/search |
Keyword-based news search |
GET /api/options/chain |
Options chain, GEX, and greek exposure |
MCP Tools
| Tool | Description | Key inputs |
|---|---|---|
get_recent_news |
Latest news stories | limit, offset, lang, sources, marketOnly |
get_wsb_snapshot |
WSB daily analysis | lang |
search_news |
Search news by keyword | query, limit, offset, lang, sources, sort |
get_options_chain |
Full options chain for a ticker | ticker, expiration, greeks |
get_options_summary |
Concise options exposure summary | ticker |
MCP Resources
| URI | Description |
|---|---|
sellthenews://news/recent |
Latest news feed (ambient context) |
sellthenews://wsb/latest |
Latest WSB snapshot (ambient context) |
Setup
npm install
npm run build
Run Locally
npm start
The server runs over stdio, so it is meant to be launched by an MCP client such as Claude Desktop or an MCP inspector rather than opened in a browser.
For private single-user compatibility testing, the HTTP client can also read SELLTHENEWS_USER_AGENT, SELLTHENEWS_COOKIE, SELLTHENEWS_ACCEPT_LANGUAGE, and SELLTHENEWS_REFERER from the environment and forward them as request headers when present.
Usage with Claude Desktop
Add this to your Claude Desktop MCP config file. On macOS it's at ~/Library/Application Support/Claude/claude_desktop_config.json, on Windows it's at %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"sellthenews": {
"command": "node",
"args": ["/REPLACE/WITH/YOUR/ACTUAL/PATH/sellthenews_MCP/dist/index.js"]
}
}
}
Important: Replace the path above with the actual absolute path to
dist/index.json your machine. For example, on Windows it might beC:\\Users\\yourname\\Desktop\\sellthenews_MCP\\dist\\index.js.
Project Structure
src/
domain/
shared.types.ts # Common types (SourceInfo, TickerMention, etc.)
news.types.ts # News domain: raw API types + clean domain types
options.types.ts # Options domain: raw API types + clean domain types
infra/
http-client.ts # HTTP client wrapping fetch()
adapters/
news.adapters.ts # 3 news adapters (live/recent, wsb, search)
options.adapters.ts # 1 options adapter (options/chain)
services/
news.service.ts # News normalization logic
options.service.ts # Options normalization logic
mcp/
news.tools.ts # News MCP tools + resources + Zod schemas
options.tools.ts # Options MCP tools + Zod schemas
index.ts # Entry point: wires layers, starts server
Current Status
Stage 2A is complete. The repository now performs real upstream GET requests, normalizes raw responses into domain objects, and exposes live MCP tools/resources that return consistent JSON text.
Implemented now:
HttpClient.get()with URL building, timeout handling, JSON parsing, and clearer error messages- Real adapters for all four identified sellthenews endpoints
- Service-layer normalization for news feeds, WSB snapshots, options chains, and options summaries
- Live MCP tool and resource handlers wired to the service layer
- Optional env-driven compatibility headers for private single-user testing when plain server-side requests hit upstream protection
Still pending:
- Automated tests for adapters, services, and MCP smoke coverage
- Better operational hardening if upstream failures or Cloudflare issues show up in practice
- Stage 3 concerns such as caching, rate limiting, and production logging
Quick Smoke Check
- Run
npm run build - Run
npm start - Connect the server from Claude Desktop or an MCP inspector
- Call
get_recent_newswith{ "limit": 2 }orget_options_summarywith{ "ticker": "MU" }
If upstream access works, the response should be pretty-printed JSON instead of placeholder text.
If upstream blocks plain server-side requests, retry your local run with SELLTHENEWS_USER_AGENT, SELLTHENEWS_COOKIE, SELLTHENEWS_ACCEPT_LANGUAGE, and SELLTHENEWS_REFERER set in the environment as needed.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。