Skip to main content
Glama
opennews-mcp

opennews-mcp

by beare

Quick Install

First, get your API Token at https://6551.io/mcp.

Claude Code

claude mcp add opennews \
  -e OPENNEWS_TOKEN=<your-token> \
  -- uv --directory /path/to/opennews-mcp run opennews-mcp

Replace /path/to/opennews-mcp with your local project path, and <your-token> with your API token.

OpenClaw

export OPENNEWS_TOKEN="<your-token>"
cp -r openclaw-skill/opennews ~/.openclaw/skills/

Related MCP server: crypto-rss-mcp

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 <project-path> and <your-token> with actual values):

Please help me review and install the opennews-mcp MCP server. The project is at <project-path>.

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=<your-token> -- uv --directory <project-path> run opennews-mcp

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

Get all news source category tree

list_news_types

All available news source codes

Search

get_latest_news

Latest articles

search_news

Keyword search

search_news_by_coin

By coin (BTC, ETH, SOL...)

get_news_by_source

By engine type and source

get_news_by_engine

By type (news, listing, onchain, meme, market)

search_news_advanced

Advanced search (multiple filters)

AI

get_high_score_news

Articles with score >= threshold

get_news_by_signal

By signal: long / short / neutral

Real-time

subscribe_latest_news

WebSocket real-time collection


Configuration

Get API Token

Get your API Token at https://6551.io/mcp.

Set environment variable:

# macOS / Linux
export OPENNEWS_TOKEN="<your-token>"

# Windows PowerShell
$env:OPENNEWS_TOKEN = "<your-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": "<your-token>",
  "max_rows": 100
}

Data Structure

Each article returns:

