6O

6551team/opennews-mcp

Developer tools
2.4K stars 195 forks Quality 92 Trend 37MIT

News Aggregation · AI Ratings · Trading Signals · Real-time Updates

Overview

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-mcp with 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 and with 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
Strategy get_strategy_list List the authenticated user’s strategies: id, name, description, enabled, createdAt
get_strategy_hits Query triggered event history by strategy ID
Finance search_companies Discover candidates or resolve an exact canonical issuer, ticker, CIK, KRX code, DART code, or typed identifier
get_company_info Resolve exactly one issuer and list its SEC/DART filings, research reports, transcripts, and financial fields
get_company_report_text Fetch one issuer-bound filing, research report, or transcript by stable report ID/type
get_key_market_events Query key macro dates and configured focus-company earnings events
get_politician_stock_activity Query official U.S. House PTR stock transaction disclosures
list_institution_managers List staged SEC Form 13F manager identities and filing coverage without holdings
get_institution_stock_holdings Query one manager’s delayed SEC Form 13F stock holding disclosures
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
}

Strategy History Tools

Requires an OpenNews API token and an eligible subscription. Create and manage strategies at https://www.newsliquid.com/strategy. Each REST/MCP call consumes 1 quota.

  • get_strategy_list(limit=20, page=1): returns strategy id, name, description, enabled, and createdAt.
  • get_strategy_hits(strategy_id=42, limit=20, page=1): returns historical triggered events for that strategy. Hit items use the same news-like payload shape as strategy.triggered, including nested strategy, coins, aiRating, source, description, relatedAddress, and metric fields when available.

Raw HTTP equivalents:

curl -s -H "Authorization: Bearer $OPENNEWS_TOKEN" \
  "https://ai.6551.io/open/strategy_list?page=1&limit=20"

curl -s -H "Authorization: Bearer $OPENNEWS_TOKEN" \
  "https://ai.6551.io/open/strategy_hits?strategyId=42&page=1&limit=20"

WebSocket Real-time Subscriptions

Endpoint: wss://ai.6551.io/open/news_wss?token=YOUR_TOKEN

The news_wss endpoint is an authenticated WebSocket stream. It supports three client-initiated actions and three server-pushed event types.

Direction Message Purpose
Client -> Server ping Keep the connection alive
Client -> Server news.subscribe Subscribe to news updates with optional filters
Client -> Server news.unsubscribe Stop news updates for the current connection
Server -> Client pong Heartbeat response
Server -> Client news.update New matched news item
Server -> Client news.ai_update New matched news item with AI rating fields
Server -> Client strategy.triggered User strategy hit pushed to the strategy owner

news.subscribe controls news.update and news.ai_update. strategy.triggered is delivered automatically to the authenticated user who owns the strategy; it does not require a separate subscribe method.

Heartbeat

Client sends a text frame:

ping

Server returns a text frame:

pong

Subscribe to News

Client sends:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "news.subscribe",
  "params": {
    "engineTypes": {
      "news": ["Bloomberg", "CoinDesk"],
      "onchain": []
    },
    "coins": ["BTC", "ETH"],
    "hasCoin": true
  }
}

Server returns:

{
  "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_types tool to get available codes
  • 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

Client sends:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "news.unsubscribe"
}

Server returns:

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "success": true
  }
}

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 ID
  • engineType: Source engine type (market, news, onchain)
  • text: Human-readable event description
  • coins: Related coins
  • ts: Event timestamp
  • strategy.id: User strategy ID
  • strategy.name: Strategy name
  • strategy.sourceType: Strategy source type
  • strategy.soundId: Notification sound ID
  • strategy.bgColor: Notification background color
  • strategy.metrics: Triggered metric values with units
  • aiRating (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 coin
  • signal: long / short / neutral for this coin
  • grade: A+ / A / B+ / B / C for 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


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

View the full README on GitHub

Install

npx @modelcontextprotocol/inspector uv --directory /path/to/opennews-mcp run opennews-mcp
New to MCP? Start with the mcpskill.org guide →

Configuration

{ "mcpServers": { "opennews": { "command": "uv", "args": ["--directory", "/path/to/opennews-mcp", "run", "opennews-mcp"], "env": { "OPENNEWS_TOKEN": "<your-token>" } } } }