TradingView MCP
Provides cryptocurrency market data and screening for Binance, including top gainers, prices, and technical analysis.
Provides cryptocurrency market data and screening for KuCoin, including top gainers, prices, and technical analysis.
Provides real-time market data, technical analysis, screeners, and backtesting for stocks, crypto, forex, and futures, leveraging TradingView's data and indicators.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TradingView MCPRun a full technical analysis of NVDA"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 timeframeIndependent 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.
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.
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.
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.)
โญ If this tool improves your workflow, please star the repo and consider sponsoring โ it keeps the project alive and growing!
๐ฅ Framework Demo
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 toasync def. FastMCP runs sync tools serialized on the event loop โ async unlocks real intra-server parallelism so concurrent tool calls actually overlap.combined_analysisadditionally fans its 3 sub-calls out viaasyncio.gatherfor ~3ร wall-clock improvement on the power tool.yahoo_price/stock_extended_hoursusehttpx.AsyncClientfor true non-blocking I/O; sync-library tools (tradingview_ta,tradingview-screener,feedparser) are off-loaded viaasyncio.to_thread. (PR โ open)9 backtest strategies (up from 6) โ added
rsi_pullback,keltner_breakout, andtriple_ema, covering trend-pullback, ATR-normalized breakout, and SMA200-filtered EMA cross edges.compare_strategiesnow ranks the full 9.Resilience layer โ automatic retry + 60-second TTL cache on the TradingView screener provider, eliminating transient
"Expecting value"errors oncombined_analysisandmulti_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: 0bug onfinancial_news. (PR #33 โ merged)TA throttle โ caps concurrent
tradingview_tacalls (default 4) + min 0.8s spacing between starts. Prevents parallel bursts ofcombined_analysis/multi_timeframe_analysisfrom 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, andwalk_forward_backtest_strategy.Full trade log + equity curve outputs (
include_trade_log=True,include_equity_curve=True).
๐๏ธ Architecture

โจ Why tradingview-mcp?
Feature |
| 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 + | ~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-serverOptional: 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 # optionalWithout 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/binin their PATH. Use the full path touvxto 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-serverAfter the install finishes, start Claude Desktop with the normal config and the server will come up instantly (cache is already warm).
โ ๏ธ 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 calltradingview-mcpfunctions 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 FinanceQuick 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.serviceChoose 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) |
| |
Anthropic (Claude direct) |
| |
Google (Gemini direct) |
| |
OpenAI (GPT direct) |
|
# 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 |
|
| Remove from config, use bash wrapper |
| Used | Use |
|
|
|
Gateway won't start |
|
|
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:
๐ ๏ธ Technical Analyst โ Bollinger Bands (ยฑ3 proprietary rating), RSI, MACD
๐ Sentiment & Momentum Analyst โ Reddit community sentiment + price momentum
๐ก๏ธ 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 1 of 9 strategies with institutional metrics (Sharpe, Calmar, Expectancy). Supports |
| Run all 9 strategies on the same symbol and rank by performance. |
| Train/test split walk-forward validation with overfitting verdict (ROBUST / MODERATE / WEAK / OVERFITTED). |
9 Strategies to Test:
rsiโ RSI oversold/overbought mean reversionbollingerโ Bollinger Band mean reversionmacdโ MACD golden/death crossema_crossโ EMA 20/50 Golden/Death Crosssupertrendโ 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 |
| Real-time quote: price, change %, 52w high/low, market state |
| 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 |
| 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. |
| Direct price lookup for specific symbols (comma-separated |
๐ง AI Sentiment & Intelligence
Tool | Description |
| Reddit sentiment across finance communities (bullish/bearish score, top posts) |
| Live RSS headlines from Yahoo Finance, MarketWatch, CNBC, CoinDesk, CoinTelegraph |
| 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 |
| Full TA: RSI, MACD, Bollinger, 23 indicators with BUY/SELL/HOLD |
| Bulk TA for multiple symbols at once |
| Proprietary ยฑ3 BB rating system |
| 3-layer decision engine (ranking + trade setup + quality score) |
| Multi-exchange screener with 20+ filter criteria |
| Scan by signal type (oversold, trending, breakout...) |
| 15 candlestick pattern detector |
| 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) |
|
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 toolsadvanced_candle_patternARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| exchange | No | KUCOIN | |
| base_timeframe | No | 15m | |
| pattern_length | No | ||
| min_size_increase | No |
TDQS
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.
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.
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.
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.
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.
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_strategyARead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 1y | |
| symbol | Yes | ||
| interval | No | 1d | |
| strategy | Yes | ||
| slippage_pct | No | ||
| commission_pct | No | ||
| initial_capital | No | ||
| include_trade_log | No | ||
| include_equity_curve | No |
TDQS
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.
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.
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.
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.
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.
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_pulseARead-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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_scanARead-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": ...}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| exchange | No | KUCOIN | |
| timeframe | No | 4h | |
| bbw_threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_analysisARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| exchange | No | KUCOIN | |
| timeframe | No | 15m |
TDQS
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.
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.
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.
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.
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.
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_analysisARead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| exchange | No | NASDAQ | |
| timeframe | No | 1D |
TDQS
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.
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.
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.
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.
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.
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_strategiesARead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 1y | |
| symbol | Yes | ||
| interval | No | 1d | |
| initial_capital | No |
TDQS
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.
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.
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.
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.
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.
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_scanARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| exchange | No | KUCOIN | |
| timeframe | No | 15m | |
| min_growth | No | ||
| candle_count | No | ||
| pattern_type | No | bullish |
TDQS
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.
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.
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.
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.
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.
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_retracementARead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| lookback | No | 52W | |
| timeframe | No | 1D |
TDQS
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.
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.
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.
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.
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.
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_analysisARead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | EGX30 | |
| limit | No | ||
| timeframe | No | 1D |
TDQS
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.
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.
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.
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.
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.
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_overviewBRead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| timeframe | No | 1D |
TDQS
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.
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.
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.
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.
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.
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_scanARead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| sector | No | ||
| timeframe | No | 1D |
TDQS
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.
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.
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.
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.
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.
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_scannerARead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| timeframe | No | 1D | |
| top_n_stocks | No | ||
| top_n_sectors | No | ||
| min_stock_score | No |
TDQS
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.
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.
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.
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.
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.
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_screenerARead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| min_score | No | ||
| timeframe | No | 1D | |
| index_filter | No |
TDQS
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.
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.
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.
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.
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.
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_planARead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| timeframe | No | 1D |
TDQS
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.
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.
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.
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.
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.
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_newsARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| symbol | No | ||
| category | No | stocks |
TDQS
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.
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.
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.
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.
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.
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_snapshotARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | energy |
TDQS
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.
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.
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.
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.
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.
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_overviewARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| category | No | all | |
| exchanges | No | us | |
| volume_min | No |
TDQS
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.
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.
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.
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.
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.
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_moversARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| direction | No | gainers | |
| exchanges | No | us | |
| volume_min | No |
TDQS
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.
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.
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.
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.
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.
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_watchlistARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_sentimentBRead-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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| symbol | Yes | ||
| category | No | all |
TDQS
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.
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.
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.
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.
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.
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_snapshotARead-only
Global market overview: major indices, top crypto, FX rates, and key ETFs. Powered by Yahoo Finance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_analysisARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| exchange | No | KUCOIN | |
| timeframe | No | 15m |
TDQS
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.
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.
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.
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.
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.
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_analysisARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| exchange | No | KUCOIN |
TDQS
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.
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.
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.
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.
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.
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_filterARead-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": ...}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| rating | No | ||
| exchange | No | KUCOIN | |
| timeframe | No | 5m |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_scannerARead-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": ...}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| exchange | No | KUCOIN | |
| rsi_range | No | any | |
| min_price_change | No | ||
| min_volume_ratio | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_hoursARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
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.
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.
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.
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.
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.
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_chainARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| expiry | No | ||
| symbol | Yes |
TDQS
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.
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.
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.
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.
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.
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_activityARead-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)}
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | ||
| symbol | Yes | ||
| expiries | No | ||
| min_volume | No |
TDQS
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.
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.
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.
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.
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.
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_pricesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes |
TDQS
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.
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.
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.
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.
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.
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_screenerARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| compact | No | ||
| country | No | america | |
| sort_by | No | market_cap | |
| stock_type | No | common | |
| exclude_otc | No |
TDQS
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.
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.
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.
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.
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.
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_gainersARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| exchange | No | KUCOIN | |
| timeframe | No | 15m |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_losersARead-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": ...}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| exchange | No | KUCOIN | |
| timeframe | No | 15m |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_scannerARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| exchange | No | KUCOIN | |
| timeframe | No | 15m | |
| price_change_min | No | ||
| volume_multiplier | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_analysisCRead-only
Detailed volume confirmation analysis for a specific coin.
Args: symbol: Coin symbol (e.g., BTCUSDT) exchange: Exchange name timeframe: Time frame for analysis
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| exchange | No | KUCOIN | |
| timeframe | No | 15m |
TDQS
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.
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.
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.
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.
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.
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_strategyARead-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)
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 2y | |
| symbol | Yes | ||
| interval | No | 1d | |
| n_splits | No | ||
| strategy | Yes | ||
| train_ratio | No | ||
| slippage_pct | No | ||
| commission_pct | No | ||
| initial_capital | No |
TDQS
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.
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.
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.
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.
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.
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_priceARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
Real-time market events, sentiment, and technical analysis as MCP tools, backed by real data.
Real-time market data, screeners, technical analysis & backtesting for stocks, crypto and forex.
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that provides AI agents with financial tools including real-time quotes, backtesting, technical analysis, and multi-exchange data via a simple CLI interface.1MIT
- AlicenseNot gradedqualityFmaintenanceProvides 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.5Apache 2.0
- FlicenseNot gradedqualityBmaintenanceProvides real-time stock data, technical indicators, and market analysis via MCP protocol to enable AI-driven quantitative trading.1
- AlicenseBqualityCmaintenanceTradingView 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.441MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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