opennews

Real-time crypto, equities, macro, and financial market news aggregator — 85+ data sources across 6 categories covering digital assets, U.S. stocks,…

INSTALLATION
npx skills add https://github.com/6551team/opennews-mcp --skill opennews
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

OpenNews Financial Market News Skill

Real-time crypto, equities, macro, and financial market news aggregator powered by 6551.io — 85+ data sources across 6 engine categories, all AI-analyzed with impact scores, trading signals, and bilingual summaries.

Use OpenNews for time-sensitive, market-moving news and signals across digital assets, U.S. stocks, semiconductors, AI infrastructure, supply chains, commodities, rates, policy, and social/news channels that can affect prices or investor positioning.

Get your token: https://6551.io/mcp

Base URL: https://ai.6551.io

Data Sources — 85+ Sources Across 6 Categories

CategoryCountKey Sources
News55Bloomberg, 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; useful for crypto, U.S. equities, semiconductors, AI infrastructure, supply chains, commodities, rates, policy, and market-moving social/news signals
Listing9Binance, Coinbase, OKX, Bybit, Upbit, Bithumb, Robinhood, Hyperliquid, Aster
OnChain2Hyperliquid Whale Trade, Hyperliquid Large Position
Meme1Twitter meme coin social sentiment
Market6Price Change, Funding Rate, Funding Rate Difference, Large Liquidation, Market Trends, OI Change
Prediction12CORRELATION_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

Authentication

All requests require the header:

Authorization: Bearer $OPENNEWS_TOKEN

News Operations

1. Get News Sources

Fetch the full engine tree with all 6 categories and 85+ sources.

curl -s -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  "https://ai.6551.io/open/news_type"

Returns a tree with engine types (news — 55 sources, listing — 9 exchanges, onchain — 2 Hyperliquid trackers, meme — 1 sentiment source, market — 6 anomaly signals, prediction — 12 AI prediction signals) and their sub-categories.

2. Search News

POST /open/news_search is the primary search endpoint.

Get latest news:

curl -s -X POST "https://ai.6551.io/open/news_search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"limit": 10, "page": 1}'

Search by keyword:

curl -s -X POST "https://ai.6551.io/open/news_search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"q": "bitcoin OR ETF", "limit": 10, "page": 1}'

Search by coin symbol:

curl -s -X POST "https://ai.6551.io/open/news_search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"coins": ["BTC"], "limit": 10, "page": 1}'

Filter by engine type and news type:

curl -s -X POST "https://ai.6551.io/open/news_search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"engineTypes": {"news": ["Bloomberg", "Reuters"]}, "limit": 10, "page": 1}'

Only news with coins:

curl -s -X POST "https://ai.6551.io/open/news_search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"hasCoin": true, "limit": 10, "page": 1}'

News Search Parameters

ParameterTypeRequiredDescription
limitintegeryesMax results per page (1-100)
pageintegeryesPage number (1-based)
qstringnoFull-text keyword search
coinsstring[]noFilter by coin symbols (e.g. ["BTC","ETH"])
engineTypesmap[string][]stringnoFilter by engine and news types
hasCoinbooleannoOnly return news with associated coins
scoreintegernoFilter by minimum AI score (0-100)

Important: You need to understand the user's query intent and perform word segmentation, then combine them using OR/AND to form search keywords, supporting both Chinese and English.

Finance Enhancement Entity Protocol

These authenticated endpoints provide company discovery, report catalogs, report text, and wallet-visible on-chain evidence. Responses are wrapped as {"success": true, "data": ...} and may include usage quota metadata. Treat data.status as the business result; HTTP success alone does not mean the company or report was resolved.

Resolve the Company Before Reading Reports

Company names can legitimately map to more than one issuer or listed security. Use this sequence:

user company expression

→ broad company-search

→ inspect ambiguity_candidates[]

→ choose the intended market/issuer

→ retry with one exact identifier namespace

→ read company-info

→ choose report_id + report_type

