Skip to main content
Glama
btanaji

TradingView MCP

by btanaji

TradingView MCP Market Data & Technical Analysis for AI Assistants

TradingView MCP server โ€” real-time market data, technical indicators, screeners, and backtesting for Claude, ChatGPT, Cursor, Copilot, and any MCP client. Stocks, crypto, forex & futures across global exchanges. Backtesting + live sentiment + Yahoo Finance + 37 technical-analysis tools โ€” the most complete TradingView MCP toolkit, all in one server.

๐Ÿ†• The hosted server now draws. Ask for a chart and an interactive candlestick view (1d / 1h / 15m, optional Bollinger overlay) renders live inside the conversation via MCP Apps โ€” and the AI reads the band values back to you:

Paste one URL (or pip install), then just ask. Real output, straight from the live server:

Try these first โ€” they work in Claude, ChatGPT, Cursor, or any MCP client:

Show today's top crypto gainers on Binance
Run a full technical analysis of NVDA
What's the multi-timeframe read on gold?
Backtest an RSI strategy on BTC on the daily timeframe
NOTE

Independent open-source project โ€”not affiliated with, endorsed by, or associated with TradingView Inc. "TradingView" is a trademark of its respective owner; this project consumes third-party market data and is not a TradingView product.

NOTE

Does it need โ€” or risk โ€” your TradingView account? No. This server does not log into, scrape, or automate a TradingView session, and it requires no TradingView account or API key. Market data is fetched server-side from public endpoints, so there is no account of yours in the loop and no browser/UI automation. (This is different from MCP servers that drive the TradingView Desktop app via Chrome DevTools.) You are responsible for ensuring your own use complies with the terms of any data source you point it at.

"TradingView MCP" now means two very different kinds of project. Both are useful โ€” for different jobs:

This project โ€” data & analysis API

Desktop-automation MCPs

What you need

Nothing โ€” public market data

TradingView Desktop, usually with a paid TradingView plan

Where it works

Claude.ai, Claude Code, ChatGPT, Cursor, Copilot โ€” any MCP client

Mostly Claude Code, on your own machine

When your machine is off

Hosted version keeps answering, 24/7

Stops

Screeners & backtesting

Built in (37 tools, multi-exchange)

Whatever the TradingView UI offers

Charts

Interactive in-conversation charts (MCP Apps, hosted)

TradingView's own charts

Your TradingView account

Not needed, never touched

Drives your logged-in session

If you want an AI clicking around your TradingView Desktop โ€” editing Pine Script, drawing on charts, using replay โ€” check out tradesdontlie/tradingview-mcp. If you want headless market data, screeners and backtesting available to any AI client, with nothing installed and no TradingView account in the loop โ€” that's this project.

IMPORTANT

Not financial advice. Nothing produced by this software is investment, financial, legal, tax, or accounting advice. tradingview-mcp is an informational and educational analysis tool. Its outputs, including indicators, scores, signals, "trade setups", entries, stop losses, and targets, are computed from third party market data and are not recommendations to buy, sell, or hold any asset. It does not execute trades, manage money, or guarantee any result. Trading and investing carry a substantial risk of loss, and you can lose some or all of your capital. Always do your own research and consult a licensed professional before making any financial decision. You are solely responsible for your own decisions and for complying with the laws and regulations that apply to you. Market data may be delayed, inaccurate, or incomplete, and is provided without warranty.

TIP

Prefer zero setup? Use the hosted version. pro.cryptosieve.com serves all 37 tools as one connector URL for Claude.ai, ChatGPT, Copilot, and Cursor โ€” no uv, pandas, or Python to wrangle. From $9/mo (Pro) or $29/mo (Pro+ โ€” higher limits), with a 3-day free trial. Self-hosting stays free forever; hosted is just for folks who'd rather skip the ops. (Full self-host vs hosted comparison in Quick Start below.)

License: MIT Python 3.10-3.13 MCP Ready OpenClaw Ready Version PyPI GitHub Sponsors

โญ If this tool improves your workflow, please star the repo and consider sponsoring โ€” it keeps the project alive and growing!


๐ŸŽฅ Framework Demo

https://github-production-user-asset-6210df.s3.amazonaws.com/67838093/478689497-4a605d98-43e8-49a6-8d3a-559315f6c01d.mp4


Related MCP server: Finance MCP Server

๐Ÿ†• What's New