{
  "id": "unique-article-id",
  "text": "Title / Content",
  "newsType": "Bloomberg",
  "engineType": "news",
  "link": "https://...",
  "coins": [{ "symbol": "BTC", "market_type": "spot", "match": "title" }],
  "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

signal

long (bullish) / short (bearish) / neutral

status

done = AI analysis completed


In all configurations below, replace /path/to/opennews-mcp with your actual local project path, and <your-token> with your token from https://6551.io/mcp.

Claude Desktop

Edit config file (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json):

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

Cursor

~/.cursor/mcp.json or Settings > MCP Servers:

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

Windsurf

~/.codeium/windsurf/mcp_config.json:

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

Cline

VS Code sidebar > Cline > MCP Servers > Configure, edit cline_mcp_settings.json:

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

Continue.dev

~/.continue/config.yaml:

mcpServers:
  - name: opennews
    command: uv
    args:
      - --directory
      - /path/to/opennews-mcp
      - run
      - opennews-mcp
    env:
      OPENNEWS_TOKEN: <your-token>

Cherry Studio

Settings > MCP Servers > Add > Type stdio: Command uv, Args --directory /path/to/opennews-mcp run opennews-mcp, Env OPENNEWS_TOKEN.

Zed Editor

~/.config/zed/settings.json:

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

Any stdio MCP Client

OPENNEWS_TOKEN=<your-token> \
  uv --directory /path/to/opennews-mcp run opennews-mcp

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

Available Tools

11 tools
get_high_score_newsA

Get highly-rated news articles (by AI score), sorted by score descending.

Args:
    min_score: Minimum score threshold (default 70).
    limit: Maximum results to return (default 10, max 100).

Inputs: limit, min_score.

get_latest_newsA

Get the most recent crypto news articles, newest first.

Returns news with title text, source, link, related coins, AI rating, and tags.

Args:
    limit: Maximum number of articles to return (default 10, max 100).

Inputs: limit.

get_news_by_engineA

Get news articles filtered by engine type.

Engine types: "news", "listing", "onchain", "meme", "market".

Args:
    engine_type: The engine type code.
    limit: Maximum results (default 10, max 100).

Inputs: engine_type (required), limit.

get_news_by_signalA

Get news filtered by trading signal type.

Args:
    signal: The signal type: "long" (bullish), "short" (bearish), or "neutral".
    limit: Maximum results (default 10, max 100).

Inputs: signal (required), limit.

get_news_by_sourceA

Get news articles from a specific source.

Use get_news_sources first to see available engine types and news type codes.

Args:
    engine_type: The engine type (e.g. "news", "listing", "onchain", "meme", "market").
    news_type: The news source code (e.g. "Bloomberg", "Reuters", "Coindesk").
    limit: Maximum results (default 10, max 100).

Inputs: news_type (required), engine_type (required), limit.

get_news_sourcesA

Get all available news source categories and their metadata.

Returns a tree structure with engine types (news, listing, onchain, meme, market) and their sub-categories (Bloomberg, Reuters, Binance, etc.).

Use this first to understand what news sources are available before searching.

Inputs: no named parameters.

list_news_typesA

List all available news type codes for filtering.

Returns a flat list of news source codes that can be used with
the newsType parameter in search_news.

Inputs: no named parameters.

search_newsA

Search crypto news by keyword in text content.

Args:
    keyword: Search term (e.g. "bitcoin", "SEC", "ETF").
    limit: Maximum results (default 10, max 100).

Inputs: keyword (required), limit.

search_news_advancedA

Advanced news search with multiple filters.

Args:
    coins: Comma-separated coin symbols (e.g. "BTC,ETH").
    keyword: Optional search keyword.
    engine_types: Engine type filter in format "type1:cat1,cat2;type2:cat3" (e.g. "news:Bloomberg,Reuters;listing:").
    has_coin: If true, only return news that have associated coins.
    limit: Maximum results (default 10, max 100).

Inputs: coins, limit, keyword, has_coin, +1 more.

search_news_by_coinB

Search news related to a specific cryptocurrency coin/token.

Args:
    coin: Coin symbol or name (e.g. "BTC", "ETH", "SOL", "TRUMP").
    limit: Maximum results (default 10, max 100).

Inputs: coin (required), limit.

subscribe_latest_newsA

Subscribe to real-time news updates via WebSocket.

Connects to the WebSocket feed, subscribes to news with optional filters,
and collects incoming messages for the specified duration.

Args:
    wait_seconds: How long to listen for news (default 10, max 30 seconds).
    max_items: Maximum news items to collect (default 5, max 20).
    coins: Comma-separated coin symbols to filter (e.g. "BTC,ETH").
    engine_types: Engine type filter in format "type1:cat1,cat2;type2:cat3".
    has_coin: If true, only receive news that have associated coins.

Inputs: coins, has_coin, max_items, engine_types, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 11 tools

    Disambiguation4/5

    Most tools have distinct retrieval intents—search by keyword, coin, source, engine, score, signal, or real-time—so an agent can usually pick correctly. The main overlap is between get_news_sources and list_news_types, and between the basic search tools and search_news_advanced, which can cause occasional misselection.

    Naming Consistency4/5

    Tool names mostly follow a snake_case verb_noun pattern (get_news_by_*, search_news_*, list_news_types). Minor deviations exist between search_ vs get_ prefixes for similar retrieval operations, and subscribe_latest_news places the modifier before the object, but the overall pattern remains readable.

    Tool Count5/5

    With 11 tools, the server is well within the ideal range for a specialized news API. The count feels appropriate: discovery, search, filtering, and real-time subscription each have dedicated tools without being bloated.

    Completeness5/5

    The toolset covers the full news workflow: discovering sources, listing filter codes, retrieving latest news, searching by multiple dimensions, filtering by rating/signal, and subscribing via WebSocket. No critical dead ends are apparent for the stated crypto-news domain.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that provides real-time cryptocurrency news sourced from NewsData for AI agents.
      15
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      A cryptocurrency news aggregation server providing AI-powered sentiment ratings, trading signals, and real-time market updates. It allows users to search news by coin, source, or engine type and filter results based on AI impact scores and bullish/bearish signals.
      11
      2,435
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      MCP server for Gloria AI curated crypto news. Provides curated, real-time cryptocurrency news digests, recaps, and search.
      7
      1
      MIT