Skip to main content
Glama
6551Team

OpenNews MCP

by 6551Team

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-Signal 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

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).

Source Code

Description

Bloomberg

Bloomberg — top-tier financial news

Reuters

Reuters — global wire service

Financial Times

Financial Times — premium business news

CNBC

CNBC — financial television

CNN

CNN — US news network

BBC

BBC — British Broadcasting Corporation

Fox Business

Fox Business — US financial news

CoinDesk

CoinDesk — leading crypto media

Cointelegraph

Cointelegraph — crypto media

The Block

The Block — crypto data & journalism

Blockworks

Blockworks — crypto-native media

Decrypt

Decrypt — crypto & web3 media

DlNews

DL News — crypto investigative journalism

A16Z

a16z (Andreessen Horowitz) — leading crypto VC

TechCrunch

TechCrunch — tech & startup news

Wired

Wired magazine — tech journalism

Politico

Politico — US & EU political news

Business Insider

Business Insider

Twitter/X

Twitter/X posts from crypto influencers

X / Twitter Profile

Twitter/X profile changes (name, bio updates)

Telegram

Telegram channels

Weibo

Weibo — Chinese social media

Truth Social

Truth Social — Trump's social platform

U.S. Treasury

U.S. Treasury Department — official statements

U.S. Trade Representative

USTR — trade policy announcements

ECB

European Central Bank — official communications

TASS

TASS — Russian state news agency

Interfax

Interfax — Russian news agency

Handelsblatt

Handelsblatt — German business newspaper

Hadelsblatt

Hadelsblatt — German business

Welt

Welt — German newspaper

Telegraph

The Telegraph — UK news

MS NOW

Morgan Stanley NOW — institutional research

Ambrey

Ambrey — maritime & geopolitical intelligence

PR Newswire

PR Newswire — press releases

GlobeNewswire

GlobeNewswire — press releases

Business Wire

Business Wire — press releases

Coinbase

Coinbase announcements & blog

Binance

Binance announcements & blog

jin10

Jin10 — Chinese financial data flash news

The Big Whale

The Big Whale — European crypto media

The Verge

The Verge — tech media

Techinasia

Tech in Asia — Asian tech news

Medium

Medium blog posts

Chainwire

Chainwire — crypto press releases

Token Relations

Token relations & partnerships

Crypto Narratives

Crypto narrative tracking

Crypto in America

Crypto in America coverage

6551News

6551 platform original analysis

BWEnews

BWE news wire

AGGRNEWS

Aggregated news feed

Velo

Velo data intelligence

Source Code

Description

Binance

Binance new token listings

Coinbase

Coinbase new token listings

OKX

OKX new token listings

Bybit

Bybit new token listings

Upbit

Upbit (Korean exchange) listings

Bithumb

Bithumb (Korean exchange) listings

Robinhood

Robinhood crypto listings

Hyperliquid

Hyperliquid perp listings

Aster

Aster exchange listings

Source Code

Description

Hyperliquid Whale Trade

Hyperliquid whale trade alerts

Hyperliquid Large Position

Hyperliquid large position changes

Source Code

Description

Twitter

Twitter/X meme coin discussions & viral posts

Source Code

Description

Price Change

Significant price movements (pumps/dumps)

Funding Rate

Funding rate anomalies (perp futures)

Funding Rate Difference

Cross-exchange funding rate divergences

Large Liquidation

Large liquidation events

Market Trends

Overall market trend shifts

OI Change

Open interest significant changes

Source Code

Description

CORRELATION_LOGICAL

Logical correlation analysis

SMART_MONEY_TRADE

Smart money trade tracking

PRICE_SPIKE

Price spike detection

CLUSTER_ENTRY

Cluster entry signals

WHALE_POSITION

Whale position monitoring

NEW_WALLET_TRADE

New wallet trade detection

INSIDER_PATTERN

Insider pattern recognition

CORRELATION_NARRATIVE

Narrative correlation analysis

CORRELATION_HEDGE

Hedge correlation analysis

CORRELATION_ENTITY_GEO

Geopolitical entity correlation

