OpenNews MCP
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-mcpReplace
/path/to/opennews-mcpwith 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-mcpData Sources — 84+ Sources Across 6 Categories
Category | Count | Key Sources |
News | 53 | 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, Coinbase, and more |
Listing | 9 | Binance, Coinbase, OKX, Bybit, Upbit, Bithumb, Robinhood, Hyperliquid, Aster |
OnChain | 3 | Hyperliquid Whale Trade, Hyperliquid Large Position, KOL Trade |
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 — 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 |
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 |
KOL Trade | KOL (Key Opinion Leader) on-chain trades |
Source Code | Description |
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 |
| Full engine tree — all 6 categories and 84+ sources with metadata |
| Flat list of all source codes for filtering | |
Search |
| Latest articles across all 84+ sources |
| Full-text keyword search across all sources | |
| By coin (BTC, ETH, SOL...) across all sources | |
| By specific source (e.g. engine_type="news", news_type="Bloomberg") | |
| By category: news, listing, onchain, meme, market, prediction | |
| Multi-filter: coins + keywords + engine types combined | |
AI |
| High AI impact score articles (0-100 scale) |
| By AI trading signal: long / short / neutral | |
Real-time |
| 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 |
| Yes | 6551 API Bearer Token (from https://6551.io/mcp) |
| No | Override REST API URL |
| No | Override WebSocket URL |
| 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
}WebSocket Real-time Subscriptions
Endpoint: wss://ai.6551.io/open/news_wss?token=YOUR_TOKEN
Subscribe to real-time crypto news updates.
Subscribe to News
{
"jsonrpc": "2.0",
"id": 1,
"method": "news.subscribe",
"params": {
"engineTypes": {
"news": ["Bloomberg", "CoinDesk"],
"onchain": []
},
"coins": ["BTC", "ETH"],
"hasCoin": true
}
}Response:
{
"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 codesKey: 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 engineUse
list_news_typestool 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
{
"jsonrpc": "2.0",
"id": 2,
"method": "news.unsubscribe"
}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
}
}Note: Each coin in the coins array now includes individual AI ratings:
score: 0-100 impact score for this specific coinsignal:long/short/neutralfor this coingrade:A+/A/B+/B/Cfor 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 |
| 0-100 impact score (top-level = highest among all coins) |
|
|
| Individual coin impact score (0-100) |
| Individual coin signal (long/short/neutral) |
| Individual coin grade (A+/A/B+/B/C) |
In all configurations below, replace
/path/to/opennews-mcpwith 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-mcpCompatibility
Client | Installation | Status |
Claude Code |
| 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 |
Related Projects
twitter-mcp - Twitter/X data MCP server
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-mcpProject 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/ # ToolsLicense
MIT
Available Tools
11 toolsget_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).
| Name | Required | Description | Default |
|---|---|---|---|
| min_score | No | ||
| limit | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| engine_type | Yes | ||
| limit | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| signal | Yes | ||
| limit | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| engine_type | Yes | ||
| news_type | Yes | ||
| limit | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | ||
| limit | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| coins | No | ||
| keyword | No | ||
| engine_types | No | ||
| has_coin | No | ||
| limit | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | ||
| limit | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| wait_seconds | No | ||
| max_items | No | ||
| coins | No | ||
| engine_types | No | ||
| has_coin | No |
TDQS
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.
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.
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.
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.
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.
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.
11 tool updates
v0.1.0- First observed
get_high_score_news - First observed
get_latest_news - First observed
get_news_by_engine - First observed
get_news_by_signal - First observed
get_news_by_source - First observed
get_news_sources - First observed
list_news_types - First observed
search_news - First observed
search_news_advanced - First observed
search_news_by_coin - First observed
subscribe_latest_news
TDQS
Scored across 11 tools
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.
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.
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.
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
Related MCP Connectors
Real-time curated crypto news for AI agents with sentiment, recaps, and search.
Crypto market signals, technical indicators, and sentiment analysis for AI agents.
Hourly crypto news sentiment and typed market events, with sources on every signal.
Multi-language crypto news with editorial sentiment + importance scoring; cites original publisher.
Related MCP Servers
- AlicenseAqualityFmaintenanceAn MCP server that delivers cryptocurrency sentiment analysis to AI agents.547MIT
- FlicenseNot gradedqualityDmaintenanceProvides cryptocurrency trading signals, market analysis, and portfolio management capabilities across 15+ exchanges with AI-enhanced technical analysis, arbitrage detection, and risk assessment tools.2-
- AlicenseBqualityFmaintenanceReal-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.4MIT
- AlicenseAqualityDmaintenanceMulti-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/.61MIT