Loading...
Loading...
Real-time crypto news aggregation with AI ratings and trading signals from 84+ sources across news, listings, on-chain, meme, market, and prediction engines
npx skill4agent add aradotso/mcp-skills opennews-mcp-news-aggregationSkill by ara.so — MCP Skills collection.
export OPENNEWS_TOKEN="your-token-here"claude_desktop_config.json{
"mcpServers": {
"opennews": {
"command": "uv",
"args": [
"--directory",
"/path/to/opennews-mcp",
"run",
"opennews-mcp"
],
"env": {
"OPENNEWS_TOKEN": "your-token-here"
}
}
}
}claude mcp addclaude mcp add opennews \
-e OPENNEWS_TOKEN=your-token-here \
-- uv --directory /path/to/opennews-mcp run opennews-mcpexport OPENNEWS_TOKEN="your-token-here"
cp -r openclaw-skill/opennews ~/.openclaw/skills/config.json| Variable | Required | Default | Description |
|---|---|---|---|
| Yes | - | API Bearer Token from 6551.io |
| No | | REST API base URL |
| No | | WebSocket URL |
| No | | Max results per request |
{
"api_base_url": "https://ai.6551.io",
"wss_url": "wss://ai.6551.io/open/news_wss",
"api_token": "your-token-here",
"max_rows": 100
}get_news_sources# Returns hierarchical structure of all 6 engine types and their sources
# Each source includes metadata like description and type{
"news": {
"Bloomberg": {"description": "Bloomberg — top-tier financial news"},
"CoinDesk": {"description": "CoinDesk — leading crypto media"}
},
"listing": {
"Binance": {"description": "Binance new token listings"}
},
"onchain": {
"Hyperliquid Whale Trade": {"description": "Hyperliquid whale trade alerts"}
}
}list_news_types# Returns array of all source codes across all engine types
# Use these codes in other tool filters["Bloomberg", "Reuters", "CoinDesk", "Binance", "Hyperliquid Whale Trade", ...]get_latest_newslimit# Get latest 50 articles
{"limit": 50}search_newskeywordslimit# Search for SEC-related news
{"keywords": "SEC regulation", "limit": 30}search_news_by_coincoins["BTC", "ETH"]limit# Get Bitcoin and Ethereum news
{"coins": ["BTC", "ETH"], "limit": 40}get_news_by_sourceengine_typenewslistingonchainmememarketpredictionnews_typeBloombergBinancelimit# Get Bloomberg news only
{"engine_type": "news", "news_type": "Bloomberg", "limit": 25}
# Get Binance listings
{"engine_type": "listing", "news_type": "Binance", "limit": 10}get_news_by_engineengine_typelimit# Get all on-chain events
{"engine_type": "onchain", "limit": 30}
# Get all prediction signals
{"engine_type": "prediction", "limit": 50}search_news_advancedcoinskeywordsengine_typeslimit# Bitcoin news from Bloomberg and CoinDesk mentioning "ETF"
{
"coins": ["BTC"],
"keywords": "ETF",
"engine_types": ["news"],
"limit": 30
}
# Whale activity for SOL and ETH
{
"coins": ["SOL", "ETH"],
"engine_types": ["onchain"],
"limit": 20
}get_high_score_newsmin_scorelimit# Get articles with score >= 90
{"min_score": 90, "limit": 15}
# Get articles with score >= 70
{"min_score": 70, "limit": 30}get_news_by_signalsignallongshortneutrallimit# Get bullish signals
{"signal": "long", "limit": 25}
# Get bearish signals
{"signal": "short", "limit": 25}
# Get neutral signals
{"signal": "neutral", "limit": 20}subscribe_latest_newsengine_typesnewslistingonchaincoinshas_coin# Subscribe to Bloomberg and CoinDesk for BTC and ETH
{
"engine_types": {
"news": ["Bloomberg", "CoinDesk"]
},
"coins": ["BTC", "ETH"],
"has_coin": True
}
# Subscribe to all listing announcements
{
"engine_types": {
"listing": []
}
}
# Subscribe to whale on-chain activity
{
"engine_types": {
"onchain": []
}
}{
"jsonrpc": "2.0",
"method": "news.update",
"params": {
"id": "article-id",
"title": "Article title",
"content": "Full article text",
"engine_type": "news",
"news_type": "Bloomberg",
"coins": ["BTC"],
"ai_score": 85,
"ai_signal": "long",
"summary_en": "English summary",
"summary_zh": "中文摘要",
"published_at": "2026-05-16T12:00:00Z"
}
}{
"id": "unique-article-id",
"title": "Article headline",
"content": "Full article text content",
"engine_type": "news",
"news_type": "Bloomberg",
"coins": ["BTC", "ETH"],
"ai_score": 85,
"ai_signal": "long",
"summary_en": "English AI-generated summary",
"summary_zh": "中文AI生成摘要",
"published_at": "2026-05-16T10:30:00Z",
"url": "https://original-source.com/article",
"metadata": {
"author": "Jane Doe",
"tags": ["regulation", "ETF"]
}
}ai_scoreai_signallongshortneutralcoinsengine_typenews_type# Get latest high-impact news (score >= 80)
result = get_high_score_news(min_score=80, limit=10)
# Filter for bullish signals only
bullish = get_news_by_signal(signal="long", limit=15)
# Combine: high-impact bullish Bitcoin news
advanced = search_news_advanced(
coins=["BTC"],
engine_types=["news", "prediction"],
limit=20
)
# Then filter results where ai_score >= 80 and ai_signal == "long"# Get all Solana-related news
sol_news = search_news_by_coin(coins=["SOL"], limit=30)
# Get Solana on-chain whale activity
sol_onchain = search_news_advanced(
coins=["SOL"],
engine_types=["onchain"],
limit=15
)
# Get Solana listings across all exchanges
sol_listings = search_news_advanced(
coins=["SOL"],
engine_types=["listing"],
limit=10
)# Get all Bloomberg articles
bloomberg = get_news_by_source(
engine_type="news",
news_type="Bloomberg",
limit=25
)
# Get Binance listing announcements
binance_listings = get_news_by_source(
engine_type="listing",
news_type="Binance",
limit=10
)
# Get Hyperliquid whale trades
whale_trades = get_news_by_source(
engine_type="onchain",
news_type="Hyperliquid Whale Trade",
limit=20
)# Subscribe to critical sources for BTC and ETH
subscribe_latest_news(
engine_types={
"news": ["Bloomberg", "Reuters", "Financial Times"],
"listing": ["Binance", "Coinbase"],
"onchain": [] # All on-chain sources
},
coins=["BTC", "ETH"],
has_coin=True
)
# Subscribe to all prediction signals
subscribe_latest_news(
engine_types={
"prediction": []
}
)# Research regulation topics
regulation_news = search_news(
keywords="SEC regulation compliance",
limit=40
)
# ETF-related news with high impact
etf_news = search_news(keywords="ETF", limit=30)
# Filter for ai_score >= 75
# Institutional adoption signals
institutional = search_news(
keywords="institutional adoption grayscale blackrock",
limit=25
)import json
import websockets
import asyncio
import os
async def subscribe_news():
token = os.getenv("OPENNEWS_TOKEN")
url = f"wss://ai.6551.io/open/news_wss?token={token}"
async with websockets.connect(url) as ws:
# Subscribe to specific filters
subscribe_msg = {
"jsonrpc": "2.0",
"id": 1,
"method": "news.subscribe",
"params": {
"engineTypes": {
"news": ["Bloomberg", "CoinDesk"],
"listing": []
},
"coins": ["BTC", "ETH"],
"hasCoin": True
}
}
await ws.send(json.dumps(subscribe_msg))
# Receive confirmation
response = await ws.recv()
print(f"Subscription confirmed: {response}")
# Listen for updates
async for message in ws:
data = json.loads(message)
if data.get("method") == "news.update":
article = data["params"]
print(f"New article: {article['title']}")
print(f"AI Score: {article['ai_score']}")
print(f"Signal: {article['ai_signal']}")401 UnauthorizedInvalid tokenecho $OPENNEWS_TOKEN[]limitengine_typenews_typelist_news_typesget_latest_news429 Too Many Requestscoinshas_coinai_scoreai_signalmetadata# Get top 10 highest impact articles from past 24 hours
high_impact = get_high_score_news(min_score=85, limit=10)
# Group by signal
bullish = [a for a in high_impact if a['ai_signal'] == 'long']
bearish = [a for a in high_impact if a['ai_signal'] == 'short']
# Format digest
print("📈 Bullish Signals:")
for article in bullish:
print(f" • {article['title']} (Score: {article['ai_score']})")
print("\n📉 Bearish Signals:")
for article in bearish:
print(f" • {article['title']} (Score: {article['ai_score']})")# Get all recent listings
listings = get_news_by_engine(engine_type="listing", limit=50)
# Group by exchange
by_exchange = {}
for article in listings:
exchange = article['news_type']
if exchange not in by_exchange:
by_exchange[exchange] = []
by_exchange[exchange].append(article)
# Display
for exchange, articles in by_exchange.items():
print(f"\n{exchange} ({len(articles)} listings):")
for a in articles:
coins = ', '.join(a.get('coins', []))
print(f" • {coins}: {a['title']}")# Combine prediction signals with on-chain data
predictions = get_news_by_engine(engine_type="prediction", limit=30)
onchain = get_news_by_engine(engine_type="onchain", limit=30)
# Filter for high-confidence smart money signals
smart_money = [
p for p in predictions
if p['news_type'] == 'SMART_MONEY_TRADE' and p['ai_score'] >= 80
]
# Cross-reference with whale activity
whale_coins = set()
for article in onchain:
whale_coins.update(article.get('coins', []))
# Find overlap
for signal in smart_money:
signal_coins = signal.get('coins', [])
overlap = set(signal_coins) & whale_coins
if overlap:
print(f"⚡ Smart money + whale activity: {', '.join(overlap)}")
print(f" {signal['summary_en']}")