CORRELATION_CAUSAL

Causal correlation analysis

SETTLEMENT_ARBITRAGE

Settlement arbitrage signals


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="<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
}

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)


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).

ParametersJSON Schema
NameRequiredDescriptionDefault
min_scoreNo
limitNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the sorting behavior ('sorted by score descending') and output constraints ('maximum results to return'), which are useful. However, it does not cover aspects like rate limits, authentication needs, error handling, or the format of returned articles, leaving gaps for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by a structured 'Args:' section that efficiently details parameters without redundancy. Every sentence adds value, and there is no wasted text, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 parameters, no annotations, and no output schema, the description does a good job covering parameter semantics and basic behavior. However, it lacks details on return values (e.g., article fields), error cases, or performance considerations, which would be needed for full completeness in this context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must fully compensate. It provides clear semantics for both parameters: min_score ('Minimum score threshold') with a default value, and limit ('Maximum results to return') with default and max values. This adds essential meaning beyond the bare schema, effectively documenting all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get highly-rated news articles'), identifies the resource ('news articles'), and specifies the rating mechanism ('by AI score') and sorting order ('sorted by score descending'). This distinguishes it from siblings like get_latest_news (which likely sorts by time) or search_news (which likely filters by keywords).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving high-scoring articles, but does not explicitly state when to use this tool versus alternatives like get_latest_news or search_news. It provides default values and limits, which offer some contextual guidance, but lacks explicit comparisons or exclusions for sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_latest_newsB

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the return format (title, source, link, etc.) and ordering behavior ('newest first'), which is valuable. However, it lacks information about authentication requirements, rate limits, pagination, or error conditions that would be important for a news API tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and concise: purpose statement first, return format second, parameter documentation third. Every sentence earns its place with zero wasted words, and the information is appropriately front-loaded for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (news retrieval with multiple sibling alternatives), no annotations, no output schema, and 0% schema description coverage, the description provides adequate basics but lacks important context. It covers purpose, returns, and the single parameter well, but doesn't address authentication, error handling, or differentiation from siblings that would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 1 parameter and 0% schema description coverage, the description fully compensates by explaining the 'limit' parameter's purpose, default value (10), and maximum (100). This adds crucial meaning beyond what the bare schema provides, though it doesn't explain what happens if the limit exceeds 100 or if invalid values are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('most recent crypto news articles') with ordering ('newest first'). It distinguishes the tool's purpose from siblings like 'search_news' or 'get_news_by_coin' by focusing on recency without filtering criteria. However, it doesn't explicitly contrast with 'get_high_score_news' which might also return recent articles but with quality filtering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'search_news' or 'get_news_by_coin'. With 10 sibling tools including various filtering options, the lack of explicit when-to-use or when-not-to-use context leaves the agent guessing about the appropriate selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_news_by_engineB

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
engine_typeYes
limitNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions default and max values for 'limit', which is useful behavioral context. However, it doesn't disclose other traits like rate limits, authentication needs, pagination, response format, or error handling. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with three sentences: purpose statement, engine type list, and parameter details. It's front-loaded with the main purpose. No wasted words, though the structure could be slightly improved by integrating the engine list more smoothly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides basic purpose and parameter info but lacks details on return values, error cases, or operational constraints. It's minimally viable for a simple query tool but incomplete for full agent understanding, especially with multiple sibling tools available.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning by listing the five possible engine types ('news', 'listing', 'onchain', 'meme', 'market') and specifying default/max for 'limit', which aren't in the schema. This covers both parameters effectively, though it could explain what each engine type means semantically.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('news articles'), and specifies filtering by 'engine type'. It distinguishes from some siblings (e.g., get_news_by_signal, get_news_by_source) by mentioning the engine filter, but doesn't explicitly differentiate from all alternatives like get_latest_news or search_news. The purpose is specific but could be more distinctive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like get_news_by_signal or get_news_by_source. The description lists engine types but doesn't explain their meaning or when to choose this over other filtering methods. Usage is implied by the engine_type parameter but not contextualized relative to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_news_by_signalB

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
signalYes
limitNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions filtering and default/max limits, but doesn't cover critical aspects like whether this is a read-only operation, potential rate limits, authentication needs, error handling, or response format. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with a clear purpose statement followed by parameter details in a structured 'Args:' section. Every sentence adds value, though the formatting is basic and could be more polished for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose and parameters but lacks behavioral context, usage guidelines, and output details. Without annotations or output schema, more information on response structure or error cases would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful semantics beyond the input schema, which has 0% description coverage. It explains that 'signal' accepts values 'long' (bullish), 'short' (bearish), or 'neutral', and specifies 'limit' defaults to 10 with a max of 100. This compensates well for the schema's lack of descriptions, though it doesn't detail data types or constraints beyond what's implied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get news filtered by trading signal type.' It specifies the verb ('Get'), resource ('news'), and filtering criteria ('by trading signal type'). However, it doesn't explicitly differentiate from siblings like 'get_news_by_engine' or 'search_news_by_coin', which also filter news but by different attributes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With multiple sibling tools for news retrieval (e.g., 'get_latest_news', 'search_news', 'get_news_by_source'), the description lacks context on when signal-based filtering is appropriate, prerequisites, or exclusions, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
engine_typeYes
news_typeYes
limitNo

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions default and max values for 'limit' (10, 100), which is useful behavioral context. However, it doesn't disclose critical traits like whether this is a read-only operation, potential rate limits, authentication needs, error conditions, or what the return format looks like (e.g., list of articles with fields). For a tool with no annotations, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise. It starts with a clear purpose statement, followed by a usage guideline, then details each parameter with examples and constraints. Every sentence adds value without redundancy, and it's appropriately sized for a 3-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides good parameter semantics and usage guidance but lacks behavioral transparency (e.g., return format, error handling). For a tool with 3 parameters and multiple siblings, it's adequate but has clear gaps in completeness, especially around output and operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides clear semantics for all three parameters: engine_type (with examples like 'news', 'listing'), news_type (with examples like 'Bloomberg', 'Reuters'), and limit (with default and max). This adds substantial meaning beyond the bare schema, though it could benefit from more context on valid values or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get news articles from a specific source.' This specifies the verb ('Get') and resource ('news articles') with a qualifier ('from a specific source'). However, it doesn't explicitly differentiate from sibling tools like get_news_by_engine or get_latest_news, which likely have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Use get_news_sources first to see available engine types and news type codes.' This tells the agent when to use this tool (after consulting get_news_sources) and references a specific sibling tool. However, it doesn't explain when to choose this tool over alternatives like get_news_by_engine or search_news, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format ('tree structure with engine types... and their sub-categories'), which is helpful. However, it doesn't mention potential limitations like rate limits, authentication needs, or data freshness. Since annotations are absent, a 4 reflects good but not exhaustive behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise: three sentences that efficiently cover purpose, output format, and usage guidelines. Each sentence adds value without redundancy, and key information is front-loaded. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple catalog with 0 parameters), no annotations, and no output schema, the description is mostly complete. It explains the purpose, output structure, and usage context. However, it lacks details on error handling or exact return format specifics, which could be useful for an agent. Still, it's adequate for a low-complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100% (though schema is empty). The description doesn't need to explain parameters, but it implicitly confirms no inputs are required by not mentioning any. Baseline for 0 parameters is 4, as the description appropriately focuses on output and usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get all available news source categories and their metadata.' It specifies the verb ('Get'), resource ('news source categories and their metadata'), and distinguishes from siblings by focusing on cataloging sources rather than retrieving or searching news content. The mention of 'tree structure' and engine types provides additional specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'Use this first to understand what news sources are available before searching.' This provides clear guidance on its role as a prerequisite for other news-related tools, distinguishing it from siblings like search_news or get_latest_news that retrieve actual news content.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It describes the return format ('flat list of news source codes') which is helpful, but doesn't mention potential limitations like rate limits, authentication requirements, or whether the list is static or dynamic. It adequately describes the basic behavior but lacks operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (two sentences) with zero wasted words. The first sentence states the purpose, the second explains the return format and usage context. Every sentence earns its place and the information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter lookup tool with no output schema, the description provides sufficient context: purpose, return format, and usage relationship to another tool. It could potentially mention whether the list changes frequently or if there are known limitations, but given the tool's simplicity, the description is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100%. The description correctly indicates no parameters are needed ('List all available...') and provides context about what the tool returns. For a zero-parameter tool with complete schema coverage, this meets the baseline expectation of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('all available news type codes'), and explicitly distinguishes this tool from its sibling 'search_news' by explaining its output is used as input for that sibling's 'newsType' parameter. This provides specific differentiation from other news-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'for filtering' and specifically 'that can be used with the newsType parameter in search_news.' It provides clear guidance about its relationship to an alternative tool (search_news) and its intended purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_newsB

