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.

2.4K stars
186 forks
MIT License
Python

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
52 /100 Fair
Development Activity 68
Maintenance 28
Community 44
Maturity 28
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
62 /100 Good
Architecture 72
Code Quality 45
Innovation 62
Learning Curve 70

Dependency Health

Score based on the health, technical quality, freshness, and vulnerability profile of runtime dependencies. How we score it →
75 /100 Good
Library Repo Health 78
Library Technical Quality 90
Version Staleness 50
Vulnerabilities 47
Dependency Footprint 100

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_search endpoint
  • AI-scored filtering via get_high_score_news and get_news_by_signal to 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.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers