News Aggregation · AI Ratings · Trading Signals · Real-time Updates
개요
OpenNews MCP Server 85+ Real-time Data Sources · 6 Engine Categories · AI Ratings · Trading Signals Replace /path/to/opennews-mcp with your local project path, and with your API token. Not sure if this MCP is safe? Send the following prompt to your AI assistant to review the source code before installing: All articles are with impact score (0-100), trading signal (long/short/neutral), and bilingual summaries (EN/ZH). News — 55 sources (engineType: "news") — Premium financial & crypto media, government agencies, social platforms Listing — 9 sources (engineType: "listing") — Token listing announcements from major exchanges OnChain — 2 sources (engineType: "onchain") — Hyperliquid whale trades and large position activity Meme — 1 source (engineType: "meme") — Meme coin social sentiment tracking
README
OpenNews MCP Server 85+ Real-time Data Sources · 6 Engine Categories · AI Ratings · Trading Signals
English | 中文 | 日本語 | 한국어
Quick Install
First, get your API Token at https://6551.io/mcp.
Claude Code
claude mcp add opennews \
-e OPENNEWS_TOKEN= \
-- uv --directory /path/to/opennews-mcp run opennews-mcp
Replace
/path/to/opennews-mcpwith your local project path, and `` with your API token.
OpenClaw
export OPENNEWS_TOKEN=""
cp -r openclaw-skill/opennews ~/.openclaw/skills/
Let AI Review and Install
Not sure if this MCP is safe? Send the following prompt to your AI assistant to review the source code before installing:
Copy the prompt below and paste it to your AI assistant (replace
andwith actual values):
Please help me review and install the opennews-mcp MCP server. The project is at .
Steps:
1. Review the security of the following files:
- src/opennews_mcp/api_client.py — Confirm it only connects to ai.6551.io, no data sent elsewhere
- src/opennews_mcp/config.py — Confirm token is only read from local config.json or env vars, not hardcoded or leaked
- src/opennews_mcp/tools/*.py — Confirm all tools only do API queries, no file writes, command execution, or dangerous operations
- pyproject.toml — Confirm dependencies are only mcp, httpx, websockets, no suspicious packages
2. Tell me your conclusion: Safe / Risky / Problematic, and the specific reasons
3. If safe, help me install (Token from https://6551.io/mcp):
claude mcp add opennews -e OPENNEWS_TOKEN= -- uv --directory run opennews-mcp
Data Sources — 85+ Sources Across 6 Categories
| Category | Count | Key Sources |
|---|---|---|
| News | 55 | Bloomberg, Reuters, Financial Times, CNBC, CNN, BBC, Fox Business, CoinDesk, Cointelegraph, The Block, Blockworks, Decrypt, DlNews, A16Z, TechCrunch, Wired, Politico, Business Insider, Twitter/X, Telegram, Weibo, Truth Social, U.S. Treasury, ECB, TASS, Handelsblatt, Welt, Ambrey, Morgan Stanley, PR Newswire, GlobeNewswire, Business Wire, Coinbase, and more |
| Listing | 9 | Binance, Coinbase, OKX, Bybit, Upbit, Bithumb, Robinhood, Hyperliquid, Aster |
| OnChain | 2 | Hyperliquid Whale Trade, Hyperliquid Large Position |
| Meme | 1 | Twitter meme coin social sentiment |
| Market | 6 | Price Change, Funding Rate, Funding Rate Difference, Large Liquidation, Market Trends, OI Change |
| Prediction | 12 | CORRELATION_LOGICAL, SMART_MONEY_TRADE, PRICE_SPIKE, CLUSTER_ENTRY, WHALE_POSITION, NEW_WALLET_TRADE, INSIDER_PATTERN, CORRELATION_NARRATIVE, CORRELATION_HEDGE, CORRELATION_ENTITY_GEO, CORRELATION_CAUSAL, SETTLEMENT_ARBITRAGE |
All articles are AI-analyzed with impact score (0-100), trading signal (long/short/neutral), and bilingual summaries (EN/ZH).
What Can It Do?
After connecting, just tell your AI assistant:
| You Say | It Does |
|---|---|
| “Latest crypto news” | Get latest articles |
| “Search SEC regulation news” | Full-text keyword search |
| “BTC related news” | Filter by coin |
| “Bloomberg articles” | Filter by source |
| “On-chain events” | Filter by engine type (onchain) |
| “Important news with AI score above 80” | High score filtering |
| “Bullish signals” | Filter by trading signal (long) |
| “Subscribe to real-time news” | WebSocket live updates |
Available Tools
| Category | Tool | Description |
|---|---|---|
| Discovery | get_news_sources |
Full engine tree — all 6 categories and 85+ sources with metadata |
list_news_types |
Flat list of all source codes for filtering | |
| Search | get_latest_news |
Latest articles across all 85+ sources |
search_news |
Full-text keyword search across all sources | |
search_news_by_coin |
By coin (BTC, ETH, SOL…) across all sources | |
get_news_by_source |
By specific source (e.g. engine_type=“news”, news_type=“Bloomberg”) | |
get_news_by_engine |
By category: news, listing, onchain, meme, market, prediction | |
search_news_advanced |
Multi-filter: coins + keywords + engine types combined | |
| AI | get_high_score_news |
High AI impact score articles (0-100 scale) |
get_news_by_signal |
By AI trading signal: long / short / neutral | |
| Finance | search_companies |
Search public company candidates by keyword, ticker, CIK, or fuzzy name |
get_company_info |
Resolve a company and list available SEC filings, research reports, transcripts, and financial fields | |
get_company_report_text |
Fetch SEC filing, third-party research report, or earnings-call transcript text | |
get_crypto_holdings |
Query wallet-visible on-chain holdings evidence for an institution or address | |
get_crypto_holding_changes |
Query adjacent-snapshot on-chain holdings changes | |
| Real-time | subscribe_latest_news |
WebSocket live feed with coin & engine type filters |
For a comprehensive usage guide with detailed examples, see Knowledge Guide.
Configuration
Get API Token
Get your API Token at https://6551.io/mcp.
Set environment variable:
# macOS / Linux
export OPENNEWS_TOKEN=""
# Windows PowerShell
$env:OPENNEWS_TOKEN = ""
| Variable | Required | Description |
|---|---|---|
OPENNEWS_TOKEN |
Yes | 6551 API Bearer Token (from https://6551.io/mcp) |
OPENNEWS_API_BASE |
No | Override REST API URL |
OPENNEWS_WSS_URL |
No | Override WebSocket URL |
OPENNEWS_MAX_ROWS |
No | Max results per request (default 100) |
Also supports config.json in project root (env vars take precedence):
{
"api_base_url": "https://ai.6551.io",
"wss_url": "wss://ai.6551.io/open/news_wss",
"api_token": "",
"max_rows": 100
}
WebSocket Real-time Subscriptions
Endpoint: wss://ai.6551.io/open/news_wss?token=YOUR_TOKEN
Subscribe to real-time crypto news updates.
Subscribe to News
{
"jsonrpc": "2.0",
"id": 1,
"method": "news.subscribe",
"params": {
"engineTypes": {
"news": ["Bloomberg", "CoinDesk"],
"onchain": []
},
"coins": ["BTC", "ETH"],
"hasCoin": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true,
"filters": {
"engineTypes": {...},
"coins": [...],
"hasCoin": true
}
}
}
Filter Parameters (all optional):
engineTypes: Object mapping engine type to news type codes- Key: Engine type (e.g.,
"news","onchain","listing","meme","market","prediction") - Value: Array of news type codes (e.g.,
["Bloomberg", "CoinDesk"]) - Empty array
[]means all news types under that engine - Use
list_news_typestool to get available codes
- Key: Engine type (e.g.,
coins: Array of coin symbols (e.g.,["BTC", "ETH"])- Filter news by specific coins
- Empty array
[]or omit to receive all coins
hasCoin: Boolean, if true only receive news with coin tags
Unsubscribe
{
"jsonrpc": "2.0",
"id": 2,
"method": "news.unsubscribe"
}
Server Push - News Update
When new news matches your filters, the server pushes:
{
"jsonrpc": "2.0",
"method": "news.update",
"params": {
"id": "unique-article-id",
"text": "Article title or content",
"newsType": "Bloomberg",
"engineType": "news",
"link": "https://...",
"coins": [
{
"symbol": "BTC",
"market_type": "cex",
"match": "title"
}
],
"ts": 1708473600000
}
}
Server Push - AI News Update
For news with AI analysis (if subscribed):
{
"jsonrpc": "2.0",
"method": "news.ai_update",
"params": {
"id": "unique-article-id",
"text": "Article title",
"newsType": "Bloomberg",
"engineType": "news",
"link": "https://...",
"coins": [
{
"symbol": "BTC",
"market_type": "cex",
"score": 85,
"signal": "long",
"grade": "A"
},
{
"symbol": "ETH",
"market_type": "cex",
"score": 45,
"signal": "short",
"grade": "B"
}
],
"aiRating": {
"score": 85,
"grade": "A",
"signal": "long"
},
"ts": 1708473600000
}
}
Server Push - Strategy Triggered
Requires Max subscription. Create and manage your strategies at https://www.newsliquid.com/strategy.
When a user-defined strategy is triggered (e.g., price alert, keyword match), the server pushes:
{
"jsonrpc": "2.0",
"method": "strategy.triggered",
"params": {
"id": 1234567890,
"newsType": "strategy",
"engineType": "market",
"text": "BTC funding rate 0.15%",
"link": "",
"source": "binance",
"description": "{...}",
"coins": [
{
"symbol": "BTC",
"market_type": "cex"
}
],
"ts": "2025-01-15T08:30:00Z",
"strategy": {
"id": 42,
"name": "BTC Funding Rate Alert",
"sourceType": "market",
"soundId": "alert-1",
"bgColor": "#FF6B35",
"metrics": {
"funding_rate_high": {
"value": 0.15,
"unit": "%"
}
}
},
"aiRating": {
"score": 85
}
}
}
Strategy Params Fields:
id: News/event IDengineType: Source engine type (market,news,onchain)text: Human-readable event descriptioncoins: Related coinsts: Event timestampstrategy.id: User strategy IDstrategy.name: Strategy namestrategy.sourceType: Strategy source typestrategy.soundId: Notification sound IDstrategy.bgColor: Notification background colorstrategy.metrics: Triggered metric values with unitsaiRating(optional): Present when the news has an AI score. Contains:score: 0-100 impact score
relatedAddress(optional): Related wallet address if applicable
Note: Strategy triggered events are pushed per-user via NATS. No explicit subscription is required — events are automatically delivered to the connected user who owns the strategy.
Note: Each coin in the coins array now includes individual AI ratings:
score: 0-100 impact score for this specific coinsignal:long/short/neutralfor this coingrade:A+/A/B+/B/Cfor this coin
The top-level aiRating.score represents the highest score among all coins.
Data Structure
Each article returns:
{
"id": "unique-article-id",
"text": "Title / Content",
"newsType": "Bloomberg",
"engineType": "news",
"link": "https://...",
"coins": [
{
"symbol": "BTC",
"market_type": "cex",
"match": "title",
"score": 85,
"signal": "long",
"grade": "A"
}
],
"aiRating": {
"score": 85,
"grade": "A",
"signal": "long",
"status": "done",
"summary": "Chinese summary",
"enSummary": "English summary"
},
"ts": 1708473600000
}
| AI Field | Description |
|---|---|
score |
0-100 impact score (top-level = highest among all coins) |
signal |
long (bullish) / short (bearish) / neutral |
coins[].score |
Individual coin impact score (0-100) |
coins[].signal |
Individual coin signal (long/short/neutral) |
coins[].grade |
Individual coin grade (A+/A/B+/B/C) |
Compatibility
| Client | Installation | Status |
|---|---|---|
| Claude Code | claude mcp add |
One-click |
| OpenClaw | Copy Skill directory | One-click |
| Claude Desktop | JSON config | Supported |
| Cursor | JSON config | Supported |
| Windsurf | JSON config | Supported |
| Cline | JSON config | Supported |
| Continue.dev | YAML / JSON | Supported |
| Cherry Studio | GUI | Supported |
| Zed | JSON config | Supported |
Related Projects
- twitter-mcp - Twitter/X data MCP server
Development
cd /path/to/opennews-mcp
uv sync
uv run opennews-mcp
# MCP Inspector test
npx @modelcontextprotocol/inspector uv --directory /path/to/opennews-mcp run opennews-mcp
Project Structure
├── README.md
├── openclaw-skill/opennews/ # OpenClaw Skill
├── knowledge/guide.md # Embedded knowledge
├── pyproject.toml
├── config.json
└── src/opennews_mcp/
├── server.py # Entry point
├── app.py # FastMCP instance
├── config.py # Config loading
├── api_client.py # HTTP + WebSocket
└── tools/ # Tools
License
MIT
설치
npx @modelcontextprotocol/inspector uv --directory /path/to/opennews-mcp run opennews-mcp설정
{
"mcpServers": {
"opennews": {
"command": "uv",
"args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"],
"env": {
"OPENNEWS_TOKEN": "<your-token>"
}
}
}
}