Search crypto news by keyword in text content.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes
limitNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the tool searches 'by keyword in text content,' which implies a text-based search, but doesn't disclose behavioral traits like rate limits, authentication needs, response format, pagination, or what 'crypto news' encompasses (e.g., sources, time range). For a search tool with zero annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the core purpose stated first in a clear sentence. The additional parameter details are concise and relevant. There's minimal waste, though the structure could be slightly improved by integrating parameter info more seamlessly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a search tool with no annotations, no output schema, and multiple sibling tools, the description is incomplete. It lacks information on return values (e.g., what fields are included in results), error handling, and how it differs from other search tools. This makes it inadequate for an agent to use the tool effectively in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context beyond the input schema. The schema has 0% description coverage, providing only titles and types. The description explains that 'keyword' is a 'Search term (e.g. "bitcoin", "SEC", "ETF")' and 'limit' has a 'default 10, max 100,' which clarifies usage and constraints not in the schema. However, it doesn't fully detail all parameter nuances (e.g., keyword matching rules).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search crypto news by keyword in text content.' This specifies the verb (search), resource (crypto news), and scope (by keyword in text content). However, it doesn't explicitly differentiate from siblings like 'search_news_advanced' or 'search_news_by_coin,' which would be needed for a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'search_news_advanced' and 'search_news_by_coin,' there's no indication of when this simpler keyword search is preferred or what limitations it has compared to more advanced options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_news_advancedB

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
coinsNo
keywordNo
engine_typesNo
has_coinNo
limitNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the tool performs 'search' (implying read-only), it doesn't address important behavioral aspects like rate limits, authentication requirements, response format, pagination, or error handling. The parameter documentation provides some operational context but doesn't constitute comprehensive behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and well-structured with a clear purpose statement followed by detailed parameter documentation. While efficient, the 'Args:' section could be more integrated with the main description rather than appearing as separate documentation. Every sentence adds value, with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter search tool with no annotations and no output schema, the description provides excellent parameter documentation but lacks important context about the search results format, error conditions, and differentiation from sibling tools. The parameter coverage is comprehensive, but overall completeness is limited by missing behavioral and comparative context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by providing detailed semantics for all 5 parameters. Each parameter gets clear explanations including examples ('BTC,ETH'), format specifications ('type1:cat1,cat2;type2:cat3'), default values ('default 10'), constraints ('max 100'), and purpose clarification ('If true, only return news that have associated coins').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs 'Advanced news search with multiple filters', which is a specific verb+resource combination. However, it doesn't explicitly distinguish this from sibling tools like 'search_news' or 'search_news_by_coin', which likely offer simpler or more targeted search capabilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling search tools available (search_news, search_news_by_coin, get_news_by_engine, etc.), there's no indication of what makes this 'advanced' version different or when it's preferable to simpler alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYes
limitNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions default and max values for 'limit' but doesn't disclose other behavioral traits like rate limits, authentication needs, response format, pagination, or error handling. For a search tool with no annotation coverage, this is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with a clear purpose statement followed by parameter details in a structured 'Args:' section. It's front-loaded and efficient, though the parameter explanations could be slightly more integrated into the flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and low schema coverage, the description is moderately complete. It covers the basic purpose and parameters well but lacks details on behavioral aspects (e.g., response format, errors) and differentiation from siblings, leaving gaps for effective tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaningful context for both parameters: 'coin' is explained with examples (e.g., 'BTC', 'ETH'), and 'limit' specifies default (10) and max (100) values. This significantly enhances understanding beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'Search news related to a specific cryptocurrency coin/token,' which is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'search_news' or 'search_news_advanced,' which appear to be similar news search functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'search_news' or 'search_news_advanced' from the sibling list. It only states what the tool does without context about its specific use case compared to other news search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
wait_secondsNo
max_itemsNo
coinsNo
engine_typesNo
has_coinNo

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: WebSocket connection, real-time updates, duration-based collection (wait_seconds), and filtering capabilities. However, it lacks details on error handling, connection stability, or authentication needs, which are important for a WebSocket tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a purpose statement followed by a bullet-point list of parameters. It is front-loaded with the main action and avoids unnecessary details. However, the parameter list could be more integrated into the narrative for slightly better flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description covers the tool's purpose and parameters well but lacks details on return values, error cases, or WebSocket-specific behaviors like connection handling. For a real-time subscription tool with 5 parameters, this leaves some gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides clear semantics for all 5 parameters: wait_seconds (duration to listen), max_items (limit on collected items), coins (filter by symbols), engine_types (filter format), and has_coin (boolean filter). This adds significant meaning beyond the basic schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Subscribe to real-time news updates via WebSocket' with specific actions like 'connects to the WebSocket feed, subscribes to news with optional filters, and collects incoming messages'. It distinguishes from sibling tools (e.g., get_latest_news, search_news) by emphasizing real-time subscription via WebSocket rather than one-time retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for real-time news updates with filtering, but does not explicitly state when to use this tool versus alternatives like get_latest_news or search_news. It provides context for real-time collection but lacks explicit exclusions or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 11 tool updatesv0.1.0
    • First observedget_high_score_news
    • First observedget_latest_news
    • First observedget_news_by_engine
    • First observedget_news_by_signal
    • First observedget_news_by_source
    • First observedget_news_sources
    • First observedlist_news_types
    • First observedsearch_news
    • First observedsearch_news_advanced
    • First observedsearch_news_by_coin
    • First observedsubscribe_latest_news

