opennews-mcp
An MCP server that plugs AI agents into 85+ real-time crypto and finance news feeds, complete with AI impact scores, trading signals, and live WebSocket updates.
Repository Health
Technical Analysis
OpenNews MCP is a Model Context Protocol server that exposes the 6551.io financial data platform to any MCP-compatible AI assistant, such as Claude Code or OpenClaw. Instead of scraping headlines one site at a time, an agent gets structured access to 85+ upstream sources spanning six engine categories: mainstream and crypto-native news outlets (Bloomberg, Reuters, CoinDesk, The Block), exchange listing announcements, on-chain whale-trade alerts, meme-coin sentiment, quantitative market anomaly signals (funding rate spikes, large liquidations), and AI-generated prediction signals like smart-money tracking and correlation detection.
Every article that comes back through the paid tier is pre-processed with an AI impact score (0-100) and a long/short/neutral trading signal, plus bilingual English/Chinese summaries, so an agent can filter for what actually matters instead of re-reading raw text. A free, unauthenticated tier covers basic categorized news and hot topics for agents that don’t want to sign up for a token. Beyond news, the server also exposes finance-research tools that are unusual for a project this size: SEC/DART filing lookups, 13F institutional holdings, House stock-trade disclosures, and on-chain treasury tracking for a resolved company or wallet.
The project is a thin, well-scoped Python wrapper: a FastMCP app, one HTTP/WebSocket client module talking exclusively to ai.6551.io, and a set of @mcp.tool() functions grouped by concern (discovery, free news, authenticated news, strategy, finance, realtime). There’s no local database or state beyond an in-memory client — it is a pass-through client for the 6551 platform’s REST and WebSocket API, not a self-contained aggregator.
What You Get
- A discovery layer (
get_news_sources,list_news_types) that returns the full tree of 85+ sources across 6 engine categories before you query anything - Keyword, coin-symbol, and multi-filter search tools (
search_news,search_news_by_coin,search_news_advanced) hitting a single/open/news_searchendpoint - AI-scored filtering via
get_high_score_newsandget_news_by_signalto surface only high-impact or directionally actionable articles - A free, no-token tier (
get_news_categories,get_hot_news) for basic categorized news without signing up for an API key - Real-time streaming through
subscribe_latest_news, a WebSocket subscription with coin and engine-type filters and a bounded collection window - A finance-research toolset layered on top of news: company search/info/report-text, macro event calendars, House PTR stock-trade disclosures, 13F institutional holdings, and on-chain treasury tracking
Common Use Cases
- Wiring an AI trading-research assistant to pull AI-rated, signal-tagged headlines instead of raw RSS feeds
- Building a crypto market-monitoring agent that watches exchange listings, whale trades, and funding-rate anomalies in one place
- Cross-referencing breaking news with SEC filings or 13F institutional holdings for a named company inside the same agent session
- Streaming a live WebSocket feed of coin-filtered news into a bot or dashboard for real-time alerts
- Using the free tier to prototype a news-aware agent before committing to the paid 6551.io token
Under The Hood
Architecture
The server is a straightforward FastMCP application: app.py builds the FastMCP instance with a lifespan context manager that constructs three API client objects (a free unauthenticated client, an authenticated REST client, and a WebSocket client) and tears them down on shutdown; server.py just imports the tools package (whose module-level @mcp.tool() decorators self-register) and calls mcp.run() over stdio. Each tool module under src/opennews_mcp/tools/ (discovery, free, news, strategy, finance, realtime) owns one concern and reaches shared clients through ctx.request_context.lifespan_context, so adding a new capability means adding a new tool function rather than touching a central dispatcher. There’s no persistence layer; every tool call is a live pass-through request to the 6551.io backend, and swapping that backend would mean rewriting api_client.py rather than an isolated adapter, since the client classes are called directly rather than through an interface.
Tech Stack
Python 3.10+, built on the official mcp[cli] SDK’s FastMCP class, with httpx.AsyncClient for REST calls and the websockets library for the real-time subscription feed. Packaging uses Hatchling with a pyproject.toml-declared console script (opennews-mcp), and dependencies are pinned via uv.lock. Configuration layers environment variables over a config.json file (API base URL, WebSocket URL, token, max-rows cap), with env vars taking precedence — a pattern aimed at both local config.json editing and containerized/CI deployment.
Code Quality
There are no test files anywhere in the repository, no CI configuration, and no CONTRIBUTING guide — this reads as a young, single-purpose integration project rather than a hardened library. Error handling is consistent though: every tool wraps its API call in a try/except and returns a {"success": false, "error": ...} shape rather than letting exceptions propagate, and the HTTP client layer adds its own retry-on-connection-error logic before that. Naming is consistent and type hints are used throughout (Python’s Optional/dict[str, Any] style), but there’s no static type checking or linter configuration checked in.
What Makes It Unique Most open-source MCP news servers either scrape a fixed set of RSS feeds or wrap a single API. This one is a thin client for a purpose-built aggregation and scoring backend that already does AI impact-scoring and long/short signal classification server-side, so the MCP layer itself stays simple while still exposing genuinely differentiated data — on-chain whale-trade and large-position feeds, cross-exchange funding-rate divergence, and AI-driven correlation/insider-pattern predictions — categories that generic news-aggregator MCP servers don’t attempt. Bundling that with SEC/13F/House-disclosure finance-research tools in the same server is an unusual combination for a project this size.
Self-Hosting
Licensing Model MIT licensed — the MCP server code itself has no license-key gating or self-hosting restrictions.
Self-Hosting Restrictions
- The server code runs anywhere, but nearly every tool (news search, AI scoring, real-time WebSocket, finance-research endpoints) requires a bearer token from the proprietary 6551.io backend to return data — this is an external SaaS dependency, not something the MIT license or self-hosting removes
- A no-token “free” tier exists (
get_news_categories,get_hot_news) but covers only basic categorized news, not the AI scoring, signals, or finance-research tools
Enterprise Features None documented — 6551.io’s token appears to be free-to-obtain per the README (“get your free token”), with no separate paid enterprise tier mentioned in this repository.
License Key Required No license key for the software itself; an API token from 6551.io is required for the authenticated tools, obtained free at https://6551.io/mcp.
Related Apps
OpenClaw
AI Assistants · AI Agents
An open-source AI assistant that runs on your own hardware and meets you in Discord, Slack, WhatsApp, iMessage, Telegram, and 20+ other channels, with native apps for every major platform.
deepseek-harness
AI Agents · AI Development · Developer Tools
An open-source, plugin-based agent harness from DeepSeek AI that runs coding and automation agents across web, desktop, CLI, and SDK surfaces.
claw-code
AI Agents · AI Code Assistants
A Rust-built CLI agent harness for Claude AI with persistent sessions, MCP tool integration, plugin hooks, and multi-provider support — designed to run autonomous coding workflows without human babysitting.