→ read company-report-text

Never send a fuzzy company name together with an exact identifier. Exactly one company selector must be authoritative.

The OpenNews MCP tools accept any one of these selectors directly:

MCP selectorExampleMeaning
canonical_issuer_idSEC:0002120882Stable issuer ID returned by company search
tickerSKHYExact listed ticker
cik0002120882SEC CIK
krx_stock_code000660Six-digit KRX security code
dart_corp_code00164779Eight-digit DART issuer code
identifier + identifier_type + market00164779 + dart_corp_code + KRGeneric typed selector
company / search keywordSK hynix Inc. / HynixFuzzy discovery only

The raw HTTP endpoints use the generic form identifier + identifier_type + market. Do not send cik, ticker, dart_corp_code, krx_stock_code, or canonical_issuer_id as standalone HTTP JSON fields: those are MCP conveniences. Convert stable IDs as follows:

Search resultExact raw HTTP selector
SEC:0002120882{"identifier":"0002120882","identifier_type":"cik","market":"US"}
DART:00164779{"identifier":"00164779","identifier_type":"dart_corp_code","market":"KR"}
KRX:000660 security{"identifier":"000660","identifier_type":"krx_stock_code","market":"KR"}

Company Search

Use a name only for discovery. An ambiguous_entity response is expected when multiple markets or issuers match.

curl -s -X POST "https://ai.6551.io/open/finance-enhance/company-search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"keyword":"Hynix","identifier_type":"company_name","market":"GLOBAL","result_scope":"issuer","limit":20,"auto_collect":false}'

For SK hynix this can return both the U.S. SEC issuer (SEC:0002120882, including ticker SKHY) and the Korean DART issuer (DART:00164779, security KRX:000660). Choose from the user's requested market; do not silently take the first candidate.

Company Info

Returns the resolved identity and available SEC/DART filings, third-party research reports, earnings-call transcripts, report forms, and financial item names.

U.S. SEC issuer:

curl -s -X POST "https://ai.6551.io/open/finance-enhance/company-info" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"identifier":"0002120882","identifier_type":"cik","market":"US","auto_collect":false,"filing_limit":50,"fact_limit":1000}'

Korean DART issuer:

curl -s -X POST "https://ai.6551.io/open/finance-enhance/company-info" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"identifier":"00164779","identifier_type":"dart_corp_code","market":"KR","auto_collect":false,"filing_limit":50,"fact_limit":1000}'

Verify the returned canonical_issuer_id, market, matched_by, and match_confidence before using any report catalog entry.

Company Report Text

Prefer the stable report_id and report_type returned by company-info. Report types are SEC, DART, RESEARCH, and TRANSCRIPT.

curl -s -X POST "https://ai.6551.io/open/finance-enhance/company-report-text" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"identifier":"0002120882","identifier_type":"cik","market":"US","report_id":"<catalog report_id>","report_type":"RESEARCH","max_section_chars":50000,"auto_collect":false}'

Before treating text as evidence, verify that the response company, selected report canonical_issuer_id, report_id, and report_type all match the chosen catalog entry.

Business statuses include ok, invalid_input, selector_conflict, ambiguous_entity, entity_not_found, report_not_found, text_not_cached, section_not_found, unsupported, partial_result, and upstream_error. For ambiguous_entity, use ambiguity_candidates[] and the returned resolution hint to retry with one exact selector.

Key Market Events

Returns important macro events and configured focus-company earnings dates. Rows marked estimated_schedule should be confirmed against official calendars before alerting or trading.

curl -s -X POST "https://ai.6551.io/open/finance-enhance/key-market-events" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"start_date": "2026-07-21", "end_date": "2026-08-31", "importance": "high", "limit": 10}'

Crypto Holdings Evidence

Returns Blockscout address-balance evidence for an institution or wallet address. It is not proof of economic ownership, beneficial ownership, investment advice, or a trading signal.