TDQS

A3.8/5.0

Scored across 11 tools

Disambiguation4/5

Most tools have distinct purposes with clear boundaries, such as get_high_score_news for highly-rated articles and search_news_by_coin for coin-specific searches. However, some overlap exists between search_news and search_news_advanced, where the advanced version could potentially cover the basic search functionality, which might cause minor confusion.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case, such as get_high_score_news, search_news_by_coin, and subscribe_latest_news. The naming is predictable and readable throughout the set, making it easy for agents to understand the actions and targets.

Tool Count5/5

With 11 tools, the server is well-scoped for crypto news retrieval and filtering. Each tool serves a specific purpose, such as filtering by score, source, or coin, and the count supports comprehensive coverage without being overwhelming for the domain.

Completeness5/5

The tool set provides complete coverage for crypto news operations, including retrieval by various filters (score, recency, engine, signal, source, coin, keyword), listing of sources and types, advanced search, and real-time subscription. There are no obvious gaps, and agents can perform all expected news-related tasks.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides cryptocurrency trading signals, market analysis, and portfolio management capabilities across 15+ exchanges with AI-enhanced technical analysis, arbitrage detection, and risk assessment tools.
    2
    -
  • A
    license
    B
    quality
    F
    maintenance
    Real-time cryptocurrency news, analysis, and price predictions for AI agents. 5 tools to search 50,000+ articles across 12 categories, filter by 120+ asset tickers, and access content with built-in attribution. Free with attribution. SSE and Streamable HTTP transport.
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Multi-language crypto news MCP server with editorial summaries, sentiment labels (BULLISH/NEUTRAL/BEARISH), and importance scores (0–100). 6 tools across 8 languages; every story credits the original publisher. Bridges stdio to the public Streamable HTTP endpoint at https://zippfeed.com/mcp/.
    6
    1
    MIT