Stability & Strategy Expansion (May 2026)

  • Async hot-path tools โ€” 7 high-traffic tools (yahoo_price, stock_extended_hours, top_gainers, volume_breakout_scanner, multi_timeframe_analysis, financial_news, combined_analysis) converted to async def. FastMCP runs sync tools serialized on the event loop โ€” async unlocks real intra-server parallelism so concurrent tool calls actually overlap. combined_analysis additionally fans its 3 sub-calls out via asyncio.gather for ~3ร— wall-clock improvement on the power tool. yahoo_price / stock_extended_hours use httpx.AsyncClient for true non-blocking I/O; sync-library tools (tradingview_ta, tradingview-screener, feedparser) are off-loaded via asyncio.to_thread. (PR โ€” open)

  • 9 backtest strategies (up from 6) โ€” added rsi_pullback, keltner_breakout, and triple_ema, covering trend-pullback, ATR-normalized breakout, and SMA200-filtered EMA cross edges. compare_strategies now ranks the full 9.

  • Resilience layer โ€” automatic retry + 60-second TTL cache on the TradingView screener provider, eliminating transient "Expecting value" errors on combined_analysis and multi_timeframe_analysis. (PR #32 โ€” merged)

  • Financial news service rebuild โ€” replaces deprecated Reuters RSS endpoints with Yahoo Finance, MarketWatch, and CNBC. Fixes the long-standing count: 0 bug on financial_news. (PR #33 โ€” merged)

  • TA throttle โ€” caps concurrent tradingview_ta calls (default 4) + min 0.8s spacing between starts. Prevents parallel bursts of combined_analysis / multi_timeframe_analysis from hitting TradingView's empty-body rate-limit cliff. Tunable via env vars. (PR #34 โ€” merged)

  • Walk-forward backtesting (walk_forward_backtest_strategy) โ€” train/test split with overfitting verdict (ROBUST / MODERATE / WEAK / OVERFITTED).

  • Hourly (1h) timeframe support across backtest_strategy, compare_strategies, and walk_forward_backtest_strategy.

  • Full trade log + equity curve outputs (include_trade_log=True, include_equity_curve=True).


๐Ÿ—๏ธ Architecture

tradingview-mcp Architecture


โœจ Why tradingview-mcp?

Feature

tradingview-mcp

Traditional Setups

Bloomberg Terminal

Setup Time

5 minutes

Hours (Docker, Conda...)

Weeks (Contracts)

Cost

Free & Open Source

Variable

$30k+/year

Backtesting

โœ… 9 strategies + Walk-forward + Sharpe

โŒ Manual scripting

โœ… Proprietary

Live Sentiment

โœ… Reddit + RSS news

โŒ Separate setup

โœ… Terminal

Market Data

โœ… Live / Real-Time

Historical / Delayed

Live

API Keys

None required

Multiple (OpenAI, etc.)

N/A


๐Ÿš€ Quick Start (5 Minutes)

Two ways to run it โ€” the same 37 tools either way:

๐Ÿง‘โ€๐Ÿ’ป Self-host (this repo)

โ˜๏ธ Hosted โ€” pro.cryptosieve.com

Price

Free forever (MIT)

$9/mo Pro ยท $29/mo Pro+ ยท 3-day trial

Time to first call

~5 minutes (Python + uv)

~60 seconds (paste one URL)

Updates & ops

You run and update it

Managed โ€” always on the latest

Runs on

Your machine or VPS

Hosted, streamed from the edge

Limits

Your hardware

2,500/mo ยท 60/min (Pro) โ†’ 10,000/mo ยท 150/min (Pro+)

Best for

Tinkerers, forkers, full control

Folks who'd rather skip the ops

โ˜๏ธ Zero setup: paste one connector URL into Claude.ai, ChatGPT, Copilot, or Cursor โ†’ start a 3-day free trial. Everything below is for self-hosting.

Install via pip

pip install tradingview-mcp-server

Optional: news & sentiment (free Marketaux key)

financial_news and market_sentiment (plus the news/sentiment parts of combined_analysis) are powered by Marketaux โ€” licensed market news with per-entity sentiment. Grab a free API key (100 requests/day; the server caches for 4h and shares one fetch between news and sentiment, so the free tier goes a long way) and set:

export MARKETAUX_API_TOKEN=your_token_here   # optional

Without a token those two tools return a friendly "not configured" note โ€” all other tools work normally.

Claude Desktop Config (claude_desktop_config.json)

Note: On macOS, GUI apps like Claude Desktop may not have ~/.local/bin in their PATH. Use the full path to uvx to avoid "command not found" errors.

{
  "mcpServers": {
    "tradingview": {
      "command": "/Users/YOUR_USERNAME/.local/bin/uvx",
      "args": ["--from", "tradingview-mcp-server", "tradingview-mcp"]
    }
  }
}

On Linux, replace /Users/YOUR_USERNAME with /home/YOUR_USERNAME. On Windows, use %USERPROFILE%\.local\bin\uvx.exe.

Codex Plugin Config

This repository also includes mcp-only Codex plugin metadata:

  • .codex-plugin/plugin.json

  • .codex-mcp.json

The plugin uses the same PyPI package entrypoint:

{
  "mcpServers": {
    "tradingview": {
      "command": "uvx",
      "args": ["--from", "tradingview-mcp-server", "tradingview-mcp"]
    }
  }
}

After installing or enabling the Codex plugin, restart Codex so the MCP server is loaded in the next session. Depending on your Codex version, codex mcp list may show registered MCP servers, but tool availability should be verified in a fresh Codex session.

Or run from source

git clone https://github.com/atilaahmettaner/tradingview-mcp
cd tradingview-mcp
uv run tradingview-mcp

๐Ÿ› ๏ธ Troubleshooting

๐ŸชŸ Windows: MCP error -32001: Request timed out on first launch

Symptom โ€” you see this in the Claude Desktop logs shortly after adding the config:

[tradingview] Server started and connected successfully
[tradingview] Message from client: initialize ...
[60 seconds later]
[tradingview] notifications/cancelled โ€” reason: "MCP error -32001: Request timed out"

Why it happens: Python 3.14 is not supported yet. uvx downloads tradingview-mcp-server, creates a fresh virtualenv, and installs dependencies the first time it runs. Some native dependencies in the MCP stack do not currently publish compatible Python 3.14 wheels, so installation can fall back to source builds or fail before Claude Desktop finishes initializing the server.

Fix โ€” pin to Python 3.13 (has prebuilt pandas wheels):

{
  "mcpServers": {
    "tradingview": {
      "command": "uvx",
      "args": ["--python", "3.13", "--from", "tradingview-mcp-server", "tradingview-mcp"]
    }
  }
}

On macOS use the full path to uvx (see the note in Quick Start). On Windows uvx is typically %USERPROFILE%\.local\bin\uvx.exe.

Alternative โ€” pre-install once, then let Claude Desktop reuse the cache:

# Run in a terminal before launching Claude Desktop
uv tool install --python 3.13 tradingview-mcp-server

After the install finishes, start Claude Desktop with the normal config and the server will come up instantly (cache is already warm).

Credit: @wyh4444 for the original report in #24.


โš ๏ธ Error Envelope Format

Tools that have adopted the structured error format return either their normal payload or an error envelope:

{"error": {"code": "ALL_BATCHES_FAILED", "message": "All 5 batches failed; first error: JSONDecodeError(...)", "batches_attempted": 5, "batches_failed": 5, "first_error": "...", "retryable": true}}

Why: the previous [] / {"error": "Analysis failed: ..."} strings made it impossible to distinguish "no matches today" from "upstream rate-limit cliff." The new envelope is programmatically branchable by code, and retryable tells the caller whether waiting and retrying can help (upstream storms pass; a missing dependency won't fix itself).

Full coverage (every failure mode โ€” upstream outage, empty symbol list, missing dependency, unexpected exception โ€” returns an envelope, never a raw string/traceback): top_gainers, top_losers, bollinger_scan, rating_filter, volume_breakout_scanner, smart_volume_scanner.

Partial adoption (main error paths return envelopes): coin_analysis, volume_confirmation_analysis, consecutive_candles_scan, futures_market_overview, futures_top_movers, stock_prices, and the backtest input guards. Remaining tools migrate in batches โ€” tracked in #76.

Detecting an error:

result = volume_breakout_scanner(exchange="KUCOIN")
if isinstance(result, dict) and "error" in result:
    code = result["error"]["code"]
    if result["error"].get("retryable"):
        # Wait + retry, raise alert, fall back to single-batch call, etc.
        ...
else:
    for row in result:
        ...

Stable codes are defined in core/errors.py.


๐Ÿ“ฑ Use via Telegram, WhatsApp & More (OpenClaw)

Connect this server to Telegram, WhatsApp, Discord and 20+ messaging platforms using OpenClaw โ€” a self-hosted AI gateway. Tested & verified on Hetzner VPS (Ubuntu 24.04).

How It Works

OpenClaw routes Telegram messages to an AI agent. The agent uses trading.py โ€” a thin Python wrapper โ€” to call tradingview-mcp functions and return formatted results. No MCP protocol needed between OpenClaw and the server; it's a direct Python import.

Telegram โ†’ OpenClaw agent (AI model) โ†’ trading.py (bash) โ†’ tradingview-mcp โ†’ Yahoo Finance

Quick Setup

# 1. Install UV and tradingview-mcp
curl -LsSf https://astral.sh/uv/install.sh | sh && source ~/.bashrc
uv tool install tradingview-mcp-server

# 2. Configure OpenClaw channels
cat > ~/.openclaw/openclaw.json << 'EOF'
{
  channels: {
    telegram: {
      botToken: "YOUR_BOT_TOKEN_HERE",
    },
  },
}
EOF

# 3. Configure gateway + agent
openclaw config set gateway.mode local
openclaw config set acp.defaultAgent main

# 4. Set your AI model (choose ONE option below)
openclaw configure --section model

# 5. Install the skill + tool wrapper
mkdir -p ~/.agents/skills/tradingview-mcp ~/.openclaw/tools
curl -fsSL https://raw.githubusercontent.com/atilaahmettaner/tradingview-mcp/main/openclaw/SKILL.md \
  -o ~/.agents/skills/tradingview-mcp/SKILL.md
curl -fsSL https://raw.githubusercontent.com/atilaahmettaner/tradingview-mcp/main/openclaw/trading.py \
  -o ~/.openclaw/tools/trading.py && chmod +x ~/.openclaw/tools/trading.py

# 6. Start the gateway
openclaw gateway install
systemctl --user start openclaw-gateway.service

Choose Your AI Model

OpenRouter is not required โ€” use whichever provider you have a key for:

Provider

Model ID for OpenClaw

Get Key

OpenRouter (aggregator โ€” access to all models)

openrouter/google/gemini-3-flash-preview

openrouter.ai/keys

Anthropic (Claude direct)

anthropic/claude-sonnet-4-5

console.anthropic.com

Google (Gemini direct)

google/gemini-2.5-flash

aistudio.google.com

OpenAI (GPT direct)

openai/gpt-4o-mini

platform.openai.com

# Examples โ€” set your chosen model:
openclaw config set agents.defaults.model "openrouter/google/gemini-3-flash-preview"  # via OpenRouter
openclaw config set agents.defaults.model "anthropic/claude-sonnet-4-5"               # Anthropic direct
openclaw config set agents.defaults.model "google/gemini-2.5-flash"                   # Google direct

โš ๏ธ Important: Prefix must match your provider. google/... needs a Google API key. openrouter/... needs an OpenRouter key.

โš ๏ธ Common Mistakes

Symptom

Cause

Fix

Unrecognized keys: mcpServers

mcpServers not supported in this version

Remove from config, use bash wrapper

No API key for provider "google"

Used google/model but only have OpenRouter key

Use openrouter/google/model instead

which agent? loop

acp.defaultAgent not set

openclaw config set acp.defaultAgent main

Gateway won't start

gateway.mode missing

openclaw config set gateway.mode local

Test Your Bot

Once running, send your Telegram bot:

market snapshot
backtest RSI strategy for AAPL, 1 year
compare all strategies for BTC-USD

๐Ÿ‘‰ Full OpenClaw Setup Guide โ†’


Unlike basic screeners, this framework deploys specialized AI agents that debate findings in real-time:

  1. ๐Ÿ› ๏ธ Technical Analyst โ€” Bollinger Bands (ยฑ3 proprietary rating), RSI, MACD

  2. ๐ŸŒŠ Sentiment & Momentum Analyst โ€” Reddit community sentiment + price momentum

  3. ๐Ÿ›ก๏ธ Risk Manager โ€” Volatility, drawdown risk, mean-reversion signals

Output: STRONG BUY / BUY / HOLD / SELL / STRONG SELL with confidence score


๐Ÿ”ง All 37 MCP Tools

๐Ÿ“Š Backtesting Engine

Tool

Description

backtest_strategy

Backtest 1 of 9 strategies with institutional metrics (Sharpe, Calmar, Expectancy). Supports 1d and 1h timeframes; optional full trade log + equity curve.

compare_strategies

Run all 9 strategies on the same symbol and rank by performance.

walk_forward_backtest_strategy

Train/test split walk-forward validation with overfitting verdict (ROBUST / MODERATE / WEAK / OVERFITTED).

9 Strategies to Test:

  • rsi โ€” RSI oversold/overbought mean reversion

  • bollinger โ€” Bollinger Band mean reversion

  • macd โ€” MACD golden/death cross

  • ema_cross โ€” EMA 20/50 Golden/Death Cross

  • supertrend โ€” ATR-based Supertrend trend following ๐Ÿ”ฅ

  • donchian โ€” Donchian Channel breakout (Turtle Trader style)

  • rsi_pullback โ€” Dip-buy in confirmed uptrend (SMA50>SMA200 + RSI<40 entry) ๐Ÿ†•

  • keltner_breakout โ€” ATR-normalized breakout (EMA20 + 2ยทATR upper band) ๐Ÿ†•

  • triple_ema โ€” EMA 20/50 cross gated by SMA200 trend filter ๐Ÿ†•

๐Ÿ†• strategies require period='1y' or '2y' so the SMA200 trend filter can complete its warmup.

Metrics you get: Win Rate, Total Return, Sharpe Ratio, Calmar Ratio, Max Drawdown, Profit Factor, Expectancy, Best/Worst Trade, vs Buy-and-Hold, with realistic commission + slippage simulation.

Example prompt: "Compare all 9 strategies on MSFT for 2 years"
โ†’ #1 triple_ema:        +15.1% | Sharpe:  0.0 | WR: 100%
โ†’ #2 keltner_breakout:  +14.3% | Sharpe:  4.7 | WR:  40%
โ†’ #3 bollinger:         +12.2% | Sharpe:  4.1 | WR:  64%
โ†’ Buy & Hold:            -2.1%

๐Ÿ’ฐ Yahoo Finance โ€” Real-Time Prices (New in v0.6.0)

Tool

Description

yahoo_price

Real-time quote: price, change %, 52w high/low, market state

market_snapshot

Global overview: S&P500, NASDAQ, VIX, BTC, ETH, EUR/USD, SPY, GLD

Supports: Stocks (AAPL, TSLA, NVDA), Crypto (BTC-USD, ETH-USD, SOL-USD), ETFs (SPY, QQQ, GLD), Indices (^GSPC, ^DJI, ^IXIC, ^VIX), FX (EURUSD=X), Turkish (THYAO.IS, SASA.IS)


๐ŸŒ Global Stock Screener โ€” Common & Preferred Shares

Tool

Description

stock_screener

List common or preferred stocks for any TradingView country market (america, korea, germany, brazil, โ€ฆ) with price, currency, % change, dividend yield โ€” ranked by market cap. The API twin of TradingView's "Common stock" / "Preferred stock" symbol-search filter.

stock_prices

Direct price lookup for specific symbols (comma-separated EXCHANGE:SYMBOL, e.g. NASDAQ:NVDA, KRX:005930) โ€” price, currency, daily % change, with unrecognized tickers named in not_found.


๐Ÿง  AI Sentiment & Intelligence

Tool

Description

market_sentiment

Reddit sentiment across finance communities (bullish/bearish score, top posts)

financial_news

Live RSS headlines from Yahoo Finance, MarketWatch, CNBC, CoinDesk, CoinTelegraph

combined_analysis

Power Tool: TradingView technicals + Reddit sentiment + live news โ†’ confluence decision. Now backed by retry + 60s cache for resilience against transient screener errors.


๐Ÿ“ˆ Technical Analysis Core

Tool

Description

get_technical_analysis

Full TA: RSI, MACD, Bollinger, 23 indicators with BUY/SELL/HOLD

get_multiple_analysis

Bulk TA for multiple symbols at once

get_bollinger_band_analysis

Proprietary ยฑ3 BB rating system

get_stock_decision

3-layer decision engine (ranking + trade setup + quality score)

screen_stocks

Multi-exchange screener with 20+ filter criteria

scan_by_signal

Scan by signal type (oversold, trending, breakout...)

get_candlestick_patterns

15 candlestick pattern detector

get_multi_timeframe_analysis

Weeklyโ†’Dailyโ†’4Hโ†’1Hโ†’15m alignment analysis


๐ŸŒ Multi-Exchange Support

Exchange

Tools

Binance

Crypto screener, all pairs

KuCoin / Bybit+

Crypto screener

NASDAQ / NYSE

US stocks (AAPL, TSLA, NVDA...)

EGX (Egypt)

egx_market_overview, egx_stock_screener, egx_trade_plan, egx_fibonacci_retracement

Turkish (BIST)

Via TradingView screener


๐Ÿ’ฌ Example AI Conversations

You: "Give me a full market snapshot right now"
AI: [market_snapshot] โ†’ S&P500 -3.4%, BTC +0.1%, VIX 31 (+13%), EUR/USD 1.15

You: "What is Reddit saying about NVDA?"
AI: [market_sentiment] โ†’ Strongly Bullish (0.41) | 23 posts | 18 bullish

You: "Backtest RSI strategy on BTC-USD for 2 years"
AI: [backtest_strategy] โ†’ +31.5% return | 100% win rate | 2 trades | B&H: -5%

You: "Which of the 9 strategies worked best on MSFT in the last 2 years?"
AI: [compare_strategies] โ†’ triple_ema #1 (+15.1%, WR 100%), keltner_breakout #2 (+14.3%), macd last (-23.4%)

You: "Run walk-forward backtest on supertrend for SPY"
AI: [walk_forward_backtest_strategy] โ†’ Verdict: ROBUST (avg robustness 0.92) | OOS return +8.5%

You: "Analyze TSLA with all signals: technical + sentiment + news"
AI: [combined_analysis] โ†’ BUY (Technical STRONG BUY + Bullish Reddit + Positive news)

๐Ÿ’– Support the Project

This framework is free and open source, built in spare time. If it saves you hours of research or helps you make better decisions, please consider sponsoring:

Tier

Monthly

What You Get

โ˜• Coffee

$5

Heartfelt gratitude + name in README

๐Ÿš€ Supporter

$15

Above + priority bug fixes

๐Ÿ’Ž Pro

$30

Above + priority feature requests

Every sponsor directly funds new features like Walk-Forward Backtesting, Twitter/X sentiment, and managed cloud hosting.


๐Ÿ“‹ Roadmap

  • TradingView technical analysis (30+ indicators)

  • Multi-exchange screener (Binance, KuCoin, MEXC, EGX, US stocks)

  • Reddit sentiment analysis

  • Live financial news (Yahoo / MarketWatch / CNBC / CoinDesk / CoinTelegraph)

  • Yahoo Finance real-time prices

  • Backtesting engine (9 strategies + Sharpe / Calmar / Expectancy)

  • Walk-forward backtesting (overfitting detection)

  • Resilience layer (retry + TTL cache) on screener provider

  • Hourly (1h) backtesting timeframe

  • Twitter/X market sentiment

  • Paper trading simulation

  • Managed cloud hosting (no local setup)


๐Ÿ“„ License

MIT License โ€” see LICENSE for details.


Disclaimer: This tool is for educational and research purposes only. It does not constitute financial advice. Always do your own research before making investment decisions.

Available Tools

37 tools
advanced_candle_patternA
Read-only

Advanced candle pattern analysis using multi-timeframe data.

Args: exchange: Exchange name (BINANCE, KUCOIN, etc.) base_timeframe: Base timeframe for analysis (5m, 15m, 1h, 4h) pattern_length: Number of consecutive periods to analyse (2-4) min_size_increase: Minimum percentage increase in candle size limit: Maximum number of results to return

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
exchangeNoKUCOIN
base_timeframeNo15m
pattern_lengthNo
min_size_increaseNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already cover readOnlyHint=true and destructiveHint=false, so the safety profile is disclosed. The description adds the multi-timeframe behavioral aspect and parameter constraints, but does not reveal return format or other operational details. This is acceptable given annotation coverage, but not rich.

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 appropriately concise: one purpose sentence followed by an Args list. Every line carries useful information and it is front-loaded with the core purpose.

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?

The description covers purpose and all parameters, but lacks return-value information (no output schema exists) and does not distinguish itself from sibling tools like multi_timeframe_analysis. These gaps are notable given the absence of structured output documentation.

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%, but the description's Args section provides clear explanations for all five parameters, including concrete examples and ranges (e.g., 'BINANCE, KUCOIN', '5m, 15m, 1h, 4h', '2-4'). This fully compensates for the schema's lack of descriptions.

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 candle pattern analysis using multi-timeframe data,' which is a specific verb+resource combination. However, it does not explicitly differentiate from sibling tools like consecutive_candles_scan or multi_timeframe_analysis, so it misses full distinction.

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 gives some context ('using multi-timeframe data') implying when this tool is appropriate, but it offers no explicit when-to-use/when-not-to-use guidance or references to alternatives. This is enough for an implied usage but not clear directional guidance.

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

backtest_strategyA
Read-only

Backtest a trading strategy on historical data with institutional-grade metrics.

Args: symbol: Yahoo Finance symbol (AAPL, BTC-USD, THYAO.IS, ^GSPC) strategy: rsi | bollinger | macd | ema_cross | supertrend | donchian | rsi_pullback | keltner_breakout | triple_ema (rsi_pullback and triple_ema need period >= '1y' for SMA200 warmup) period: '1mo', '3mo', '6mo', '1y', '2y' initial_capital: Starting capital in USD (default $10,000) commission_pct: Per-trade commission % (default 0.1%) slippage_pct: Per-trade slippage % (default 0.05%) interval: '1d' (daily) or '1h' (hourly) include_trade_log: Include full per-trade log (default False) include_equity_curve: Include equity curve data points (default False)

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo1y
symbolYes
intervalNo1d
strategyYes
slippage_pctNo
commission_pctNo
initial_capitalNo
include_trade_logNo
include_equity_curveNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: it lists strategy options, notes warmup requirements for specific strategies, and explains that include_trade_log and include_equity_curve control additional outputs. This goes beyond the schema and annotations.

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 efficiently structured: a one-sentence purpose statement followed by a clean list of arguments with defaults and inline constraints. Every line adds useful information, and the format is front-loaded with the tool's purpose.

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?

With 9 parameters and no output schema, the description covers all parameters and includes important constraints and examples. It mentions 'institutional-grade metrics' as the primary output, and the optional trade log/equity curve flags imply the default return shape. Missing return format details are a minor gap, but overall the description is complete enough for an agent to invoke the tool correctly.

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 does so by explaining every parameter: symbol format examples, allowed strategy values, period options, interval options, and the meaning of commission_pct, slippage_pct, and booleans for additional outputs. This adds meaning well beyond the schema's bare property listings.

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 states the tool's function clearly: 'Backtest a trading strategy on historical data with institutional-grade metrics.' It uses a specific verb (backtest) and resource (strategy on historical data). It distinguishes from siblings like compare_strategies and walk_forward_backtest_strategy primarily by the singular focus on one strategy, though it doesn't explicitly name alternatives.

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 performing a single-strategy backtest but provides no explicit guidance on when to choose this tool versus alternatives like compare_strategies or walk_forward_backtest_strategy. It does include parameter-level constraints (e.g., rsi_pullback and triple_ema need period >= '1y' for SMA200 warmup), which gives some context but not tool-selection guidance.

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

bitcoin_market_pulseA
Read-only

Single-call BTC macro context: price, dominance, total market cap + risk assessment.

Use this WHENEVER analyzing any cryptocurrency (altcoin or BTC itself) to get the broader market frame in one shot. A SOL/ETH/whatever setup looks very different when BTC is dumping with rising dominance vs. when alts are leading. Calling this once gives Claude the macro context to provide Bitcoin-aware commentary alongside the per-coin analysis - without chaining 2-3 separate yahoo_price + manual reasoning calls.

Returns:

  • bitcoin: price, 24h change %, volume, market cap

  • dominance: BTC and ETH market-cap share of total crypto

  • total_market: total crypto mcap + 24h change + active coin count

  • assessment: label (HIGH_RISK / ALT_RISK / ALT_FAVORABLE / OPPORTUNITY_WITH_CAUTION / NEUTRAL) + 1-paragraph reasoning

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavior context beyond that by detailing the return structure (bitcoin, dominance, total_market, assessment) and the risk assessment labels, which is not present in the annotations or schema.

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 a clear one-line purpose, followed by a usage rationale and a structured return summary. Every section contributes meaningfully, and the length is justified by the richness of what the tool returns.

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

Completeness5/5

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

Given the tool has no inputs and no output schema, the description fully compensates by enumerating all return fields and risk labels. It also provides usage context and alternatives, making the tool self-contained and well-understood.

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, so the baseline for this dimension is 4. The description adds no input semantics because none are needed; instead it clarifies the output format, which is appropriate for a no-input tool.

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 function with a specific verb ('Single-call BTC macro context') and enumerates its components: price, dominance, total market cap, and risk assessment. It distinguishes itself from sibling tools by emphasizing that it provides macro context for any crypto analysis, contrasting with per-coin or other market 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?

Explicitly instructs when to use: 'Use this WHENEVER analyzing any cryptocurrency' and provides a concrete scenario (BTC dumping vs. alts leading). It also names an alternative approach (chaining yahoo_price + manual reasoning) that this tool replaces, making the usage boundary clear.

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

bollinger_scanA
Read-only

Scan for assets with low Bollinger Band Width (squeeze detection). Works with crypto and stocks.

This scans a whole EXCHANGE for squeezes (canonical name is exactly bollinger_scan; there is no "get_bollinger_band_analysis" tool). For the Bollinger read of ONE symbol, call coin_analysis instead.

Example: bollinger_scan(exchange="BINANCE", timeframe="15m", bbw_threshold=0.008)

Args: exchange: Exchange โ€” crypto: KUCOIN, BINANCE, BYBIT, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, BURSA, HKEX, SSE, SZSE, TWSE, TPEX timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M. Typical squeeze thresholds: 15mโ†’0.008, 1hโ†’0.02, 4hโ†’0.04, 1Dโ†’0.12 bbw_threshold: Maximum BBW value to filter (default 0.04) limit: Number of rows to return (max 100)

Returns list[dict] on success. On ANY failure returns a structured error envelope {"error": {"code": ..., "retryable": ...}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
exchangeNoKUCOIN
timeframeNo4h
bbw_thresholdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A5/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context: it scans a whole exchange, works with crypto and stocks, and returns a structured error envelope on any failure. It also clarifies the canonical name to avoid tool confusion. This adds significant transparency beyond annotations without contradiction.

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-organized with a clear intro, differentiation note, example, argument descriptions, and return behavior. Every sentence adds value, and despite the length, it remains focused and front-loaded with the core purpose. No redundancy or filler.

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

Completeness5/5

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

Given the tool's complexity (4 parameters, multiple exchange categories, thresholds, sibling relationships), the description fully covers purpose, usage, parameters, return types, and error behavior. The presence of an output schema does not require explaining return values, but the description does so anyway, making it self-contained.

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 has 0% description coverage, so the description carries the full burden and excels. It explains each parameter: exchange lists supported venues for crypto/stocks, timeframe enumerates valid values with typical squeeze thresholds, bbw_threshold defines the filter meaning and default, limit specifies maximum rows. An example call further clarifies 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: 'Scan for assets with low Bollinger Band Width (squeeze detection).' It specifies the resource (assets), the action (scan), and explicitly differentiates from a sibling tool: 'For the Bollinger read of ONE symbol, call coin_analysis instead.' This is a specific verb+resource+scope with clear sibling distinction.

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?

Provides explicit when-to-use guidance: scans a whole exchange for squeezes, not a single symbol. It names the alternative tool for single-symbol analysis ('coin_analysis'). Also supplies typical threshold values per timeframe, giving concrete usage context. This goes beyond minimal guidance.

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

coin_analysisA
Read-only

Get detailed analysis for a specific asset (coin or stock) on specified exchange and timeframe.

This is the canonical single-symbol technical readout (there is no "get_technical_analysis" or "get_technical_summary" tool โ€” use THIS one). Use multi_timeframe_analysis instead when you need trend alignment across several timeframes, and combined_analysis when you also want news sentiment + headlines in the same call.

Example: coin_analysis(symbol="BTCUSDT", exchange="BINANCE", timeframe="1h")

Args: symbol: Bare ticker, no exchange prefix โ€” crypto: "BTCUSDT", "ETHUSDT"; stocks: "COMI" (EGX), "THYAO" (BIST), "600519" (SSE), "300251" (SZSE), "2330" (TWSE), "3105" (TPEX) exchange: Exchange โ€” crypto: KUCOIN, BINANCE, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, BURSA, HKEX, SSE, SZSE, TWSE, TPEX. If the symbol isn't listed there, the error's listed_on field names exchanges that do list it. timeframe: Time interval (5m, 15m, 1h, 4h, 1D, 1W, 1M)

Returns: Detailed analysis with all indicators and metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
exchangeNoKUCOIN
timeframeNo15m

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, which covers the safety profile. The description adds valuable behavior context: it is the canonical single-symbol readout, includes detailed error handling for symbol-exchange mismatches, and clarifies the return type (all indicators and metrics). It doesn't mention rate limits or output format specifics, but for a read-only analysis tool, this is sufficient.

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?

Although the description is moderately long, it is well-structured with an intro, canonical note, alternatives, example, Args section, and Returns. Every sentence serves a purposeโ€”no fluffโ€”and the first sentence immediately states the tool's function. The format is front-loaded and easy to scan.

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?

The tool has 3 parameters, no enums, and no output schema, so the description carries significant weight. It covers all parameter formats, an example, error handling, and a return summary. However, the return description ('Detailed analysis with all indicators and metrics') is vague; including a hint about what metrics are returned would push this to a 5.

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 fully compensates. It explains symbol with concrete examples (BTCUSDT, COMI, THYAO, etc.), enumerates exchange values for both crypto and stocks, and lists all valid timeframes. This goes far beyond the bare schema (type string) and gives agents everything needed to fill parameters correctly.

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 'Get detailed analysis for a specific asset on specified exchange and timeframe' with a specific verb and resource. It explicitly distinguishes from siblings by noting this is the canonical single-symbol readout and there is no 'get_technical_analysis' or 'get_technical_summary' tool, making purpose unambiguous.

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 provides explicit guidance on when to use this tool vs alternatives: use multi_timeframe_analysis for trend alignment across timeframes and combined_analysis when news sentiment is needed. It also gives practical error handling advice (the error's listed_on field names exchanges) and an example invocation.

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

combined_analysisA
Read-only

POWER TOOL: TradingView technical analysis + news sentiment + financial news.

Use this when you want TA AND sentiment AND news for one symbol in a single call. For indicators only, coin_analysis is faster; for cross-timeframe trend alignment use multi_timeframe_analysis.

Example: combined_analysis(symbol="NVDA", exchange="NASDAQ", timeframe="1D")

Args: symbol: Bare ticker, no exchange prefix ("AAPL", "BTCUSDT", "THYAO", "GDX") exchange: Exchange (NASDAQ, NYSE, AMEX, NYSEARCA, PCX, BINANCE, KUCOIN, MEXC, BIST, EGX, TWSE, TPEX) timeframe: Analysis timeframe (5m, 15m, 1h, 4h, 1D, 1W)

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
exchangeNoNASDAQ
timeframeNo1D

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds context beyond that: it is a 'POWER TOOL' that combines three data sources, and it notes that coin_analysis is 'faster' for indicators only, implying this tool may be slower or heavier. It does not disclose output format or potential rate limits, but given the strong annotation coverage, this is sufficient.

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-organized with a clear purpose statement, usage guidance, example, and Args section. It is front-loaded and avoids unnecessary fluff, though the 'POWER TOOL:' prefix is slightly informal but still serves to emphasize the tool's composite nature.

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 complex tool combining TA, sentiment, and news, the description explains what it does and its parameters, but it does not describe the return value or output structure. With no output schema, this is a notable gap. It also omits any mention of supported symbol types beyond the exchange list, which is partially inferred.

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 descriptions are absent (0% coverage), but the description compensates fully by explaining each parameter: symbol must be a 'bare ticker, no exchange prefix', exchange lists valid values, and timeframe lists valid intervals. The example call also clarifies usage, which is especially valuable for the symbol parameter.

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 function: 'TradingView technical analysis + news sentiment + financial news.' It explicitly says 'Use this when you want TA AND sentiment AND news for one symbol in a single call,' and distinguishes from siblings by naming coin_analysis for indicators-only and multi_timeframe_analysis for cross-timeframe alignment.

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?

Provides explicit usage guidance: 'Use this when...' and names alternatives with specific conditions. It also gives an example call and lists accepted exchanges and timeframes, making it very clear when to choose this tool over others.

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

compare_strategiesA
Read-only

Run all 9 strategies (RSI, Bollinger, MACD, EMA Cross, Supertrend, Donchian, RSI Pullback, Keltner Breakout, Triple EMA) and return a ranked leaderboard.

Args: symbol: Yahoo Finance symbol (AAPL, BTC-USD, SPYโ€ฆ) period: '1mo', '3mo', '6mo', '1y', '2y' (period >= '1y' recommended so rsi_pullback and triple_ema can complete SMA200 warmup; otherwise they contribute zero trades) initial_capital: Starting capital in USD (default $10,000) interval: '1d' (daily) or '1h' (hourly)

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo1y
symbolYes
intervalNo1d
initial_capitalNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare this as a safe, read-only operation. The description adds valuable behavioral context, such as the consequence of using shorter periods ('otherwise they contribute zero trades'), which is not apparent from annotations or schema.

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 with a concise action sentence followed by a clean Args list. Every sentence provides necessary information, and there is no redundant or vague wording.

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 read-only analysis tool with clear parameters and caveats, the description is nearly complete. It lacks details on the exact ranking metrics in the returned leaderboard, but this is not essential for selecting or invoking the tool correctly.

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 coverage is 0%, so the description carries the full burden. It explains every parameter: symbol with examples, period with allowed values and a warmup caveat, initial_capital with default, and interval with '1d' vs '1h'. This fully compensates for the schema's lack of descriptions.

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 function: 'Run all 9 strategies... and return a ranked leaderboard.' It enumerates the exact strategies, making it highly specific and distinct from sibling tools like backtest_strategy or multi_agent_analysis.

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 clear context for parameter usage, especially the recommendation that 'period >= "1y"' is needed for rsi_pullback and triple_ema to complete SMA200 warmup. However, it does not explicitly compare this tool to alternatives or state when to choose it over similar backtesting tools.

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

consecutive_candles_scanA
Read-only

Scan for coins with consecutive growing/shrinking candles pattern.

Args: exchange: Exchange name (BINANCE, KUCOIN, etc.) timeframe: Time interval (5m, 15m, 1h, 4h) pattern_type: "bullish" (growing candles) or "bearish" (shrinking candles) candle_count: Number of consecutive candles to check (2-5) min_growth: Minimum growth percentage for each candle limit: Maximum number of results to return

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
exchangeNoKUCOIN
timeframeNo15m
min_growthNo
candle_countNo
pattern_typeNobullish

TDQS

A4.1/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, which matches the description's 'Scan' action. However, the description adds minimal behavioral context beyond the annotations, such as return format or pagination behavior. It is consistent and safe, but does not enrich the annotation-provided transparency.

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 concise and front-loaded with the core scanning purpose, followed by a clearly formatted Args block. Every sentence provides necessary information without redundancy or fluff, making it efficient and easy to parse.

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?

The description covers the tool's purpose and parameter semantics well, and annotations provide safety context. Since there is no output schema, the description could better explain the exact return structure, but 'Scan for coins' and 'limit' implying a list of matching coins is sufficient for a straightforward read-only scanner. Overall, it is fairly complete for the tool's complexity.

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 compensates by providing meaningful Arg descriptions for all 6 parameters. It explains pattern_type values ('bullish'/'bearish'), gives a range for candle_count (2-5), defines min_growth as percentage, and clarifies timeframe and exchange names. This adds significant value beyond the empty schema descriptions.

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 'Scan for coins with consecutive growing/shrinking candles pattern' uses a specific verb and resource, clearly indicating this tool scans for coins based on a specific candle pattern. This distinguishes it from siblings like volume breakout scanners or advanced candle pattern tools, which focus on different detection logic.

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 scanning consecutive candle patterns but does not explicitly state when to use this tool versus alternatives. No mention of exclusions, prerequisites, or alternative tools is provided, leaving the usage context implied by the tool name and description.

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

egx_fibonacci_retracementA
Read-only

Fibonacci retracement analysis for EGX stocks.

Args: symbol: EGX stock symbol (e.g., "COMI", "TMGH", "FWRY") lookback: Period for swing high/low โ€” "1M", "3M", "6M", "52W", "ALL" (default 52W) timeframe: Analysis timeframe (5m, 15m, 1h, 4h, 1D, 1W, 1M โ€” default 1D)

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
lookbackNo52W
timeframeNo1D

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so no safety contradiction exists. The description adds parameter options (lookback, timeframe) but does not disclose output format, calculation methodology, or other behavioral traits beyond the structured annotations.

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 succinct, consisting of a one-sentence summary followed by a clean, structured args list. No redundant information is present, and each line adds value.

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?

Parameter documentation is thorough, and the tool is straightforward. However, the description does not mention what the analysis returns (e.g., retracement levels or a chart), and there is no output schema to fill this gap, leaving a minor completeness issue.

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 description explains all three parameters in detail, providing examples for symbol, valid values for lookback and timeframe, and defaults. Since the input schema has 0% description coverage, this fully compensates for the missing schema-level documentation.

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 'Fibonacci retracement analysis for EGX stocks,' which is a specific verb+resource combination. This distinguishes it from sibling tools like egx_market_overview and egx_sector_scan, none of which mention Fibonacci.

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 Fibonacci analysis on EGX stocks but provides no explicit guidance on when to choose this tool over alternatives. It does not mention exclusions or alternative tools, leaving the context partially implied.

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

egx_index_analysisA
Read-only

Analyse an EGX index showing constituent performance with full indicators.

Args: index: EGX30, EGX70, EGX100, SHARIAH33, EGX35LV, TAMAYUZ timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M (default 1D) limit: Number of stocks to show in detail (max 100)

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoEGX30
limitNo
timeframeNo1D

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds parameter constraints and mentions 'full indicators' as output, but it does not disclose details like pagination, data delays, or the specific indicator names, which would be useful context beyond the annotations.

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: one sentence explaining the purpose followed by a structured args list. Every word earns its place, with no fluff or redundancy. It is front-loaded with the core purpose and then provides parameter specifics.

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?

With no output schema, the description's mention of 'full indicators' gives a high-level view but lacks specifics on return structure (e.g., fields like price change, volume, weight). However, the tool is relatively simple with all parameters explained, and annotations cover safety. It is adequate for an agent to understand the tool's purpose and usage, though a bit more output detail would make it fully complete.

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%, but the description fully compensates by enumerating valid index values (EGX30, EGX70, EGX100, SHARIAH33, EGX35LV, TAMAYUZ), valid timeframes (5m, 15m, 1h, 4h, 1D, 1W, 1M) with a default of 1D, and explaining the limit parameter as 'Number of stocks to show in detail (max 100)'. This adds complete semantics beyond the bare 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 states 'Analyse an EGX index showing constituent performance with full indicators', providing a specific verb (analyse), resource (EGX index), and output scope (constituent performance with indicators). This clearly distinguishes it from sibling tools like egx_market_overview or egx_sector_scan, which focus on broader market or sector views.

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 through the specification of index, timeframe, and limit, but it does not explicitly state when to use this tool versus alternatives. It lacks guidance such as 'use this for index-level constituent analysis instead of market overview' or any exclusionary context.

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

egx_market_overviewB
Read-only

Get a comprehensive overview of the Egyptian Exchange (EGX) market.

Args: timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M (default 1D for stocks) limit: Number of stocks per category (max 20)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
timeframeNo1D

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, and destructiveHint, so the safety profile is covered. The description adds no behavioral details such as data source, real-time nature, or pagination behavior, beyond the fact that it returns an overview. Thus it provides little value beyond the annotations.

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 compact and well-structured, leading with a one-sentence purpose followed by an 'Args:' block listing each parameter with its semantics. No filler or redundant statements, making it highly efficient.

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 no output schema, the description should at least hint at what the response contains, but it doesn't. There's no mention of what categories are included, whether it returns indices, top movers, or other data. The tool is simple enough that this lack may be tolerable, but it still leaves the agent guessing about the return format.

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 for the lack of parameter documentation in the schema. It does this by explaining the allowed values for timeframe (5m to 1M) with a default, and stating that limit is the 'Number of stocks per category' with a max of 20. This gives the agent sufficient semantic understanding of both parameters, though it doesn't explain how they affect the output.

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 it provides a 'comprehensive overview of the Egyptian Exchange (EGX) market,' which is a specific verb and resource. It distinguishes itself from sibling tools like egx_sector_scan or egx_index_analysis by focusing on the overall market rather than a specific segment. However, it doesn't enumerate exactly what 'overview' includes, so it's not maximally specific.

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 offers no guidance on when to use this tool versus alternatives. It merely states the tool's function and its parameters, without mentioning exclusions or related tools like market_snapshot or egx_sector_scan. Even implied usage context is absent.

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

egx_sector_scanA
Read-only

Scan EGX stocks by sector. Shows available sectors if none specified.

Args: sector: Sector name (banks, healthcare_and_pharma, real_estate, etc.) Leave empty to list all sectors. timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M limit: Max results per sector (max 50)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sectorNo
timeframeNo1D

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds behavioral nuance like 'Shows available sectors if none specified' and 'Max results per sector (max 50)'. These add value beyond annotations, though it doesn't describe output format or error behavior.

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 concise, starting with a clear one-liner, then a helpful conditional note, followed by a structured args block. Every sentence earns its place; no filler.

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 read-only scan tool with fully documented parameters, the description is nearly complete. It could mention the return format, but given no output schema, it's not necessary. The parameter coverage is strong.

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 bears full burden. It enriches all three parameters: lists sector examples, specifies exact timeframe values (5m, 15m, 1h, 4h, 1D, 1W, 1M), and imposes a max limit of 50. This fully compensates for the schema's lack of descriptions.

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 'Scan EGX stocks by sector' with a specific verb and resource. However, it does not differentiate from the closely-named sibling 'egx_sector_scanner', so it falls short of a 5.

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 provides usage context (e.g., 'Leave empty to list all sectors') but does not explicitly mention when to use this tool over alternatives like egx_sector_scanner. The usage is implied rather than explicitly contrasted.

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

egx_sector_scannerA
Read-only

Sector rotation scanner for EGX โ€” identifies hot/cold sectors and top picks.

Args: timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M (default 1D) top_n_sectors: Number of top sectors to show stock picks for (1-18, default 5) top_n_stocks: Number of top stocks per highlighted sector (1-10, default 3) min_stock_score: Minimum stock score for picks (0-100, default 60)

ParametersJSON Schema
NameRequiredDescriptionDefault
timeframeNo1D
top_n_stocksNo
top_n_sectorsNo
min_stock_scoreNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the operational scope (hot/cold sectors, top picks) and parameter ranges, but does not disclose any additional behavioral traits such as output format, data source, or limitations. No contradiction with annotations exists.

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 a single succinct sentence followed by a clean, readable args list. Every element serves a purpose; there is no filler or repetition.

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?

The description covers the tool's purpose and all four parameters comprehensively. It lacks an explicit description of the return value/output structure, which is notable given there is no output schema. However, the read-only annotations and thorough parameter documentation make the tool well-specified for an agent to use.

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 input schema has 0% description coverage, and the description fully compensates by explaining each parameter: timeframe with allowed values (5m, 15m, 1h, 4h, 1D, 1W, 1M), top_n_sectors (1-18), top_n_stocks (1-10), and min_stock_score (0-100). This adds significant meaning beyond the schema's type/default information.

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?

Description states 'Sector rotation scanner for EGX โ€” identifies hot/cold sectors and top picks,' providing a specific verb ('identifies') and resource (EGX sectors). It clearly conveys the function but does not distinguish from the similarly named sibling 'egx_sector_scan', so it stops short of full clarity.

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 usage context or alternatives are mentioned. The description does not state when to use this tool versus similar siblings like 'egx_sector_scan' or 'egx_market_overview'. The only implied usage comes from the tool's name and opening sentence, which is insufficient.

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

egx_stock_screenerA
Read-only

Production stock ranking engine for EGX โ€” finds strong stocks with actionable setups.

Args: timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M (default 1D) min_score: Minimum stock score to include (0-100, default 55) index_filter: Filter by index โ€” EGX30, EGX70, EGX100, SHARIAH33, EGX35LV, TAMAYUZ limit: Number of results (max 50)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
min_scoreNo
timeframeNo1D
index_filterNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description only needs to add context. It adds parameter constraints (timeframe options, min_score range, limit max 50) and emphasizes production readiness, which is useful beyond annotations. However, it does not describe output structure or rate limits, though this is a minor gap given the annotation coverage.

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 concise and well-structured: a single front-loaded purpose statement followed by a clean args block. Every sentence and line provides necessary information without redundancy.

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 tool with four optional parameters, no output schema, and simple annotations, the description is nearly complete for selection and invocation. It covers purpose, all parameters, and constraints. The only minor gap is not explicitly stating the return format (e.g., a list of stocks with scores), but this is reasonably implied.

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 has zero description coverage, but the tool description explicitly explains all four parameters with allowed values, defaults, and constraints. It adds significant meaning beyond the bare schema (e.g., index_filter values, max limit of 50, score range 0-100).

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 identifies the tool as a 'Production stock ranking engine for EGX' with the specific action of finding 'strong stocks with actionable setups.' This distinguishes it from generic market overview tools or price lookups by focusing on ranking and trade setups.

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 use for screening EGX stocks by timeframe, score, and index, but does not explicitly state when to use it versus alternatives like egx_market_overview or stock_screener. No exclusion criteria or alternative references are provided.

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

egx_trade_planA
Read-only

Generate a full trade plan for a specific EGX stock.

Args: symbol: EGX stock symbol (e.g., "COMI", "TMGH", "FWRY") timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M (default 1D)

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
timeframeNo1D

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds no behavioral details such as output format, latency, data sources, or what 'full trade plan' entails beyond the name. It neither contradicts annotations nor enriches the agent's understanding of side effects.

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 compact and front-loaded: the first sentence states the purpose, followed by a tight args list. Every sentence earns its place, with no filler or redundancy.

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?

The tool is simple (2 params, no output schema), and the description covers the core essentials of what it does and how to call it. However, the phrase 'full trade plan' is vagueโ€”the description does not clarify what the returned plan contains (e.g., entry/exit levels, risk guidelines, or analysis), which would be useful for an agent deciding how to use the result and whether this tool meets the user's request.

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 schema description coverage at 0%, the description fully compensates. It provides concrete EGX symbol examples ('COMI', 'TMGH', 'FWRY') and explicitly enumerates valid timeframe values (5m, 15m, 1h, 4h, 1D, 1W, 1M) with a default, making parameter selection unambiguous and greatly exceeding the schema's bare string types.

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 'Generate a full trade plan for a specific EGX stock,' using a specific verb ('generate'), a distinct resource ('full trade plan'), and explicit scope (EGX stock). This differentiates it from sibling tools like egx_market_overview or egx_sector_scan, which focus on overviews or screens.

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 gives no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or why an agent should pick this over sibling tools such as multi_agent_analysis or backtest_strategy. The usage context is only implied by the purpose statement.

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

financial_newsA
Read-only

Real-time financial news via Marketaux (licensed).

Args: symbol: Optional symbol filter ("AAPL", "BTC"). None = all news. category: News category ("crypto", "stocks", "all") limit: Max number of news items

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
symbolNo
categoryNostocks

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the source (Marketaux) and licensing, but does not disclose details like rate limits, response format, or pagination. It meets the baseline but adds limited 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 concise and front-loaded, with the core purpose in one sentence followed by a compact argument list. Every line adds value without unnecessary verbosity.

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?

The description covers purpose and parameters, and annotations cover safety. It lacks any mention of return format or output structure, which is a minor gap given there is no output schema. Overall, it is nearly complete for a simple news-fetching 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 schema has 0% description coverage, so the description compensates by explaining each parameter: symbol filter, category options, and limit meaning. It provides meaningful context beyond the schema's bare types and defaults, though details could be slightly richer (e.g., symbol format).

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 it provides real-time financial news via Marketaux, which is a specific resource and source. This distinguishes it from sibling analysis and scanning tools, making the purpose unambiguous.

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 financial news retrieval but gives no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives or exclusions, though the tool's unique news focus makes the context somewhat obvious.

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

futures_category_snapshotA
Read-only

Quote all major front-month contracts in a specific futures category.

Args: category: equity_index | energy | metals | agriculture | rates | forex | crypto_futures

Returns: OHLCV quotes for the standard watchlist of contracts in that category. Example symbols: ES1! NQ1! (equity_index), CL1! NG1! (energy), GC1! SI1! (metals).

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoenergy

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare read-only and non-destructive behavior. The description adds useful transparency by specifying that it returns OHLCV quotes for front-month contracts from a standard watchlist, with example symbols. This goes beyond the safety profile.

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 with Args and Returns sections, front-loads the main purpose, and every sentence adds value, including examples. It is appropriately sized with no fluff.

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

Completeness5/5

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

For a simple one-parameter tool with no output schema, the description is complete: it documents the parameter values, the return format (OHLCV), and the scope (front-month, standard watchlist). The example symbols further clarify expected output.

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 input schema only defines an unconstrained string with a default, and has 0% schema description coverage. The description compensates fully by listing all acceptable category values and providing example output symbols, effectively giving enum-like guidance.

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 that the tool quotes all major front-month contracts in a specific futures category. It lists valid categories and provides example symbols, making it distinct from sibling tools like futures_market_overview or futures_watchlist.

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 clear context for when to use this tool: when needing quotes for a specific futures category, with an explicit list of categories. However, it does not mention alternative tools or specific exclusion scenarios, so it lacks full comparative guidance.

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

futures_market_overviewA
Read-only

Top futures contracts sorted by trading volume.

Args: category: all | equity_index | energy | metals | agriculture | rates | forex | crypto_futures exchanges: us (CME, COMEX, NYMEX, CBOT) | global (adds ICE, EUREX) limit: max contracts to return (default 30) volume_min: minimum volume filter (0 = no filter)

Returns: Dict with total_available count and list of contracts with OHLCV + % change.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
categoryNoall
exchangesNous
volume_minNo

TDQS

A3.7/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds return behavior (a dict with count and OHLCV data) and sorting by volume, providing some context beyond annotations. However, it does not disclose details like pagination, potential rate limits, or exact sort direction.

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 concise and well-structured with a clear purpose sentence followed by Args and Returns sections. Each parameter is documented on its own line with meaningful details, and there is no wasted text.

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 read-only overview tool with four optional parameters and no output schema, the description provides essential information: parameters, defaults, and return structure. It lacks an example or note on sort direction (descending assumed), but is otherwise sufficient for correct invocation.

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 coverage is 0%, so the description carries full responsibility for parameter explanations. It provides detailed semantics for all four parameters: category with enumerated values, exchanges with region breakdowns, limit with default, and volume_min with filter behavior. This fully compensates for the schema's lack of descriptions.

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 opens with 'Top futures contracts sorted by trading volume,' clearly indicating the tool's scope and primary function. It lacks an explicit verb like 'get' or 'list,' and while it distinguishes itself through category/exchange filters, it does not explicitly differentiate from sibling tools like futures_top_movers.

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 such as futures_top_movers or futures_category_snapshot. The parameter list implies usage scenarios (e.g., filtering by category or exchanges), but there is no explicit context or exclusion criteria.

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

futures_top_moversA
Read-only

Futures contracts with the biggest percentage moves today.

Args: direction: gainers | losers exchanges: us | global limit: max results volume_min: minimum volume filter (default 10, filters illiquid contracts)

Returns: List of futures ranked by % change with OHLCV data.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
directionNogainers
exchangesNous
volume_minNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare readOnlyHint and destructiveHint=false, so the safety profile is clear. The description adds behavioral context beyond annotations by explaining that volume_min filters illiquid contracts and that the return includes OHLCV data ranked by percentage change. It does not mention pagination or rate limits, but for a read-only list tool this is sufficient.

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 with clear Args and Returns sections, using concise wording. Every part serves a purpose with no redundancy or filler, making it easy to scan and parse.

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?

The description provides a complete picture for a straightforward data-retrieval tool: purpose, parameter semantics, and return format. It lacks some advanced context like pagination or edge-case behavior, but given the tool's simplicity and the presence of annotations, it is sufficiently complete.

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 documenting all four parameters: direction (gainers|losers), exchanges (us|global), limit (max results), and volume_min (minimum volume filter default 10, filters illiquid contracts). This adds meaning beyond the schema's basic type and default information.

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 returns futures contracts with the biggest percentage moves today, using a specific verb and resource. It distinguishes from non-futures top movers but does not explicitly differentiate from all sibling tools like futures_watchlist or futures_category_snapshot, though the focus on top percentage movers is unique.

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 such as futures_market_overview or top_gainers. It does not state exclusions or provide context for choosing this over other futures or market-scanning tools, so usage context is left entirely implicit.

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

futures_watchlistA
Read-only

Return the full categorized list of well-known front-month futures symbols.

Categories: equity_index, energy, metals, agriculture, rates, forex, crypto_futures. Use these symbols with futures_category_snapshot or coin_analysis for deeper analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the behavior is safe/read-only. The description adds that it returns the 'full categorized list' of 'well-known' symbols, giving insight into the scope and nature of the data, which goes beyond the annotation metadata.

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 two concise sentences. The first states the core function, and the second lists categories and provides usage guidance. Every sentence earns its place with no redundancy.

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

Completeness5/5

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

For a zero-parameter tool with no output schema, the description is fully adequate. It states what is returned, the categories included, and suggests next steps for deeper analysis. No important information is missing.

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% (effectively complete). No parameter explanation is needed, so the baseline of 4 applies.

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 returns a full categorized list of well-known front-month futures symbols. It uses a specific verb ('return') and resource ('futures symbols'), and distinguishes itself from sibling analysis tools by being a list/symbol source.

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 clear context for when to use it: as a source of symbols for deeper analysis with futures_category_snapshot or coin_analysis. It names alternatives and suggests follow-up usage, though it doesn't explicitly state when not to use it compared to other market overview tools.

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

market_sentimentB
Read-only

News sentiment for stocks and crypto (licensed Marketaux entity sentiment).

Args: symbol: Asset symbol ("AAPL", "BTC", "ETH", "TSLA") category: News group to search ("crypto", "stocks", "all") limit: Max articles to analyse

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
symbolYes
categoryNoall

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool's safety profile is clear. The description adds some context by mentioning the licensed Marketaux data source, but it does not describe output format, rate limits, or other behavioral traits. With annotations covering the safety aspects, this is acceptable but not rich.

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, with a one-sentence purpose followed by a clean Args list. Every sentence earns its place, and the structure is front-loaded and scannable. No superfluous 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?

The tool is simple with three parameters and no output schema. The description covers the basic purpose and parameters, but it does not explain what the sentiment output looks like (e.g., a score, classification, or text) or how to interpret it. It also lacks usage context. Given the simplicity, it is minimally adequate but leaves the return format ambiguous.

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 does so by providing example symbols, enumerating category values, and explaining limit as 'Max articles to analyse'. This adds meaningful semantics beyond the bare schema, though it could be more detailed (e.g., format expectations or defaults).

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 provides news sentiment for stocks and crypto, with the specific detail of being a licensed Marketaux entity sentiment. It distinguishes from sibling tools like financial_news by focusing on sentiment rather than raw news. However, it uses a noun phrase rather than an explicit verb like 'get' or 'analyze', which slightly reduces clarity.

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. It only lists arguments and does not mention any exclusions or preference over sibling tools like financial_news or market_snapshot. No context on typical use cases is provided.

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

market_snapshotA
Read-only

Global market overview: major indices, top crypto, FX rates, and key ETFs. Powered by Yahoo Finance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds that it is 'Powered by Yahoo Finance,' which is useful context about the data source. However, it doesn't provide additional behavioral details like data freshness, rate limits, or the scope of 'global' (e.g., which exchanges are included). Thus, it adds some value beyond annotations but not extensive 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.

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core purpose and supported by a data-source attribution. Every word earns its place, and there is no redundancy or fluff. It is well-structured and easy to scan.

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 zero-parameter, read-only tool with no output schema, the description is fairly complete: it specifies the asset classes and the data provider. However, it could be more complete by mentioning the return format, update frequency, or the fact that this is a broad snapshot versus a detailed analysis. Given the simplicity of the tool, the current description is nearly sufficient.

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?

There are zero parameters, and schema description coverage is 100% (since there is nothing to describe). The baseline for a zero-parameter tool is 4. The description doesn't need to explain parameters, and it doesn't. It does mention the output scope (what asset classes are covered), which partially compensates for the lack of parameters.

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 provides a global market overview with specific asset classes (indices, crypto, FX, ETFs). It uses a specific verb ('overview') and resource ('global market'), making the purpose clear. However, it doesn't explicitly distinguish itself from sibling tools like egx_market_overview or futures_market_overview, so it loses a point for lack of sibling differentiation.

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. There is no mention of when to choose market_snapshot over egx_market_overview, futures_market_overview, or other market analysis tools. The description simply states what it does without offering context on selection criteria or exclusions.

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

multi_agent_analysisA
Read-only

Run a multi-agent debate (Technical, Sentiment, Risk) for a specific symbol.

Args: symbol: Symbol โ€” crypto: "BTCUSDT"; stocks: "COMI" (EGX), "THYAO" (BIST), "600519" (SSE), "300251" (SZSE), "2330" (TWSE), "3105" (TPEX), "GDX" (AMEX) exchange: Exchange โ€” crypto: KUCOIN, BINANCE, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, AMEX, NYSEARCA, PCX, SSE, SZSE, TWSE, TPEX timeframe: Time interval (5m, 15m, 1h, 4h, 1D, 1W)

Returns: A structured debate between 3 AI agents culminating in a final trading decision.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
exchangeNoKUCOIN
timeframeNo15m

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context by explaining the debate process and the return value (a structured debate with a final trading decision). It does not mention side effects or rate limits, but for a read-only analysis tool, this is sufficient and does not contradict annotations.

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 with a clear purpose sentence, an Args block, and a Returns line. Every sentence adds value, with no fluff. It is appropriately sized for the tool's complexity and front-loads the main action.

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

Completeness5/5

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

Given the tool's complexity (multiple exchanges, timeframes, agent types) and the lack of an output schema, the description provides sufficient detail on inputs and outputs. It explains what the user gets back and gives enough examples to understand the parameters. The description is complete for an agent to select and invoke the tool appropriately.

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 fully compensates. The Args section provides concrete examples for symbol ('BTCUSDT', 'COMI', 'THYAO', etc.), lists valid exchange values, and specifies allowed timeframes. This goes well beyond the bare schema type definitions, giving the agent sufficient semantic detail to invoke the tool correctly.

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 states a specific verb ('Run'), a concrete resource ('a multi-agent debate'), and the exact agent types (Technical, Sentiment, Risk) for a given symbol. It is distinct from sibling tools that focus on single indicators or market scans, so it clearly differentiates its function.

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 when to use it: when a comprehensive multi-agent debate on a symbol is desired. It does not explicitly name alternatives or exclusions, but the context is clear and the tool's purpose is sufficiently unique among siblings. It lacks a 'when not to use' note, which prevents a perfect score.

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

multi_timeframe_analysisA
Read-only

Multi-timeframe alignment analysis (Weekly โ†’ Daily โ†’ 4H โ†’ 1H โ†’ 15m).

Canonical name is exactly multi_timeframe_analysis (there is no "get_multi_timeframe_analysis" tool). Use this for cross-timeframe trend alignment on ONE symbol; for a single-timeframe deep dive use coin_analysis; for TA + sentiment + news use combined_analysis.

Example: multi_timeframe_analysis(symbol="SOLUSDT", exchange="BINANCE")

Args: symbol: Bare ticker, no exchange prefix โ€” crypto: "BTCUSDT"; stocks: "COMI" (EGX), "THYAO" (BIST), "600519" (SSE), "300251" (SZSE), "2330" (TWSE), "3105" (TPEX), "GDX" (AMEX) exchange: Exchange โ€” crypto: KUCOIN, BINANCE, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, AMEX, NYSEARCA, PCX, SSE, SZSE, TWSE, TPEX

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
exchangeNoKUCOIN

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context: the exact timeframe chain, that it operates on ONE symbol only, the canonical name warning (avoiding the incorrect 'get_' variant), and the supported exchanges/markets. It does not describe output format or pagination, but the safety profile is well covered by annotations, and the added details are valuable.

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 longer than average but every sentence serves a purpose: purpose, sibling alternatives, a working example, and parameter semantics. It is well-structured with an 'Args' section, avoids filler, and front-loads the key takeaway. No redundant text is present.

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 tool with no output schema and no return value documentation, the description adequately covers what the tool does, when to use it, and how to call it with valid parameters. It could be enhanced by summarizing the expected output shape (e.g., alignment signals per timeframe), but the core selection and invocation context is complete enough for an agent to use correctly.

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 descriptions cover 0% of the parameters, but the description fully compensates by explaining `symbol` with concrete crypto and stock examples (e.g., 'BTCUSDT', 'COMI', '600519') and `exchange` with explicit lists for both crypto and stock exchanges. This provides far more meaning than the raw schema, making the invocation precise and reducing guesswork.

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 performs multi-timeframe alignment analysis with specific timeframes (Weekly to 15m). It explicitly distinguishes this from `coin_analysis` and `combined_analysis`, making the tool's purpose unambiguous even among many siblings.

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 gives direct usage guidance: use for cross-timeframe trend alignment on one symbol, with explicit alternatives for single-timeframe deep dive (`coin_analysis`) and combined TA+sentiment+news (`combined_analysis`). It also provides a concrete calling example, clearly telling the agent when and how to invoke.

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

rating_filterA
Read-only

Filter coins by Bollinger Band rating.

Args: exchange: Exchange name like KUCOIN, BINANCE, BYBIT, MEXC, etc. timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M rating: BB rating (-3 to +3): -3=Strong Sell, -2=Sell, -1=Weak Sell, 1=Weak Buy, 2=Buy, 3=Strong Buy limit: Number of rows to return (max 50)

Returns list[dict] on success. On ANY failure returns a structured error envelope {"error": {"code": ..., "retryable": ...}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
ratingNo
exchangeNoKUCOIN
timeframeNo5m

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is established. The description adds useful behavior about the return type (list[dict]) and the error envelope on failure, which goes beyond annotations. However, it does not elaborate on what the dicts contain or any further behavioral details, so a mid-range score is appropriate.

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 concise and well-structured, using an Args section to list parameters and a separate line for the return and error envelope. Every sentence is informative and there is no wasted text, making it easy to parse quickly.

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

Completeness5/5

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

Given the tool's simplicity (4 params, no required fields, no enums), the description covers all necessary aspects: it explains each parameter, the return type, and the error format. Even though an output schema exists, the description's note about list[dict] and the error envelope is sufficient for the agent to understand expected outcomes.

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 explaining each parameter: exchange with examples, timeframe with allowed values, rating with the BB scale, and limit with a max. This adds significant meaning beyond the bare schema, making it easy to select correct argument values.

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 filters coins by Bollinger Band rating, specifying the verb ('Filter'), resource ('coins'), and scope ('by rating'). However, it does not distinguish this from sibling tools like bollinger_scan, which likely also operate on Bollinger Bands, so it falls short of a 5.

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. It only explains the arguments and return behavior, leaving the agent to infer usage context from the name and description. No exclusions or alternative recommendations are mentioned.

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

smart_volume_scannerA
Read-only

Smart volume + technical analysis combination scanner.

Args: exchange: Exchange name min_volume_ratio: Minimum volume multiplier (default 2.0) min_price_change: Minimum price change percentage (default 2.0) rsi_range: "oversold" (<30), "overbought" (>70), "neutral" (30-70), "any" limit: Number of results (max 30)

Returns list[dict] on success. On ANY failure returns a structured error envelope {"error": {"code": ..., "retryable": ...}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
exchangeNoKUCOIN
rsi_rangeNoany
min_price_changeNo
min_volume_ratioNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish read-only safety (readOnlyHint=true, destructiveHint=false). The description adds useful behavioral details beyond annotations, including the return type (list[dict]) on success and the structured error envelope on any failure. It also documents valid values for rsi_range, which clarifies expected 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 well-structured with a one-line summary, an Args list, and a return/error note. It is concise and every line provides value, though the summary could be more precise about the exact screening criteria. Overall, it is appropriately sized without fluff.

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?

The tool has 5 optional parameters, all explained in the description. The output schema exists, so return details are sufficiently covered. The description also discloses failure behavior. However, it lacks specifics about supported exchanges or a typical use case, but these are minor gaps given the annotations and parameter explanations.

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 input schema provides only names, types, and defaults with no descriptions (0% coverage). The description's Args section gives clear, meaningful explanations for all five parameters, including explicit value ranges for rsi_range ('oversold' <30, etc.). This fully compensates for the lack of schema descriptions.

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 states it is a 'Smart volume + technical analysis combination scanner,' which clearly identifies the tool's action (scanning) and resource (volume/technical data). It distinguishes from siblings like 'volume_breakout_scanner' by explicitly mentioning technical analysis (RSI, price change), though it doesn't name alternatives directly.

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. The description only lists parameters and return behavior, leaving the agent to infer usage from the tool name and parameter semantics. There are no explicit exclusions or scenario recommendations.

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

stock_extended_hoursA
Read-only

Real-time pre-market and after-hours prices for a US stock symbol.

Use this when the user asks about a stock outside the regular 9:30am-4pm ET session โ€” earnings reactions, overnight news, "what is X doing in after-hours?", "how did Y open in pre-market?". Returns the most recent valid print from each session window (pre-market, regular, post-market) along with computed % changes vs. the previous close and the regular close, respectively.

During the regular session, post_market will be null (no data yet). On weekends/holidays, returns whatever's most recent in each window.

Args: symbol: US stock symbol โ€” AAPL, NVDA, TSLA, SPY, ^GSPC, etc.

Returns: - pre_market: {price, as_of_utc, change_vs_previous_close_pct} or null - regular: {price, as_of_utc, change_pct} (consolidated tape close) - post_market: {price, as_of_utc, change_vs_regular_close_pct} or null - previous_close, currency, exchange, market_state for context

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true, but the description goes far beyond: explains the most recent valid print per session window, null behavior for post_market during regular hours, weekend/holiday behavior, and computed % changes. This gives agents a precise mental model of the tool's behavior without contradicting annotations.

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?

Well-structured with a purpose statement, usage context, behavioral notes, and a clear Returns bullet list. No wasted sentences; every part adds value and the text is front-loaded with the most important info.

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

Completeness5/5

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

The description is thorough for a one-parameter tool with no output schema. It documents return fields, null handling, session windows, and holiday behavior. It fully covers what an agent needs to know to invoke and interpret results correctly.

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 0% schema description coverage, the description compensates by explaining the symbol parameter with examples (AAPL, NVDA, TSLA, SPY, ^GSPC) and limiting to US symbols. It does not exhaustively cover edge cases like crypto or international formats, but for this simple param it is adequate.

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 opens with a specific verb+resource: 'Real-time pre-market and after-hours prices for a US stock symbol.' This clearly distinguishes it from sibling tools like yahoo_price or stock_prices, which likely focus on regular hours. Use-case examples further cement its purpose.

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?

Explicitly tells when to use: 'when the user asks about a stock outside the regular 9:30am-4pm ET session' with concrete scenarios. It implies not to use for regular hours but does not name alternate tools directly. Clear context, but lacks explicit alternatives or exclusions.

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

stock_options_chainA
Read-only

Full options chain (calls + puts) for a US stock symbol and one expiry.

Use this when the user asks "what's the options chain for X?", "show me AAPL puts expiring next Friday", or wants to inspect bid/ask/IV/volume on a specific strike. If no expiry is provided, returns the nearest expiry so Claude can quote it back and ask "want a different one?".

Args: symbol: US stock symbol โ€” AAPL, NVDA, TSLA, SPY, etc. expiry: Optional ISO date (YYYY-MM-DD). Must match one of the available_expiries Yahoo returns; otherwise returns an error with the list of valid dates.

Returns: - underlying_price, underlying_change_pct - requested_expiry, available_expiries (list of YYYY-MM-DD) - call_count, put_count - calls: list of {strike, last_price, bid, ask, volume, open_interest, implied_volatility, in_the_money, expiration} - puts: same shape as calls

ParametersJSON Schema
NameRequiredDescriptionDefault
expiryNo
symbolYes

TDQS

A5/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavioral detail: the nearest-expiry default, error handling when expiry doesn't match, and a full return structure breakdown. No contradictions with annotations.

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?

Well-structured with clearly labeled sections (Args, Returns). The purpose is front-loaded, and every sentence adds valueโ€”no filler. Length is justified by the tool's complexity.

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

Completeness5/5

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

With no output schema, the description provides a comprehensive return shape including underlying price, expiry handling, counts, and detailed option fields. This makes the tool fully actionable for an agent without additional lookups.

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%, but the description fully compensates with an Args section explaining symbol (with examples) and expiry (ISO format, must match available_expiries). This is exactly the needed semantics beyond the raw 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 opens with a specific verb and resource: 'Full options chain (calls + puts) for a US stock symbol and one expiry.' This clearly differentiates from siblings like stock_options_unusual_activity, which focuses on unusual activity rather than the full chain.

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?

Explicitly states when to use with concrete examples ('when the user asks...') and provides fallback behavior for missing expiry. While it doesn't name alternatives, the context is strong enough to guide selection among siblings.

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

stock_options_unusual_activityA
Read-only

Top strikes by volume / open-interest ratio โ€” institutional positioning signal.

Use this when the user asks "any unusual options activity on X?", "where is the smart money positioned on NVDA before earnings?", or wants a V/OI screener for a ticker. A V/OI ratio > 1 means today's volume already exceeds standing open interest, which classically flags fresh institutional positioning on a specific strike in a specific direction (call vs put).

Scans the soonest few expirations, filters out illiquid strikes (under min_volume), and returns the top-N sorted by V/OI descending. Also returns aggregate call vs put volume so Claude can comment on the overall directional bias.

Args: symbol: US stock symbol โ€” AAPL, NVDA, TSLA, SPY, META, etc. top_n: How many strikes to return. Default 10. min_volume: Filter floor for today's volume โ€” prevents noise from illiquid strikes with high V/OI ratios. Default 100. expiries: Number of soonest expirations to scan. Default 4 (typically covers ~1 month of weeklies + monthlies).

Returns: - underlying_price - expiries_scanned (list of YYYY-MM-DD) - total_call_volume, total_put_volume, put_call_volume_ratio - unusual: list of top-N contracts sorted by V/OI desc, each with {strike, side (call|put), expiration, volume, open_interest, v_oi_ratio, last_price, implied_volatility, in_the_money, strike_vs_spot_pct (moneyness)}

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNo
symbolYes
expiriesNo
min_volumeNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark this as read-only and non-destructive. The description goes well beyond by detailing the scan behavior: 'Scans the soonest few expirations, filters out illiquid strikes (under min_volume), and returns the top-N sorted by V/OI descending.' It also explains the V/OI interpretation and aggregate bias, offering rich 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.

Conciseness4/5

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

The description is longer than a single sentence but is well-structured into a summary line, usage context, and Args/Returns sections. Every sentence adds value, though the V/OI interpretation paragraph could be seen as slightly verbose for a tool description.

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

Completeness5/5

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

With no output schema, the Returns section exhaustively lists all fields returned, including the nested unusual contracts structure. Combined with parameter documentation, usage guidance, and algorithmic explanation, the description fully equips an agent to invoke the tool and interpret results.

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 input schema contains only titles and defaults, with zero description coverage. The description's Args section fully documents all four parameters, including examples (symbol: AAPL, NVDA) and semantics (min_volume prevents noise, expiries covers weeklies + monthlies), effectively compensating for the schema gap.

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 opens with a clear, specific statement: 'Top strikes by volume / open-interest ratio โ€” institutional positioning signal.' It then lists concrete user intents ('any unusual options activity on X?', 'where is the smart money positioned on NVDA before earnings?'), which sharply distinguishes it from siblings like stock_options_chain, volume_breakout_scanner, and smart_volume_scanner.

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?

Provides explicit when-to-use scenarios and explains the V/OI screening logic. It does not explicitly state when not to use it or name alternatives, but the user-intent examples and the clear focus on unusual activity effectively guide selection.

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

stock_pricesA
Read-only

Current price + daily % change for specific stock symbols.

Args: tickers: comma-separated EXCHANGE:SYMBOL list (max 2000 โ€” one upstream request even at full size), e.g. "NASDAQ:NVDA, NASDAQ:TSLA, KRX:005930". The exchange prefix is required โ€” the scanner's direct-ticker lookup is exchange-scoped.

Returns: Envelope dict: rows of {ticker, symbol, description, exchange, price, open, high, low, currency, change_percent} plus a not_found list naming any requested ticker the scanner didn't recognize.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds meaningful transparency by detailing the return envelope structure (fields like price, open, high, low, change_percent) and the not_found list behavior. It also mentions the single upstream request at full size, which is useful 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 efficiently structured with clear 'Args' and 'Returns' sections. Every sentence provides necessary information: the core purpose, param format, constraints, and return shape. There is no fluff or repetition.

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

Completeness5/5

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

Despite lacking an output schema, the description fully documents the return envelope (fields listed) and error/edge-case behavior (not_found list). It also covers the key usage constraints, making it complete for a simple read-only data retrieval tool with strong annotations.

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 input schema has 0% description coverage, but the description fully compensates by specifying the parameter format (comma-separated EXCHANGE:SYMBOL), providing a concrete example ('NASDAQ:NVDA, NASDAQ:TSLA, KRX:005930'), and noting the max length (2000). It also explains why the exchange prefix is necessary.

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 function: 'Current price + daily % change for specific stock symbols.' It uses a specific verb ('Current price') and identifies the resource ('specific stock symbols'), distinguishing it from broader market overview tools like market_snapshot or egx_market_overview.

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 clear usage context: it requires a specific EXCHANGE:SYMBOL format, mentions the maximum of 2000 tickers, and explains that the exchange prefix is required. It does not explicitly name alternative tools or exclusions, but the context is sufficiently clear for an agent to decide when to use it.

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

stock_screenerA
Read-only

Screen stocks by share type โ€” the API twin of TradingView's "Common stock" / "Preferred stock" symbol-search filter.

Args: country: TradingView market name โ€” e.g. america, korea, germany, brazil, japan, uk, india, turkey, canada, australia, france, hongkong stock_type: common | preferred limit: rows to return (max 2000, single upstream request), ranked by market cap descending exclude_otc: default True โ€” drop OTC listings (foreign companies traded over-the-counter); "america" otherwise means "US venue", not "US company" compact: default False โ€” True returns only ticker/symbol/price/currency/ change_percent per row (light payload for bulk price feeds) sort_by: market_cap (default) | dividend_yield | change | price โ€” server-side descending sort over the WHOLE market, so e.g. sort_by=dividend_yield with limit=20 is the market's true top-20 dividend payers, not just the biggest companies re-sorted

Returns: Envelope dict: total_matches (market-wide count), returned, and rows of {ticker, symbol, description, exchange, price, open, high, low, currency, change_percent, dividend_yield, market_cap} โ€” price is the current/last close; open/high/low are the current session's daily bar. Prices are in the market's local currency (e.g. KRW for korea).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
compactNo
countryNoamerica
sort_byNomarket_cap
stock_typeNocommon
exclude_otcNo

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already convey a safe read operation (readOnlyHint=true, destructiveHint=false). The description adds substantial behavioral detail: limit is capped at 2000 with a single upstream request, sort_by applies server-side over the entire market, exclude_otc affects venue interpretation for 'america,' compact mode reduces payload, and returns include total_matches and local-currency pricing with daily bar semantics. This goes well beyond structured annotation info.

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-organized into Args and Returns sections, with each parameter explained in a single dense line. The purpose sentence is front-loaded, and every sentence adds meaningful detail without filler. Minor redundancy (market-cap ranking mentioned twice) doesn't distract.

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

Completeness5/5

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

With no output schema, the description fully specifies the return envelope (total_matches, returned, rows), row fields, and price/currency semantics, including daily bar definitions. It also covers constraints like the 2000-row upstream limit and OTC exclusion behavior, making the tool's behavior predictable. Despite the lack of error/rate-limit info, the core context is complete.

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 provides zero descriptions for all six parameters, so the description carries full burden. It explains each parameter with examples (country list), options (stock_type, sort_by), defaults, and behavioral effects (exclude_otc, compact). This fully compensates for the schema's lack of detail.

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 opens with a specific verb and resource: 'Screen stocks by share type,' positioning it as the API twin of TradingView's common/preferred stock filter. It clearly distinguishes this global screener from sibling tools like egx_stock_screener or top_gainers by emphasizing share-type filtering across multiple markets and market-cap ranking.

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 gives clear context for when to invoke this toolโ€”when common/preferred stock screening across countries is needed, especially with sort_by whole-market semantics like dividend yield or price. It does not explicitly name alternative tools or exclusionary conditions, but the purpose and parameter details make the intended use obvious.

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

top_gainersA
Read-only

Return top gainers for an exchange and timeframe using Bollinger Band analysis.

Args: exchange: Exchange name โ€” crypto: KUCOIN, BINANCE, BYBIT, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, BURSA, HKEX, SSE, SZSE, TWSE, TPEX timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M limit: Number of rows to return (max 50)

Returns: list[dict] on success. On ANY failure returns a structured error envelope {"error": {"code": ..., "retryable": ...}} โ€” never a raw exception string.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
exchangeNoKUCOIN
timeframeNo15m

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint. The description adds valuable behavioral context: the Bollinger Band analysis methodology, the structured error envelope on failure, and a guarantee of never throwing a raw exception string. This goes beyond the annotations.

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-organized with an opening sentence followed by Args and Returns sections. It is concise, front-loaded, and every sentence provides useful information without redundancy.

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

Completeness5/5

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

The tool has only 3 parameters, all fully documented in the description. Return values and error behavior are also specified. The description is complete for effective use, even with an output schema present.

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 has no parameter descriptions (0% coverage), but the description compensates fully by documenting each parameter: valid exchange values, valid timeframes, and the limit maximum. This is complete and adds meaning far beyond the raw 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 function: 'Return top gainers for an exchange and timeframe using Bollinger Band analysis.' This specifies a concrete verb, resource, and methodology, distinguishing it from sibling tools like top_losers.

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 purpose implies when to use (screening top gainers), but there is no explicit guidance on when not to use it or which alternative might be better suited. With many sibling screener tools, explicit differentiation would strengthen this dimension.

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

top_losersA
Read-only

Return top losers for an exchange and timeframe. Supports crypto (KUCOIN, BINANCE, MEXC) and stocks (EGX, BIST, NASDAQ).

Returns list[dict] on success. On ANY failure returns a structured error envelope {"error": {"code": ..., "retryable": ...}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
exchangeNoKUCOIN
timeframeNo15m

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds valuable behavioral context: returns list[dict] on success and a structured error envelope on any failure, which is beyond what annotations provide.

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 concise and front-loaded with the core purpose in the first sentence, followed by a compact return type and error envelope specification. Every sentence provides value with no redundancy.

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?

The tool is a simple 3-parameter screener with an output schema (not shown but referenced). The description covers the main functionality, supported markets, return type, and error handling. It lacks specification of how 'losers' are calculated, but this is likely domain-standard and the output schema handles return details.

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

Parameters3/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 partially does by enumerating supported exchange values (KUCOIN, BINANCE, MEXC, EGX, BIST, NASDAQ), but it does not explain 'limit' or possible 'timeframe' values beyond the default '15m'. This is helpful but incomplete for 3 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 tool returns top losers for a given exchange and timeframe, with a specific verb ('Return') and resource ('top losers'). It also lists supported exchanges, distinguishing it from sibling tools like top_gainers.

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 screening losers) and lists supported exchanges, but it does not explicitly state when to use this tool versus alternatives or provide any exclusionary guidance. No explicit when/when-not conditions are given.

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

volume_breakout_scannerA
Read-only

Detect coins with volume breakout + price breakout.

Args: exchange: Exchange name like KUCOIN, BINANCE, BYBIT, MEXC, etc. timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M volume_multiplier: How many times the volume should be above normal level (default 2.0) price_change_min: Minimum price change percentage (default 3.0) limit: Number of rows to return (max 50)

Returns list[dict] on success, or an error envelope on total upstream failure ({"error": {"code": "ALL_BATCHES_FAILED", ...}}). The empty list now strictly means "no matches today"; rate-limit cliffs surface explicitly.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
exchangeNoKUCOIN
timeframeNo15m
price_change_minNo
volume_multiplierNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

The annotations (readOnlyHint, openWorldHint, destructiveHint) already establish the tool as a safe, read-only scanner. The description adds valuable context about return behavior: the empty list means 'no matches today', error envelopes for total upstream failure, and explicit treatment of rate-limit cliffs. This goes beyond the annotations and provides meaningful behavioral disclosure.

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 logically structured: a one-line summary, parameter explanations, and a return-value note. It is concise without being truncated, but the parameters section slightly duplicates schema defaults (e.g., default 2.0) which is not strictly necessary. Still, it remains efficient and easy to scan.

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?

The description covers the tool's purpose, all parameters, output format, and error handling. Given the 5 parameters, zero required fields, and the presence of an output schema (which likely documents return fields), the description is sufficiently complete. It could add a note about crypto-only applicability, but that is a minor gap.

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 carries the full burden of explaining parameters. It provides detailed semantics for every parameter: exchange examples (KUCOIN, BINANCE), timeframe options, clear definitions for volume_multiplier ('How many times'), price_change_min ('Minimum price change percentage'), and a max constraint for limit. This fully compensates for the lack of schema descriptions.

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 function with a specific verb and resource: 'Detect coins with volume breakout + price breakout.' It is clear and unambiguous, but it does not explicitly differentiate from sibling tools like smart_volume_scanner or volume_confirmation_analysis, which may overlap in purpose.

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. It does not mention scenarios like 'use for screening coins' or explicitly exclude other scanners. The usage context is only implied through the parameter descriptions, but no explicit recommendations or exclusions are present.

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

volume_confirmation_analysisC
Read-only

Detailed volume confirmation analysis for a specific coin.

Args: symbol: Coin symbol (e.g., BTCUSDT) exchange: Exchange name timeframe: Time frame for analysis

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
exchangeNoKUCOIN
timeframeNo15m

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds no additional behavioral context such as output format, data sources, or limitations. It remains a bare statement with no disclosure beyond the purpose.

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 concise with a front-loaded purpose sentence followed by a clearly labeled Args block. Every sentence contributes value, though the sparseness leaves some aspects under-specified.

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?

With no output schema and many sibling tools, the description fails to explain what the analysis returns or when to choose it over similar scanners. It is adequate for basic parameter understanding but lacks critical context for an agent to confidently select and invoke the tool correctly.

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

Parameters3/5

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

The description compensates for the 0% schema coverage by explaining each parameter: symbol as a coin symbol with an example (BTCUSDT), exchange as an exchange name, and timeframe as a time frame. This adds baseline meaning, but it omits accepted values or formats (e.g., exchange defaults, timeframe notation).

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 it performs 'Detailed volume confirmation analysis for a specific coin,' indicating a focused analysis tool. However, it does not differentiate from sibling tools like volume_breakout_scanner or smart_volume_scanner, so it lacks explicit sibling distinction.

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. It only mentions the scope ('for a specific coin') but does not state when volume confirmation is needed or when other scanners would be more appropriate.

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

walk_forward_backtest_strategyA
Read-only

Walk-forward backtest to detect overfitting โ€” validates strategy on unseen data.

Args: symbol: Yahoo Finance symbol (AAPL, BTC-USD, SPYโ€ฆ) strategy: rsi | bollinger | macd | ema_cross | supertrend | donchian | keltner_breakout (rsi_pullback and triple_ema not supported here โ€” SMA200 warmup exceeds typical fold size; use run_backtest with period='2y') period: '1mo', '3mo', '6mo', '1y', '2y' (recommend '2y') initial_capital: Starting capital per fold in USD (default $10,000) commission_pct: Per-trade commission % (default 0.1%) slippage_pct: Per-trade slippage % (default 0.05%) n_splits: Number of walk-forward folds (default 3, max 10) train_ratio: Fraction of each fold used for training (default 0.7) interval: '1d' (daily) or '1h' (hourly)

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo2y
symbolYes
intervalNo1d
n_splitsNo
strategyYes
train_ratioNo
slippage_pctNo
commission_pctNo
initial_capitalNo

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations, such as the unsupported strategies due to SMA200 warmup exceeding typical fold size, the n_splits max of 10, and the per-fold capital semantics. It does not contradict annotations.

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 a one-sentence purpose, followed by a tightly organized Args list. Every line provides operational valueโ€”no fluff or redundant information. It is appropriately sized for the parameter count.

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

Completeness5/5

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

Given the tool's complexity (9 parameters, no output schema), the description is complete: it covers purpose, usage constraints, alternative tools, and all parameter semantics. An agent can correctly select and invoke the tool based solely on this description.

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 input schema has 0% description coverage, but the description thoroughly documents all 9 parameters: symbol format, allowed strategy values, period options with a recommendation, defaults, and constraints. It adds meaning beyond bare names, including units, max values, and per-fold context.

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: 'Walk-forward backtest to detect overfitting โ€” validates strategy on unseen data.' This uses a specific verb and resource, and distinguishes it from sibling tools like backtest_strategy by emphasizing the walk-forward methodology and overfitting detection.

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 provides explicit usage guidance, including which strategies are not supported (rsi_pullback, triple_ema) and directs users to an alternative: 'use run_backtest with period="2y"'. It also recommends '2y' for the period parameter, giving clear context for when to use this tool.

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

yahoo_priceA
Read-only

Real-time price quote from Yahoo Finance for any stock, crypto, ETF or index.

Args: symbol: Yahoo Finance symbol โ€” e.g. AAPL, BTC-USD, SPY, ^GSPC, EURUSD=X, THYAO.IS

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds asset-class coverage and mentions 'real-time,' but doesn't disclose output format, latency, or rate limits. For a simple read-only tool, this is adequate but not enriched.

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: one sentence for purpose and one for parameters. It is front-loaded with the core action and includes only essential details, with no unnecessary 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 simplicity (one required parameter, clear annotations), the description is nearly complete. It covers symbol syntax and asset types. The only minor gap is the lack of return-format details, but since this is a simple quote tool, the description is sufficient for correct invocation.

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 schema provides only the parameter name 'symbol' with no description (0% coverage). The description compensates with a dedicated Args section that explains the symbol format and provides concrete examples (AAPL, BTC-USD, ^GSPC, THYAO.IS), giving the agent actionable guidance beyond the 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 function: 'Real-time price quote from Yahoo Finance for any stock, crypto, ETF or index.' It uses a specific verb ('quote') and resource ('Yahoo Finance symbol'), and explicitly lists supported asset classes, making it distinct from historical data tools like stock_prices.

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 phrase 'Real-time price quote' provides clear context for when to use the tool (immediate pricing needs). It doesn't explicitly mention when not to use it or name alternatives, so it falls short of a 5. However, the usage scenario is unambiguous.

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

TDQS

B3.3/5.0
Disambiguation2/5

Multiple tools have overlapping purposes: egx_sector_scan vs egx_sector_scanner, several volume scanners (smart_volume_scanner, volume_breakout_scanner, volume_confirmation_analysis), and multiple single-symbol analysis tools (coin_analysis, multi_timeframe_analysis, combined_analysis, multi_agent_analysis) that could be confused. The descriptions try to differentiate, but the sheer number of near-synonyms creates meaningful misselection risk.

Naming Consistency3/5

Tool names use a mix of conventions: most are snake_case verb_noun (bollinger_scan, combined_analysis) but others are noun-only (yahoo_price, market_snapshot) or use inconsistent verb choices (scan vs scanner, e.g., egx_sector_scan vs egx_sector_scanner). Domain prefixes (egx_, futures_, stock_) help, but the overall pattern is not uniform.

Tool Count2/5

37 tools is well above the comfortable range and suggests a kitchen-sink approach. Many tools are highly niche (egx_fibonacci_retracement, egx_trade_plan, stock_options_unusual_activity) and could be grouped into separate sub-servers. The count overwhelms the nominal purpose and increases selection difficulty.

Completeness3/5

The tool set covers a broad range of trading analysis: quotes, technicals, scanners, backtesting, news, options, futures, and EGX-specific features. However, there are notable gaps such as no stock fundamentals, no economic calendar, and no portfolio/watchlist management. Some workflows also dead-end, like lacking a dedicated futures single-contract quote tool, relying instead on coin_analysis.

Maintenance

ActivityActive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that provides AI agents with financial tools including real-time quotes, backtesting, technical analysis, and multi-exchange data via a simple CLI interface.
    1
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides comprehensive stock market data and technical analysis tools via the MCP protocol, enabling real-time quotes, historical data, and professional indicators like RSI and MACD for Claude Desktop and other clients.
    5
    Apache 2.0
  • A
    license
    B
    quality
    C
    maintenance
    TradingView MCP server โ€” real-time market data, technical indicators, screeners, and backtesting for Claude, ChatGPT, Cursor, Copilot, and any MCP client. Stocks, crypto, forex & futures across global exchanges.
    44
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/btanaji/tradingview-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server