tradingview-mcp-server
This server provides an MCP toolkit (37+ tools) for live market data, technical analysis, screening, backtesting, and sentiment/news across stocks, crypto, forex, and futures โ with no TradingView account or API key required.
Real-time prices & market overviews:
yahoo_pricefor stocks/crypto/ETFs/indices/FX,market_snapshot,stock_extended_hoursfor pre/post-market, andbitcoin_market_pulsefor BTC macro context.Technical analysis: full single-symbol analysis (
coin_analysis), multi-timeframe alignment, Bollinger/RSI/MACD indicators, candlestick patterns, Fibonacci retracements, and volume confirmation analysis.Screeners & scans: top gainers/losers, Bollinger squeeze, rating filter, volume breakouts, smart volume, consecutive candles, advanced candle patterns, and multi-exchange scanning for Binance, KuCoin, Bybit/MEXC, NASDAQ, NYSE, EGX, BIST, and more.
Stock screening & pricing: the
stock_screener(common/preferred shares by country, ranked by market cap/dividend yield) andstock_pricesfor bulk EXCHANGE:SYMBOL lookups.Backtesting: 9 strategies (RSI, Bollinger, MACD, EMA cross, Supertrend, Donchian, RSI pullback, Keltner breakout, Triple EMA), strategy comparison leaderboards, walk-forward overfitting detection, daily/hourly intervals, trade logs, and equity curves.
Sentiment & news:
market_sentiment,financial_news, and thecombined_analysispower tool that fuses TA + sentiment + headlines.Options & futures: options chains and unusual options activity, futures market overview, top movers, category snapshots, and watchlists.
Specialized markets: EGX market/sector/index/trade-plan tools and multi-agent analysis debates.
Resilient automation: structured error envelopes, retries, caching, and both self-hosted and hosted MCP transports (stdio, SSE, streamable-http).
Enables retrieving top gainers, price data, and technical analysis for cryptocurrencies listed on Binance, allowing users to screen and analyze Binance markets.
Enables retrieving top gainers, price data, and technical analysis for cryptocurrencies listed on KuCoin, allowing users to screen and analyze KuCoin markets.
Provides real-time market data, technical indicators, screeners, and backtesting for stocks, crypto, forex, and futures using TradingView's public market data and charting capabilities.
Click on "Deploy 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-mcp-serverShow today's top crypto gainers on Binance"
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: Rozkoduj MCP
๐ 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 free trial |
| Time to first call | ~5 minutes (Python + uv) | ~60 seconds (paste one URL) |
| Updates & ops | You run and update it | Managed โ always on the latest |
| Runs on | Your machine or VPS | Hosted, streamed from the edge |
| Limits | Your hardware | 2,500/mo ยท 60/min (Pro) โ 10,000/mo ยท 150/min (Pro+) |
| Best for | Tinkerers, forkers, full control | Folks who'd rather skip the ops |
โ๏ธ Zero setup: paste one connector URL into Claude.ai, ChatGPT, Copilot, or Cursor โ start a 3-day free trial. Everything below is for self-hosting.
๐ Transports
This server supports three MCP transports. Pick the one that matches your client:
Transport | When to use |
stdio (default) | Claude Desktop, Codex, and any local MCP client that spawns the server as a child process. |
sse | Remote clients or reverse-proxied setups where the server must expose an HTTP endpoint with Server-Sent Events. |
streamable-http | Same as SSE but uses HTTP streaming; useful when the client prefers plain HTTP response bodies over event streams. |
stdio (default)
uv run tradingview-mcpSSE
uv run tradingview-mcp sse --host 0.0.0.0 --port 8000Then point your client at http://<host>:8000/sse.
streamable-http
uv run tradingview-mcp streamable-http --host 0.0.0.0 --port 8000Then point your client at http://<host>:8000/mcp.
Note:
--hostand--portdefault to127.0.0.1:8000. SetHOST/PORTenvironment variables to override defaults without flags.
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_patternBRead-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 declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe scan. The description adds the 'multi-timeframe data' nuance and parameter hints (min_size_increase, pattern_length) that suggest analysis logic. However, it doesn't disclose specifics like data source freshness, performance considerations, or what happens when no patterns match. With annotations covering the safety profile, a 3 is fair.
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 compact paragraph followed by an Args block that's mostly a restatement of the schema. The prose line front-loads the purpose, and the Args block is terse. It's efficient with no waste, though formatting could be cleaner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param scan tool with no output schema and 0% schema description coverage, the description covers the basics but misses important context: what the output looks like, how results are ranked, whether it needs an exchange symbol or scans a watchlist, and what happens when no pattern is found. Sibling tools like top_gainers likely have more context. This leaves an agent guessing about the return format and search scope.
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 5 parameters. It lists each parameter with a brief meaning (e.g., 'Exchange name', 'Minimum percentage increase in candle size'), which adds meaning beyond the bare schema names. However, it doesn't specify valid values or formats (e.g., exchange name casing, pattern_length range beyond a hint in the name). This adds value but could be richer.
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 starts with a clear statement of what the tool does: 'Advanced candle pattern analysis using multi-timeframe data.' This distinguishes it from siblings like consecutive_candles_scan and volume_breakout_scanner, though it doesn't explicitly name any sibling. The verb 'analysis' is somewhat generic, but combined with the resource and multi-timeframe qualifier, the purpose is clear.
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 doesn't explicitly state when to use this tool vs. alternatives like consecutive_candles_scan or volume_confirmation_analysis. The phrase 'Advanced... using multi-timeframe data' implies a use case, but there's no direct guidance on when not to use it or which sibling to prefer. This is implied rather than explicit.
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 description does not need to cover safety. It adds useful behavioral context through constraints like the SMA200 warmup requirement and the optional include_trade_log/include_equity_curve flags. However, it does not disclose output format, failure modes, data range limitations, or performance characteristics beyond what the parameter list implies.
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 opens with a clear one-sentence purpose, then uses a structured Args block that is efficient for nine parameters. It is appropriately sized and front-loaded. Minor vagueness like 'institutional-grade metrics' is the only non-essential element, preventing a perfect score.
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 thoroughly covers all input parameters and usage constraints, which is essential given 9 parameters and no output schema. However, since there is no output schema, the description should also explain what the backtest returns, such as the performance metrics included in the report, but it only vaguely references 'institutional-grade metrics' and optional trade log/equity curve flags.
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 for parameter meaning. It does this well: it gives valid examples for symbol, enumerates strategy names, defines period options, states defaults, explains commission/slippage as per-trade percentages, and specifies interval choices. It also adds the critical warmup-period constraint for two strategies. This fully compensates for the missing 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 uses a specific verb and resource: 'Backtest a trading strategy on historical data' with 'institutional-grade metrics.' It clearly identifies what the tool does, but it does not distinguish itself from sibling tools like compare_strategies or walk_forward_backtest_strategy, 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 implied usage guidance by listing allowed strategies, periods, intervals, and constraints such as 'rsi_pullback and triple_ema need period >= 1y for SMA200 warmup.' However, it does not explicitly state when to use this tool versus alternatives like compare_strategies or walk_forward_backtest_strategy, and gives no explicit when-not-to-use 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 meaningful behavioral context beyond that: it is a single-call aggregator, it returns a structured payload, and it includes a risk assessment label with specific possible values. It does not mention data freshness or rate limits, but those are not critical for this read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: the first sentence summarizes the tool, the usage guidance is explicit, and the return fields are bulleted for easy parsing. Every section earns its place; the length is justified by the absence of an output schema.
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 there is no output schema, the description fully compensates by enumerating the return sections: bitcoin, dominance, total_market, and assessment with possible labels. It also explains the tool's role relative to other analysis tools, making the definition complete for an agent to invoke it 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 tool has zero parameters, so there is no parameter semantics burden on the description. The schema is empty and fully covered; the description correctly focuses on outputs and usage rather than inputs.
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 a specific purpose: providing BTC macro context (price, dominance, total market cap, risk assessment) in a single call. It differentiates itself from sibling tools by explicitly contrasting with chaining yahoo_price calls, so an agent can tell when this tool is the right one.
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?
It explicitly says to use this tool WHENEVER analyzing any cryptocurrency to get the broader market frame, and explains why: a coin setup looks different depending on BTC behavior. It also names the alternative approach (chaining yahoo_price calls) and why this tool avoids that, giving clear selection guidance.
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 declare readOnlyHint and non-destructive. The description adds that it scans an entire exchange, returns a list of dicts on success, and returns a structured error envelope on any failure, which enriches the agent's expectations 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?
The description is well structured with a purpose statement, explicit disambiguation, a usage example, and a clear Args block. It is longer than necessary but every section adds value. Minor redundancy like re-stating the tool name could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 4 parameters and no schema descriptions, the description provides exhaustive coverage: exchange lists, timeframe constraints, thresholds, return type, error handling, and a usage example. Since an output schema exists, not detailing the dict fields is acceptable.
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 by enumerating exchange options (specifying crypto vs stock exchanges), valid timeframes with typical threshold hints, the meaning of bbw_threshold, and the limit cap. This is far beyond the bare schema 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 identifies the tool as a whole-exchange Bollinger Band Width squeeze scanner, differentiating it from sibling scanners and explicitly noting it is not the single-symbol Bollinger read (which is coin_analysis). The purpose is unambiguous with a specific verb and resource.
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?
It provides explicit when-to-use (whole exchange squeeze detection) and when-not-to-use (single symbol via coin_analysis), along with an example call and typical threshold values per timeframe. These are concrete selection criteria.
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, so the read-only nature is covered. The description adds valuable behavioral context: the requirement for a bare ticker without exchange prefix, the fallback behavior that errors expose a 'listed_on' field naming exchanges that do list the symbol, and a high-level statement of the return (detailed analysis with all indicators and metrics). 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 well-structured with clear sections (Purpose, Args, Returns) and front-loads the primary purpose immediately. It includes necessary examples and lists without unnecessary fluff. It is somewhat lengthy due to the exchange and symbol enumerations, but those are essential given the schema lacks details. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of symbols and exchanges across multiple markets, the description covers everything an agent needs to call the tool correctly: input formats, valid values, example calls, error-handling hints, and a definition of the return type. It also disambiguates from all sibling tools that could otherwise be confused. Nothing essential is missing, even without an output schema.
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, so the description carries the full burden for parameter meaning. It delivers extensively: symbol format with explicit crypto and stock examples, a comprehensive list of exchanges for both asset classes, and a timeframe list. It even clarifies that the symbol must not have an exchange prefix. This fully compensates for 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 opens with a precise statement of what the tool does: 'Get detailed analysis for a specific asset (coin or stock) on specified exchange and timeframe.' It explicitly declares itself the canonical single-symbol technical readout and names the sibling tools it is not (multi_timeframe_analysis, combined_analysis), making its purpose unmistakable and clearly distinct from all 40+ 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?
Provides explicit guidance on when to use this tool versus alternatives: it calls out that no 'get_technical_analysis' or 'get_technical_summary' exists, directs users to 'multi_timeframe_analysis' for trend alignment across timeframes, and to 'combined_analysis' for news sentiment + headlines. It also gives a concrete call example. This leaves no ambiguity about the right use case.
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, so the agent knows this is a safe read operation. The description adds the 'POWER TOOL' label and the combined nature of the output, but doesn't detail what the response contains (e.g., structure of TA, sentiment score, news list). With annotations covering safety, a 3 is appropriate โ it adds some context but not deep behavioral detail.
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 statement, usage guidance, example, and parameter list. It's front-loaded with the key differentiator. The 'POWER TOOL' label is slightly informal but not wasteful. The parameter list is compact and useful. Minor deduction for the informal label and slight redundancy in the parameter descriptions.
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 combined analysis tool with 3 parameters and no output schema, the description covers the essential usage: what it does, when to use it, and how to call it. It doesn't describe the output structure, but that's less critical given the tool's purpose is clear. The example call is helpful. A 4 is appropriate โ it's complete for an agent to invoke correctly, though it could mention what the response includes.
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 explain the `symbol` parameter (bare ticker, no exchange prefix) and lists valid exchanges and timeframes. However, it doesn't add much beyond what the schema's defaults and types imply. The example call helps, but the description could be more explicit about parameter constraints (e.g., which exchanges are valid for which symbols). Baseline 3 is fair given the partial compensation.
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 combines TradingView technical analysis, news sentiment, and financial news for a single symbol. It uses a specific verb ('combined_analysis') and resource, and explicitly distinguishes it from siblings like `coin_analysis` and `multi_timeframe_analysis`. The example call further clarifies usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('when you want TA AND sentiment AND news for one symbol in a single call') and provides alternatives for other cases: `coin_analysis` for indicators only, `multi_timeframe_analysis` for cross-timeframe trend alignment. This is clear routing guidance.
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 signal readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context not in annotations, notably that shorter periods cause rsi_pullback and triple_ema to contribute zero trades due to incomplete SMA200 warmup. It stops short of describing output structure or runtime characteristics, but the added caveat is genuinely 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 front-loaded with the core purpose in a single sentence, followed by a clean, well-structured Args block. Each parameter entry earns its place by adding examples, defaults, or caveats rather than repeating schema content verbatim. There is 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?
Given there is no output schema, the description adequately explains what the tool returns ('a ranked leaderboard'), documents all 4 parameters, and warns about the warmup limitation. The only gap is that the leaderboard's exact fields or ranking criteria are not specified, which would help an agent consume the result, but invocation is fully supported.
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 for parameter semantics. It compensates thoroughly: symbol is explained with examples, period lists all allowed values plus a trade-off, initial_capital states currency and default, and interval lists valid options. Every parameter is effectively documented beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Run all 9 strategies' and the specific result: 'return a ranked leaderboard.' It even enumerates the nine strategies, making the resource well-defined. It does not explicitly name sibling alternatives like backtest_strategy or walk_forward_backtest_strategy, so it lacks explicit 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 strong usage context, including valid period and interval values, defaults, and a concrete recommendation that period >= '1y' is needed for RSI Pullback and Triple EMA to complete SMA200 warmup. It does not explicitly state when to choose this tool over siblings, but the parameter guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
consecutive_candles_scanBRead-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 already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful context about the scan logic and the result limit, but it does not disclose output structure, ordering, or other behavioral details that an agent might need.
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: a single-sentence purpose followed by a clear argument list. There is no filler or redundant restating of schema defaults, and the most important information is front-loaded.
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?
All six parameters are documented, which is helpful. However, there is no output schema and the description does not describe expected result fields or ordering; exchange valid values are vague ('BINANCE, KUCOIN, etc.'); and bearish min_growth semantics are ambiguous. This makes the description adequate but incomplete.
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 compensates by explaining each parameter: exchange examples, timeframes, pattern types, candle_count range, min_growth, and limit. It does not fully clarify how min_growth should be interpreted for bearish/shrinking patterns, which is a notable ambiguity.
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 a specific action ('Scan for coins') and a specific pattern ('consecutive growing/shrinking candles pattern'), so the tool's core purpose is unambiguous. It does not explicitly differentiate from sibling scanners like advanced_candle_pattern, but the pattern focus and 'coins' scope make it reasonably distinct.
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?
There is no guidance on when to use this tool versus sibling scanners such as advanced_candle_pattern, bollinger_scan, or volume_breakout_scanner. The description explains what it does but not when it is the preferred choice or when alternatives should be used.
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, and the description is consistent with a read-only analysis tool. It adds some context about output (constituent performance, full indicators) but does not disclose limitations like data freshness, rate limits, or whether results are real-time.
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: a single leading sentence stating the purpose, followed by a compact, front-loaded list of parameters. Every sentence adds value with 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?
For a simple tool with three optional parameters and no output schema, the description covers the essential information for invocation: valid parameter values, defaults, and what the tool does. It could be more complete by clarifying what 'full indicators' means or by mentioning the response format, but it is largely 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?
Schema description coverage is 0%, yet the description fully compensates by explaining each parameter in the Args section: index lists all valid values, timeframe lists accepted strings and the default, and limit clarifies its meaning and maximum. This is essential because the schema only provides defaults without any descriptions or enums.
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 clear verb ('Analyse') and resource ('an EGX index') and mentions 'constituent performance with full indicators,' which gives a sense of the output. However, it does not explicitly distinguish this tool from siblings like egx_market_overview or egx_sector_scan, and the phrase 'full indicators' is vague.
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 when an agent needs to analyze an EGX index, but it does not provide explicit context or alternatives. There is no guidance on when to prefer this over related tools like egx_market_overview or egx_stock_screener, leaving the agent to infer suitability.
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 provide readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds a note about default timeframe for stocks, which is a minor behavioral detail. But it doesn't disclose what the overview includes (market cap, indices, sectors?) or any aggregation behavior, which is significant for a 'comprehensive overview' tool. With annotations, a 3 is appropriate as the description adds some value but not rich 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 two sentences plus an Args block. It is efficient and front-loaded with the core purpose. The Args block repeats schema defaults but adds allowed values for timeframe, which is useful. No filler or waste.
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 market overview tool with a generic 'comprehensive' claim, it lacks details on what data is returned (indices, sectors, top movers?), how limit interacts with categories, and whether there are any exclusions. The sibling list shows other specialized tools, so this should clarify its scope. No output schema, so the description must do more to set expectations. It is not complete enough.
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 schema provides no semantic help for the two parameters. The description explains 'timeframe' with allowed values and 'limit' as 'stocks per category', which adds meaning. However, it doesn't define what 'per category' means (sectors? indices?) or explain the number of categories, leaving ambiguity about how limit impacts the output. This is a gap given zero schema coverage.
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 and resource ('Get a comprehensive overview of the Egyptian Exchange (EGX) market'), which is clear. It distinguishes from siblings like egx_sector_scan and egx_stock_screener by focusing on a market-level comprehensive overview. However, it doesn't explicitly differentiate from other EGX tools, only implies it.
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 context for use (comprehensive overview) but no explicit when-to-use or exclusions. It doesn't mention alternatives, despite many sibling EGX tools. The default timeframe hint for stocks ('1D for stocks') implies usage but is not explicit about when to choose this over egx_sector_scan or egx_index_analysis.
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 destructiveHint=false, so the tool is known to be a safe read operation. The description adds useful behavioral details: it shows available sectors when the sector parameter is left empty, it lists allowed timeframe values, and it states a maximum result limit of 50 per sector. These go beyond the annotations and give the agent insight into how the tool behaves. However, it does not describe the response format or any potential rate limits, so a 4 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, well-structured, and front-loaded with the purpose. It uses a clear Args list that is easy to parse. Every sentence provides meaningful information; there is no fluff or repetition. The format is ideal for an AI agent to quickly grasp the tool's purpose and parameters.
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 that there is no output schema, the description does not explain the return structure, but it does hint at behavior (e.g., listing sectors when empty). It covers the tool's core functionality and parameters adequately. The main gap is the lack of detail about what the scan results look like (e.g., stock symbols, prices, indicators), which might be inferred from the tool's name but is not explicitly stated. For a read-only scanner with annotations covering safety, this is a minor omission, so a 4 is justified.
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 by providing explicit parameter semantics: it explains what 'sector' is with examples (banks, healthcare_and_pharma, etc.), lists all valid timeframe options, specifies the default and max for limit, and notes the behavior when sector is left empty. This is a comprehensive explanation that adds significant value beyond the bare schema, which only gives types and defaults. The description essentially serves as the documentation for all three 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's purpose: 'Scan EGX stocks by sector.' This is a specific verb and resource. It also mentions behavior for empty sector input, which adds clarity. However, it does not explicitly differentiate from the sibling tool 'egx_sector_scanner' that appears to have a very similar name and likely function, 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 some usage context: 'Shows available sectors if none specified' implies a workflow when you don't know the sector names. It also gives parameter guidance in the Args section. However, it does not explicitly state when to use this tool versus alternatives like egx_sector_scanner, egx_market_overview, or egx_stock_screener. There are no exclusions or conditions steering the agent away from other tools, only the general purpose of sector scanning.
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 safety. The description adds a conceptual summary ('identifies hot/cold sectors and top picks') but does not disclose internal scoring logic, output structure, or any caveats like data freshness. It adds minimal behavioral 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 opens with a concise one-sentence purpose, then cleanly lists each parameter with its meaning and defaults. It is well-structured, front-loaded, and free of unnecessary wordsโevery sentence earns its place.
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 scanner with all-optional parameters and complete parameter documentation, the description is largely self-sufficient. The main gap is the lack of output format details (e.g., what the returned data looks like) and no clarification of the scoring criteria for 'hot/cold', but these are minor for an agent making a call.
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 (0%), so the description fully compensates. It lists each parameter with allowed values for timeframe (5m, 15m, etc.), numeric ranges for top_n_sectors (1-18) and top_n_stocks (1-10), min_stock_score range (0-100), and defaults. This is exactly the semantic detail an agent needs.
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's a sector rotation scanner for EGX that identifies hot/cold sectors and top picks. The verb 'identifies' and the specific resource (EGX sectors) make it unambiguous, and it distinguishes itself from generic scanners like top_gainers or stock_screener.
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 exclusions or specific conditions, and the sibling list includes a very similar tool (egx_sector_scan) without any differentiation. The agent would have to infer usage from the name and purpose alone.
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 establish a read-only, non-destructive, open-world tool, so the safety profile is covered. The description adds only a basic 'ranking engine' behavior and does not disclose sort order, scoring logic, or result structure.
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?
A one-line summary followed by a compact parameter list with no filler. Every sentence adds value and the most important context is front-loaded.
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 parameter contract is complete and callable, but the description doesn't explain output format or what 'strong' and 'actionable setups' concretely mean. For a screener with no output schema, that leaves some ambiguity about the return value.
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?
All four parameters are documented with allowed values, ranges, and coverage of the schema's gaps. The timeframe options, min_score range, index filter list, and limit max go well beyond the bare schema, which itself has 0% description coverage.
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?
Clearly identifies a stock ranking/screening engine scoped to EGX with a stated goal of finding strong stocks with actionable setups. This differentiates it from generic market tools, though 'actionable setups' is somewhat vague and doesn't sharply distinguish it from sibling EGX scanners.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool instead of alternatives like stock_screener, egx_sector_scan, or bollinger_scan. The EGX focus implies a use case, but the description never states when it should be preferred or when it should be avoided.
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 indicate readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety and non-destructive behavior. The description adds minimal extra behavioral context beyond suggesting a generative analysis function, but it does not discuss outputs, complexity, or limitations.
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, front-loaded with the purpose, and split cleanly into a purpose sentence and an Args block. Every line adds value and no filler or redundant phrases are 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 simple read-only generator of 2 parameters, the argument information is sufficient to invoke the tool. However, there is no output schema and the description's phrase 'full trade plan' is vague: the agent is not told what the returned plan contains, how it is generated, or what data it relies on. That omission leaves it incomplete.
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 must carry the full burden of explaining parameters. It does this well with a complete timeframe list, clear symbol semantics, example symbol values, and a default value. An agent can construct correct calls with no further lookup.
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 'Generate a full trade plan for a specific EGX stock' names a clear verb-action, a specific market, and a deliverable, so an agent can understand the tool's core purpose. It does not explicitly differentiate itself from sibling tools such as egx_stock_screener or multi_timeframe_analysis, which keeps it from 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 gives no explicit when-to-use guidance and no reference to alternatives. It only states what the tool does and does not mention that it should be used instead of other EGX tools or when a plan is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fibonacci_retracementBRead-only
Fibonacci retracement analysis for any stock or crypto symbol.
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 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 | ||
| exchange | No | KUCOIN | |
| lookback | No | 52W | |
| timeframe | No | 1D |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only and non-destructive behavior, so the description doesn't repeat that. It adds useful context about symbol formats and exchange lists, but it doesn't disclose what the output looks like or any other behavioral traits. With annotations covering safety, 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 well-organized with a clear purpose line followed by a bullet-like arg list. It's slightly verbose with multiple exchange examples, but each add value. The structure is front-loaded and 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?
Despite thorough parameter documentation, the description omits any mention of the return value or output structure. Since there is no output schema, the agent has no indication of what the tool returns (e.g., retracement levels, support/resistance, etc.), leaving a critical gap for correct usage.
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 fully for the 0% schema coverage by detailing every parameter: symbol format with concrete examples across exchanges, the full list of exchanges, valid lookback periods, and timeframes with defaults. This goes well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'Fibonacci retracement analysis for any stock or crypto symbol,' which is a specific verb-resource pairing. While it doesn't differentiate from siblings like bollinger_scan, the purpose is unambiguous and matches the tool name.
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 given on when to use this tool versus alternatives like bollinger_scan or volume_breakout_scanner. The description only explains parameters and gives examples, but offers no context for selecting this tool over others or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
financial_newsBRead-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 openWorldHint=true, so the safety profile is covered. The description adds useful context by naming the data source (Marketaux), noting it is licensed, and emphasizing real-time behavior. However, it does not disclose potential rate limits, output shape, or how frequently the news updates.
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, with a clear one-sentence overview followed by a concise, readable parameter breakdown. Every sentence adds value and there is no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All three parameters are documented and the source is identified, making invocation straightforward. However, there is no output schema and the description does not describe the response format or what fields are returned for each news item. For a news-fetching tool, that gap is moderate but not fatal.
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, and it does. Each parameter is explained: symbol with examples and the 'None = all news' behavior, category with allowed values, and limit with a clear meaning. This goes beyond the bare schema, though it could be more precise about exact accepted values or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates the tool provides real-time financial news from Marketaux. It lacks an explicit verb like 'retrieve' or 'fetch,' but the function name and content make the purpose unambiguous. There are no direct news-focused siblings, so differentiation is not a concern.
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 about when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or conditions that would route an agent to a sibling tool. The parameter list implies usage but does not state it explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
futures_category_snapshotBRead-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 provide readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds behavioral context by specifying the return format ('OHLCV quotes for the standard watchlist of contracts') and giving example symbols per category, which goes beyond the annotations. However, it does not disclose any limitations (e.g., what 'major front-month' means, how the watchlist is determined, or potential delays). Since this is a read-only snapshot tool, the added detail is useful but not exhaustive.
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 and front-loaded with the core purpose before diving into details. It uses a clear heading ('Args'), lists categories, and shows return behavior and examplesโall in just 3 sentences. There is zero fluff; each sentence adds necessary information. This is a model of efficiency.
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 that there is no output schema, the description does explain the return (OHLCV quotes) and provides example symbols. However, it leaves some ambiguity about what 'standard watchlist' includes and does not discuss error handling or behavior for invalid categories. For a simple one-parameter tool, this is adequate but not comprehensive. The lack of a defined output schema lowers the expected burden, so a 3 is reasonable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0% and there are no enums, so the description carries the full burden of explaining the 'category' parameter. It explicitly enumerates the acceptable values (equity_index, energy, metals, agriculture, rates, forex, crypto_futures), which is essential for correct invocation. It also provides example symbols to illustrate typical inputs, compensating for the lack of schema-level documentation. This is strong for a single parameter, though it could mention that the default is 'energy'.
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 ('Quote') and resource ('all major front-month contracts in a specific futures category'). It clearly explains the scope by listing the five categories, making it distinguishable from siblings like 'futures_watchlist' (which likely targets a default set rather than a category-based subset). However, it does not explicitly contrast with sibling tools, so it falls just 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?
There is no explicit guidance on when to use this tool over alternatives. It does not mention 'use when you need quotes for a category' or point to siblings like 'futures_market_overview' as a fallback. The description implies use for category-specific quotes but never states exclusions or alternatives, making this dimension weak.
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?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the return format (Dict with total_available count and list of contracts with OHLCV + % change), which is useful. However, it doesn't disclose pagination behavior, rate limits, or what happens with invalid category values. With annotations covering safety, a 3 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 well-structured with clear sections for args and returns. It's front-loaded with the core purpose. The parameter list is concise and each line earns its place. Minor deduction for not being even more compact, but overall 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?
For a read-only overview tool with no output schema, the description covers the essential information: what it returns, how to filter, and the parameter semantics. It doesn't explain edge cases (e.g., what happens with no matching contracts) or provide examples, but for a simple list tool this is adequate. The absence of an output schema means the return format description is valuable and 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?
Schema description coverage is 0%, so the description must compensate. It does: it explains each parameter's meaning (category values, exchanges options, limit default, volume_min filter). This adds significant value beyond the bare schema, which only shows types and defaults. The description effectively documents all four 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 futures contracts sorted by trading volume, with a specific resource (futures contracts) and verb (list/sort). It distinguishes itself from siblings like futures_top_movers and futures_category_snapshot by focusing on volume-sorted overview, though it doesn't explicitly name those 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 provides parameter guidance (category, exchanges, limit, volume_min) and implies usage for market overview, but doesn't explicitly state when to use this tool versus alternatives like futures_top_movers or futures_category_snapshot. The context is clear but exclusions are not stated.
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 already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is established. The description adds useful behavior beyond the annotations: the return payload (list ranked by % change with OHLCV data) and the semantic of volume_min (filters illiquid contracts), which clarifies default behavior an agent would otherwise have to infer.
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 six-line summary sentence is front-loaded before the Args block, and the compact parameter listing is scannable and free of fluff. The only minor gap is 'max results' being slightly terse (max what? limit of results is implied but could be explicit).
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, parameter-simple tool, the combination of annotations, parameter documentation, and return description is nearly completeโan agent can call this tool correctly with the given information. It would only be improved by noting how it differs from the many similar siblings (e.g., futures_market_overview, futures_category_snapshot) in its domain.
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 carries the full burden of documenting parameters, and it delivers. All four parameters are given meaningful semantics: direction maps to gainers/losers with value options, exchanges maps to us/global, limit is explained as max results, and volume_min gets default plus behavioral context. This is exactly how a description should compensate for a 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 summary line "Futures contracts with the biggest percentage moves today" uses an implicit but clear verb plus resource, and the Returns section confirms it lists futures ranked by % change. However, it doesn't differentiate itself from closely-related siblings like top_gainers, top_losers, futures_market_overview, or futures_category_snapshot that could easily be confused with this tool.
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 Args/Returns sections explain what the tool does with each parameter, but there is zero guidance on when to choose this tool over its many overlapping siblings. Given siblings like top_gainers, top_losers, futures_watchlist, and futures_market_overview, the description leaves an agent guessing which sibling to invoke when a user asks for top movers versus market overview data.
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 mark it read-only and non-destructive, so the description's safety burden is low. It adds meaningful context by defining exactly what the list contains (front-month, categorized) and by naming the categories, which goes beyond the title. It doesn't reveal output formatting, but that is not critical for a read-only reference list.
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?
Three short sentences, each earning its place: the purpose, the exact category taxonomy, and the recommended follow-up tools. No filler or redundant 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 zero-parameter, read-only list tool, this is complete: the agent knows what it will receive, how the list is organized, and what to do next. The output schema is absent, but the description's explicit category list plus the follow-up pointers are enough for successful 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 tool has no parameters and the schema coverage is complete, so the description does not need to explain parameters. It correctly avoids inventing parameter requirements, making the call semantics obvious.
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?
States a specific verb ('Return') and a precise resource ('full categorized list of well-known front-month futures symbols'). The listed categories and the pointer to sibling tools distinguish it from futures_market_overview and 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?
The description explicitly frames it as a symbol-reference source and tells the agent to feed these symbols into futures_category_snapshot or coin_analysis for deeper analysis. It does not spell out exclusions, but for a zero-parameter reference tool the intended use case is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_sentimentARead-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 openWorldHint=true, establishing it as a safe read-only operation. The description adds a small behavioral note about limit controlling the number of articles analyzed and mentions the licensed data source, but it does not describe the output format or any rate limits. This is moderate 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 a single-line purpose plus a compact Args block. It contains no filler and is front-loaded with the essential behavior, every sentence earning its place.
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?
No output schema is provided, and the description does not explain what the result looks like (score, label, articles). Since the tool's purpose is sentiment analysis, agents need to know whether to expect a numeric score, categorical rating, or article list. The licensed source mention adds some context, but the missing return format is a significant 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?
The schema provides only types and defaults (0% description coverage), so the description fully compensates by documenting symbol with examples, category with enumerated values, and limit as max articles. This is exemplary parameter documentation for a low-coverage 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 provides news sentiment for stocks and crypto, and names the data source (Marketaux). This makes its core function evident and distinguishes it from sibling tools like financial_news or top_gainers, though it lacks an explicit verb and does not name a specific sibling.
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?
There is no guidance on when to use this tool versus alternatives. It does not mention that financial_news might be more appropriate for raw articles, nor does it indicate when sentiment analysis is the right choice. The agent must infer usage solely from the tool name and brief description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_snapshotBRead-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?
The annotations already declare readOnlyHint=true and openWorldHint=true, so the description doesn't need to re-state that it's a read-only operation. It adds a valuable source attribution ('Powered by Yahoo Finance') and lists the asset classes, which is useful context. However, it doesn't clarify what 'top crypto' or 'key ETFs' means, nor whether output includes real-time, delayed, or end-of-day data, which could matter for an agent picking a tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a source line: efficient, front-loaded with the core purpose, and no fluff. It misses a tiny opportunity to add 'use cases' without bloating, but as written it's tight.
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 overview tool with annotations covering the safety profile, the description is mostly complete. But given the sheer number of sibling snapshot/overview tools, a phrase like 'broader than futures_market_overview but narrower than egx_market_overview' would have made it much more complete for an agent deciding between siblings. Also, no output schema and no mention of return format, though that might be overkill for a snapshot tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to document. The description's mention of asset classes (major indices, top crypto, FX rates, key ETFs) is the only semantic load-bearing content. With no parameters and 100% schema coverage meaning 'no params', the description does its minimal job but does not do more.
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 clear verb-noun phrase 'Global market overview' and lists covered asset classes (indices, crypto, FX, ETFs), which is specific enough to know roughly what the tool does. However, it does not distinguish itself from siblings like 'egx_market_overview' or 'futures_market_overview', so an agent might still pick the wrong macro tool. It's adequate but not great.
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?
There is no explicit guidance on when to use this tool versus alternatives. The description implies a broad use case, but with siblings like 'egx_market_overview' and 'futures_market_overview', the absence of any 'use this for X, not Y' direction is a gap. An agent has to infer from names alone.
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, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about the internal debate structure and the final trading decision, which goes beyond annotations, but it does not disclose behavior like latency, data dependencies, or return shape details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose. The Args section is compact but information-dense, and the Returns section is a single clear sentence. No filler or redundant restatement of the tool name.
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 explains the inputs and the general nature of the output, but with no output schema and no statement about edge cases, failure modes, or required data prerequisites, an agent only gets a partial picture. It is adequate for a first invocation but leaves the shape and limitations of the result under-specified.
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 for parameters. It does this well: symbol and exchange are given extensive concrete examples across crypto and stock markets, and timeframe is listed with valid intervals. This meaningfully exceeds the bare schema definitions.
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 names a specific action ('Run a multi-agent debate') and a clear resource (a symbol), with the three agent angles (Technical, Sentiment, Risk) spelled out. It is unambiguous about what the tool does, though it does not explicitly differentiate itself from sibling analysis tools like multi_timeframe_analysis or combined_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 gives no guidance about when to choose this tool over alternatives. It does not mention use cases, exclusions, or relationships to sibling tools such as multi_timeframe_analysis, market_sentiment, or coin_analysis.
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 (readOnlyHint=true, openWorldHint=true, destructiveHint=false) already establish this is a read-only safe operation. The description adds the specific timeframe hierarchy (Weekly โ Daily โ 4H โ 1H โ 15m), which is genuine behavioral context, but doesn't discuss rate limits, auth, or return-value behavior. Adheres to the calibration baseline of 3 for annotations covering the safety profile with some but limited additional 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 fairly long, but nearly every sentence earns its place: a one-line summary, anti-hallucination note about the canonical name, sibling routing, a worked example, and parameter docs. The 'canonical name' clarification is slightly unusual and reads as a guardrail, but the overall structure is well-organized and front-loaded with the 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?
For a low-complexity tool (2 params, no output schema, no nested objects), this is nearly complete: purpose, alternatives, full parameter semantics, and a runnable example. The only gap is no mention of the return shape or behavior, but with no output schema and a self-evident analysis output, this is a minor omission.
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% and no enums, the description carries the full burden โ and it excels. It documents concrete symbol formats per market ('BTCUSDT', 'COMI' (EGX), '600519' (SSE)) and enumerates all valid exchange values across crypto and stock venues. This goes far beyond the bare schema and is genuinely load-bearing for correct invocation.
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?
States a specific verb+resource ('Multi-timeframe alignment analysis') and immediately differentiates from siblings: 'for a single-timeframe deep dive use coin_analysis; for TA + sentiment + news use combined_analysis.' An agent can instantly tell this apart from the siblings without opening any schema.
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?
Explicit when-to-use guidance is front and center: 'Use this for cross-timeframe trend alignment on ONE symbol' followed by named alternatives for other cases. Explicitly names two sibling tools with the conditions that select them (single-timeframe vs. combined analysis), leaving nothing to inference.
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?
Beyond the annotations (readOnlyHint, destructiveHint), the description discloses the return type ('list[dict]') and the structured error envelope on any failure ('{"error": {"code": ..., "retryable": ...}}'). It also clarifies the limit maximum. This adds valuable behavioral 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 well-structured with a clear one-line summary followed by a bulleted args list. It is concise and front-loads the purpose. The return/error info is appended efficiently. No extraneous content.
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 filter tool with 4 optional parameters, the description covers all parameter values, return type, error envelope, and limit constraints. It is complete enough for an agent to invoke it correctly without additional information. The presence of an output schema is noted but not needed here.
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 by explaining each parameter: exchange with examples, timeframe with allowed values, rating with a mapping (-3 to +3), and limit with a max. This provides essential meaning that the schema lacks.
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 'Filter coins by Bollinger Band rating', which is a clear verb+resource+metric. It distinguishes the tool's core function but does not explicitly differentiate it from the sibling bollinger_scan, which likely also uses Bollinger Bands. The purpose is unambiguous and 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 explains what the tool does and the parameter semantics, but it does not state when to use this tool over alternatives like bollinger_scan or other scanners. The usage context is implied from the name and description, but no explicit when/when-not guidance is given.
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?
Beyond the readOnlyHint and non-destructive annotations, the description explicitly reveals the success return type (list[dict]) and the failure envelope with retryable flag. It also notes a max result limit of 30. This provides meaningful runtime behavior that annotations alone would not convey.
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 structured into a one-sentence summary, a parameter list, and a return/error statement. Every line adds necessary information and nothing is repeated. It is an appropriate length for a 5-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only scanner with all-optional parameters, the description covers the return contract, error shape, and all parameter semantics. No critical information about how to invoke or interpret the result 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?
Schema description coverage is 0%, so the description carries the full burden of explaining parameters. It does so for all 5 parameters, including valid rsi_range values, defaults for min_volume_ratio and min_price_change, and a max for limit. It is slightly terse for exchange but sufficient.
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 clear combination scanner purpose: it combines volume and technical analysis. It doesn't use a verb like 'scan' or 'screen,' but the noun phrase is specific and suggests what the tool does. It distinguishes itself from pure volume and pure technical scanners, though not by name.
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 explicit when-to-use guidance or exclusions, and it never references siblings such as volume_breakout_scanner or bollinger_scan. The presence of filters implies its use case, but the agent is left to infer when to select it over alternatives.
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 already mark the tool read-only and non-destructive, and the description adds valuable behavioral details beyond that: null post_market during regular hours, weekend/holiday behavior, 'most recent valid print' per window, and the computed percentage changes relative to appropriate baselines. No contradictions with annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and usage trigger, followed by concise structured Args and Returns sections. Every sentence adds value, and the format is easy for an agent to scan and apply.
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 single-parameter, read-only tool with no output schema, the description is complete: it explains inputs, outputs, null semantics, session timing, and market-condition behavior. An agent has everything needed to select and invoke the tool correctly and interpret its 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 schema provides only the parameter name and type with no description, so the description carries the full burden. It explains symbol as a US stock symbol and supplies concrete examples including tickers, index symbols, and the ^GSPC format. This fully compensates for the 0% schema description coverage.
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: retrieving real-time pre-market and after-hours prices for a US stock symbol. It uses a specific verb-resource combination ('returns real-time pre-market and after-hours prices') and distinguishes itself from regular-session price tools like stock_prices and yahoo_price by explicitly limiting scope to extended-hours sessions.
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 explicit when-to-use guidance: 'Use this when the user asks about a stock outside the regular 9:30am-4pm ET session' and provides concrete example queries. It also explains edge-case behavior during regular sessions and weekends/holidays, which helps the agent decide correctly without ambiguity.
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 already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral detail beyond the schema: it returns the nearest expiry when none is provided, errors with a list of valid expiries if the given one doesn't match, and fully documents the return structure including underlying prices, counts, and per-strike fields. This gives an agent a clear picture of side effects, error behavior, and output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: a one-sentence summary, explicit usage triggers, and then precisely formatted Args and Returns sections. Every sentence earns its place, and the length is justified by the need to document both parameters and the full return shape without an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description thoroughly documents the return payload, including nested call/put objects with all key fields. It covers required behavior (nearest expiry, error on invalid expiry), parameter semantics, and the distinction between calls and puts. An agent has everything it needs to invoke this tool correctly and interpret the result.
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 full parameter-documentation weight. It defines `symbol` with concrete examples ('AAPL, NVDA, TSLA, SPY') and `expiry` with format constraints, validity rules, and error behavior. This exceeds what a bare schema would provide and leaves no ambiguity about how to populate each argument.
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 role: 'Full options chain (calls + puts) for a US stock symbol and one expiry.' It uses a specific verb ('returns,' 'Use this when') and identifies the exact resource, distinguishing it from generic quote tools like yahoo_price or stock_prices. The examples ('show me AAPL puts expiring next Friday') make the intent unmistakable.
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 trigger phrases: 'Use this when the user asks...' and gives concrete examples. It also explains the no-expiry fallback behavior and invalid-expiry error handling. However, it does not explicitly name sibling alternatives or state when NOT to use this tool versus stock_options_unusual_activity or other option-related tools.
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?
Beyond the readOnlyHint annotation, it discloses the internal algorithm: scans the soonest expirations, filters out illiquid strikes below min_volume, sorts by V/VOI descendant, and helps to explain the OI > 1 interpretation. It also notes it returns aggregate call vs assets volume for directional-bias commentary.
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, but every sentence adds meaningful behavior or usage guidance. It is logically organized: a one-line summary, example use cases, parameter details, and return format. There is no fluff or repeated schema 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?
Given no output schema, it fully documents the return fields: underlying_price, expiries_scanned, total_call_volume, total_put_volume, put_call_volume_ratio, and each unusual contract's fields. For an additional complexity tool with four parameters, it 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 input schema has descriptive coverage (0%), meaning the tool description carries full burden. It defines each parameter's purpose and default, such as 'top_n: How many strikes to return. Default 10' and 'min_volume: Filter floor... prevents noise from illiquid strikes'.
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 strikes by volume / open-interest ratio โ institutional positioning signal,' which names the resource and specific metric. It then gives concrete verbs: 'Scansโฆfiltersโฆreturns,' making it clearly distinguishable from a generic stock_options_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?
The description explicitly lists canonical trigger phrases: 'any unusual options activity on X?', 'where is the smart money positioned...', and 'wants an OI screener for a ticker.' It does not name an alternative sibling tool or say 'do not use this for X', but the use cases are specific enough to 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 only declare readOnlyHint/openWorldHint/destructiveHint. The description adds substantial behavioral disclosure: the max of 2000 tickers, the fact that even at that size it is 'one upstream request', the exchange-scoped lookup behavior, and the not_found list in the response for unrecognized tickers. These are exactly the kind of behaviors an agent needs to know that the annotations do not cover.
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 about 60 words of prose split into an intro sentence, an Args section, and a Returns section. Every sentence adds critical informationโno redundancy, no fluff. The most important constraint (format) appears first, with the example and edge cases (not_found) following naturally. It is dense but 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 only one parameter and no output schema, the description covers all necessary usage context: the exact string format, length limits, the behavior when a ticker is not recognized, and the full set of returned fields (ticker, symbol, description, exchange, price, open, high, low, currency, change_percent). There is no external output schema to fall back on, yet nothing essential is missing 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 input schema only provides 'tickers' with type string and no description or enum, i.e., 0% schema description coverage. The description fully compensates by specifying the exact format ('EXCHANGE:SYMBOL'), giving an example ('NASDAQ:NVDA, NASDAQ:TSLA, KRX:005930'), the comma separator, the 2000 max, the requirement for an exchange prefix, and the return envelope structure. This transforms a previously meaningless parameter into a completely specified one.
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: 'Current price + daily % change for specific stock symbols.' It specifies the resource (stock symbols), the action (retrieve current price and change), and the scope (specific symbols, not indices or sectors). This distinguishes it from the many scanner and analysis tools in the sibling list.
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 detailed formatting instructions ('comma-separated EXCHANGE:SYMBOL list') and notes the exchange prefix is required. However, it never explicitly states when to use this tool versus a sibling like 'yahoo_price' or 'stock_screener', nor does it exclude alternatives. The context is clear, but there are no explicit when/when-not conditions.
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 flag readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful behavior beyond annotations: 'single upstream request', 'server-side descending sort over the WHOLE market', the 'price is current/last close' semantic, local-currency behavior (with KRW example), and the return-envelope structure. An agent calling this knows exactly what side effects and data semantics to expect.
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 docstring-style Args/Returns layout is scannable and front-loaded with intent. Every clause earns its place, from the parenthetical 'single upstream request' caveat on limit to the 'KRW for korea' clarification. The sort_by example is the longest sentence but conveys critical semantics that could not be abbreviated. No redundancy with the schema since the schema has no descriptions.
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 present, the description correctly carries the return-format burden โ and does so thoroughly: the envelope keys (total_matches, returned, rows), row-level fields, and the meaning of open/high/low relative to price are all stated. The only minor omissions are error behavior for invalid country values and an explicit statement about rate limiting, but for a read-only screener this is fully adequate.
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 documentation burden โ and it delivers. Every parameter gets meaning beyond its name: country gets a TradingView market-name note and examples; limit gets max-2000 plus ranking semantics; sort_by gets the full semantics of each value; exclude_otc and compact each explain the trade-off and intended use. Parameter names in the schema would be insufficient; the description fully compensates.
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 opening line names a specific verb (screen), resource (stocks), and the qualifying scope ('by share type'). It also anchors itself as the API twin of TradingView's 'Common stock' / 'Preferred stock' filter, which immediately signals its purpose relative to the many scanner siblings. Together with the title, an agent can distinguish this from the scanner tools without inspecting the schema.
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 rich intra-tool usage context: sort_by is explained with a concrete example showing server-side whole-market behavior, compact is positioned 'for bulk price feeds', and exclude_otc explains the 'US venue' vs 'US company' distinction. However, it never explicitly says when NOT to use this tool or names a sibling alternative (e.g., egx_stock_screener or the scanners), so selection guidance across tools is left implicit.
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?
The description adds valuable behavioral context: it specifies the return format (list[dict] on success) and the structured error envelope with retryable flag, which is not covered by annotations. Since readOnlyHint is true and destructiveHint is false, the safety profile is already clear, but the error handling detail goes beyond annotations. No contradiction 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 well-structured with a docstring format: purpose first, then Args, then Returns. It is concise yet covers all essential details without unnecessary fluff. The structure is easy to scan, and the purpose is front-loaded.
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 screener, the description covers all necessary aspects: parameters, valid values, return type, and error behavior. The existence of an output schema is indicated, but the description still explains the return shape, which is helpful. No critical information is missing for an agent to call it 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 fully compensate. It excels by listing valid exchange names (KUCOIN, BINANCE, etc.), valid timeframes (5m, 15m, 1h, etc.), and the limit parameter with a max of 50. This provides all necessary semantics that the schema lacks (which only has defaults and 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 it returns top gainers for an exchange and timeframe using Bollinger Band analysis. This distinguishes it from siblings like top_losers (opposite direction) and bollinger_scan (likely a broader scan), even though it doesn't name them explicitly. The verb and resource are specific and 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 does not explicitly state when to use this tool versus alternatives like bollinger_scan or top_losers. Usage is implied by the name and purpose, but no explicit conditions or comparisons are given. An agent could infer that it's for quick gainers screening, but the lack of explicit guidance leaves some ambiguity.
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, openWorldHint, and destructiveHint, so the safety profile is covered. The description adds a clear success return type and a structured error envelope on any failure, which is useful and goes beyond the annotations. It does not contradict any annotation.
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?
Three short sentences are front-loaded with the core purpose, followed by supported markets and the return/error contract. There is 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?
Given all parameters are optional with defaults and an output schema exists, the description covers the main selection logic and failure behavior. The remaining gap is the lack of enumerated timeframe values, which could cause an agent to pass an unsupported string, but overall the tool is callable from the 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?
With 0% schema description coverage, the description must carry parameter meaning. It adds concrete exchange choices and distinguishes crypto vs stock markets, but it still omits valid timeframe values and the meaning/range of limit. This is meaningful but incomplete compensation.
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 pair, 'Return top losers for an exchange and timeframe,' which immediately distinguishes the tool from screening, price, and news tools. It also enumerates supported markets, so the agent knows its exact scope. This exceeds baseline 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 supported exchange list gives implicit guidance about where the tool applies, but there is no explicit 'use this instead of X' statement or exclusions. An agent must infer when to choose top_losers over top_gainers, futures_top_movers, or stock_screener. That is adequate but not strongly guided.
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?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds some behavioral detail by explaining the return contract: returns list[dict] on success, an error envelope on total upstream failure, and that an empty list means no matches today. However, it does not discuss rate limits, performance characteristics, or any side effects beyond the obvious read-only nature.
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 brief purpose statement followed by a parameter list and return information. It is reasonably concise, though it somewhat duplicates the schema by listing parameters that are already present. The structure is logical and easy to scan, but could be tightened by referencing the schema instead of repeating content.
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 that the tool has 5 parameters, no required fields, and an output schema, the description covers all parameters, return types, and error behavior. It also clarifies the meaning of an empty list. However, it omits any mention of preconditions, such as the need for an active market or data availability, and does not discuss edge cases (e.g., invalid timeframe values). The presence of an output schema compensates for missing low-level 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?
The description provides semantic explanations for each parameter (e.g., 'volume_multiplier: How many times the volume should be above normal level' and 'timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M'), which the input schema lacks. This gives the agent a clear understanding of what each parameter controls, though it could be augmented with examples or more explicit units (e.g., percentage as a number) to reach a perfect score.
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 begins with a clear verb 'Detect' and specifies the resource 'coins' with the criteria 'volume breakout + price breakout'. This is distinct from the sibling tools (e.g., smart_volume_scanner, top_gainers) and immediately clarifies the tool's primary 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 does not provide any guidance on when to choose this tool over the many alternative scanners, such as when a user specifically wants a combined volume and price breakout vs. volume-only or pattern-based scans. There is no mention of appropriate use cases or comparison with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volume_confirmation_analysisBRead-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?
The annotations already indicate readOnlyHint=true and destructiveHint=false, and the description adds no additional behavioral context such as rate limits, data source, or what 'analysis' entails. While the description is consistent with the annotations, it provides no extra transparency about side effects or system behavior beyond what annotations already capture.
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-loads the main purpose, followed by a parameter list. It could be better structured with consistent formatting or a more explicit separation between the summary and details, but it is not bloated and every word earns its place.
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 only three parameters and no output schema, the description is adequate. It explains the parameters and the tool's purpose. However, it does not mention what happens after analysis (e.g., output format, examples), which could be important for an agent to know. But given the simplicity and the presence of annotations, this 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?
The input schema has no descriptions for any parameter (0% schema coverage), but the description's Args section provides brief definitions: 'Coin symbol', 'Exchange name', 'Time frame for analysis'. This adds meaning and compensates for the schema gap, though the definitions are minimal and could be more detailed (e.g., accepted formats, examples).
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 'volume confirmation analysis' for a specific coin, which is a specific verb+resource. It includes the parameters symbol, exchange, and timeframe, making its purpose clear. However, it does not explicitly differentiate itself from sibling tools like volume_breakout_scanner, so it loses a point for not distinguishing from 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?
No guidance is provided on when to use this tool versus other volume-related tools in the sibling list. The description only lists parameter names without any context about typical use cases, prerequisites, or alternatives. This is essentially no usage guidance beyond the tool's name.
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, openWorldHint=true, destructiveHint=false, so the safety profile is clear. The description adds meaningful behavioral context by explaining why some strategies are unsupported ('SMA200 warmup exceeds typical fold size'), the fold-based evaluation approach from training to unseen test data, and the per-fold capital structureโ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 opening sentence is a crisp thesis, and the Args block is well-organized for parsing. However, the Args section restates defaults already present in the schema (e.g., 0.05, 10000) and is fairly long. It's efficient enough to be skimmable but slightly redundant with schema values that the agent could fetch on its own.
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 9-parameter tool, the description thoroughly covers what, why, and when, including a critical sibling alternative. The main gap is that it doesn't describe expected return values or output shape, and there's no output schema to fill the void. It also doesn't mention error cases, but for a backtest with no side effects, the provided context is nearly 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 carries the full burdenโand it delivers. Every parameter is documented with units, defaults, accepted values, and slot semantics (e.g., 'per fold', 'fraction of each fold used for training'). The description even clarifies constraints like n_splits max=10 that the schema leaves implicit. This is a model example of compensating for absent 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 leads with a specific verb and resource combinationโ'Walk-forward backtest to detect overfitting'โand explains the mechanism ('validates strategy on unseen data'). It clearly differentiates this walk-forward variant from standard backtests by naming the core purpose and the range of strategies it supports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly routes unsupported strategies (rsi_pullback, triple_ema) to run_backtest with a specific period, giving the agent an unambiguous alternative. It also advises a preferred period ('recommend 2y') and constrains n_splits to a max of 10, providing decisions rather than just definitions.
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 establish readOnlyHint=true, openWorldHint=true, and destructiveHint=false, and the description does not contradict those. It adds the Yahoo Finance data source and real-time character, but provides no further behavioral context such as rate limits, latency concerns, or what the quote response contains.
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: one purpose sentence plus a short Args section with examples. Every line adds necessary signal, and the main purpose appears first.
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 one-parameter, read-only quote tool, the description is mostly complete and gives an agent enough to invoke it correctly. The remaining gaps are the absence of any output-shape note and the lack of guidance that would disambiguate from similar-sounding sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description carries the full burden for the symbol parameter. It compensates well with concrete examples covering equities, crypto, ETFs, indices, forex, and foreign markets, making the expected symbol format genuinely actionable.
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?
States a specific verb+resource and scope: 'Real-time price quote from Yahoo Finance for any stock, crypto, ETF or index.' It is exactly clear what data this tool returns. It does not name how it differs from closely related sibling tools such as stock_prices, so it is not fully differentiated.
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 explicit when-to-use or when-not-to-use guidance and names no alternatives. Given the sibling list contains overlapping-sounding tools like stock_prices, the agent receives no help separating them by context or intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
37 tool updates
v0.8.0- First observed
advanced_candle_pattern - First observed
backtest_strategy - First observed
bitcoin_market_pulse - First observed
bollinger_scan - First observed
coin_analysis - First observed
combined_analysis - First observed
compare_strategies - First observed
consecutive_candles_scan - First observed
egx_index_analysis - First observed
egx_market_overview - First observed
egx_sector_scan - First observed
egx_sector_scanner - First observed
egx_stock_screener - First observed
egx_trade_plan - First observed
fibonacci_retracement - First observed
financial_news - First observed
futures_category_snapshot - First observed
futures_market_overview - First observed
futures_top_movers - First observed
futures_watchlist - First observed
market_sentiment - First observed
market_snapshot - First observed
multi_agent_analysis - First observed
multi_timeframe_analysis - First observed
rating_filter - First observed
smart_volume_scanner - First observed
stock_extended_hours - First observed
stock_options_chain - First observed
stock_options_unusual_activity - First observed
stock_prices - First observed
stock_screener - First observed
top_gainers - First observed
top_losers - First observed
volume_breakout_scanner - First observed
volume_confirmation_analysis - First observed
walk_forward_backtest_strategy - First observed
yahoo_price
TDQS
Scored across 37 tools
Many tools occupy the same conceptual space, especially the volume scanners (volume_breakout_scanner, smart_volume_scanner, volume_confirmation_analysis) and the EGX tools (egx_sector_scan vs egx_sector_scanner). An agent could easily select the wrong one despite the descriptions, because the boundaries between scan, scanner, analysis, and screener are fuzzy.
All names are lowercase snake_case and readable, but the naming pattern is inconsistent: some are noun phrases (top_gainers, financial_news), some are verb-led (backtest_strategy, compare_strategies), and similar actions use interchangeable suffixes like scan, scanner, analysis, and screener. The near-twin names egx_sector_scan and egx_sector_scanner further weaken consistency.
At 37 tools, the surface is well above the comfortable 3-15 range and clearly in the 'too many' category. The broad market domain partially justifies the count, but many tools are near-variants or EGX-specific expansions that could be consolidated.
The server covers major market workflows well: quotes, news/sentiment, technical analysis, multi-timeframe scans, backtesting, options, futures, and a dedicated EGX module. Minor gaps exist, such as a raw historical OHLC endpoint and broader fundamental screening, but agents can work around them with the existing tools.
Maintenance
Related MCP Connectors
Real-time market data, screeners, technical analysis & backtesting for stocks, crypto and forex.
- CPZAIOAuthcom.cpz-lab.mcp
Build, backtest, and deploy quantitative trading strategies from your AI agent.
Paper trading for AI: live quotes, indicators, and virtual trades on stocks, crypto, and forex.
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides AI agents with real-time financial market intelligence including stock quotes, crypto data, technical analysis, and portfolio insights. Enables natural language queries for current prices, technical indicators, asset comparisons, and portfolio analysis.176MIT

Rozkoduj MCPofficial
AlicenseAqualityAmaintenanceProvides AI assistants with market screening, analysis, and scoring across stocks, crypto, and forex, enabling natural language queries for trading insights.4MIT
panther-mcpofficial
AlicenseAqualityDmaintenanceEnables AI assistants to backtest trading strategies described in plain English, providing access to market data, technical indicators, and comprehensive performance reports.131MIT- FlicenseAqualityDmaintenanceProvides AI assistants with real-time stock prices, financial statements, SEC filings, and analytical tools like DCF valuation and ratio analysis.14-