curl -s -X POST "https://ai.6551.io/open/finance-enhance/crypto-holdings" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"address": "0x...", "chain": "ethereum", "token_symbol": "ETH", "limit": 100}'

Crypto Holding Changes

Returns changes between adjacent wallet snapshots. At least two snapshots are needed to produce changed records.

The raw HTTP API accepts change_types as a JSON array. The MCP tool get_crypto_holding_changes accepts a comma-separated string such as increase,decrease and defaults auto_collect to false; collect holdings first when a fresh wallet snapshot is needed.

curl -s -X POST "https://ai.6551.io/open/finance-enhance/crypto-holding-changes" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"address": "0x...", "chain": "ethereum", "change_types": ["increase", "decrease"], "auto_collect": false, "limit": 100}'

Data Structures

News Article

{

  "id": "unique-article-id",

  "text": "Article headline / content",

  "newsType": "Bloomberg",

  "engineType": "news",

  "link": "https://...",

  "coins": [{"symbol": "BTC", "market_type": "cex", "match": "title"}],

  "aiRating": {

    "score": 85,

    "grade": "A",

    "signal": "long",

    "status": "done",

    "summary": "Chinese summary",

    "enSummary": "English summary"

  },

  "ts": 1708473600000

}

Common Workflows

Quick Market Overview

curl -s -X POST "https://ai.6551.io/open/news_search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"limit": 10, "page": 1}' | jq '.data[] | {text, newsType, signal: .aiRating.signal}'

High-Impact News (score >= 80)

curl -s -X POST "https://ai.6551.io/open/news_search" \

  -H "Authorization: Bearer $OPENNEWS_TOKEN" \

  -H "Content-Type: application/json" \

  -d '{"score": 80, "limit": 50, "page": 1}'

Free API Endpoints (No Token Required)

If you don't have an OPENNEWS_TOKEN, you can use these free endpoints as a fallback. These provide curated hot news and trending tweets by category, but with limited search capabilities compared to the authenticated API.

1. Get Free News Categories

Get all available news categories and subcategories for the free tier.

curl -s -X GET "https://ai.6551.io/open/free_categories"

2. Get Hot News by Category

Get hot news articles and trending tweets by category. No authentication required.

curl -s -X GET "https://ai.6551.io/open/free_hot?category=macro"

Parameters:

ParameterTypeRequiredDescription
categorystringyesCategory key from free_categories
subcategorystringnoSubcategory key for more specific filtering

Response Structure:

{

  "success": true,

  "category": "crypto",

  "subcategory": "defi",

  "news": {

    "success": true,

    "count": 10,

    "items": [

      {

        "id": 123,

        "title": "...",

        "source": "...",

        "link": "https://...",

        "score": 85,

        "grade": "A",

        "signal": "bullish",

        "summary_zh": "...",

        "summary_en": "...",

        "coins": ["BTC", "ETH"],

        "published_at": "2026-03-17T10:00:00Z"

      }

    ]

  },

  "tweets": {

    "success": true,

    "count": 5,

    "items": [

      {

        "author": "Vitalik Buterin",

        "handle": "VitalikButerin",

        "content": "...",

        "url": "https://...",

        "metrics": { "likes": 1000, "retweets": 200, "replies": 50 },

        "posted_at": "2026-03-17T09:00:00Z",

        "relevance": "high"

      }

    ]

  }

}

Example - Get Hot Macro News:

curl -s -X GET "https://ai.6551.io/open/free_hot?category=macro"

Example - Get DeFi Subcategory News:

curl -s -X GET "https://ai.6551.io/open/free_hot?category=macro&subcategory=defi"

Notes

  • Primary API: Get your token at https://6551.io/mcp for full access to 85+ sources with advanced search
  • Free API: Use free endpoints as fallback when token is unavailable (limited to curated hot news)
  • Rate limits apply; max 100 results per request for authenticated API
  • AI ratings may not be available on all articles (check status == "done")
  • Free API data is cached and updated periodically; if data is still being generated, a 503 response will be returned
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card