Skip to main content
Glama
yyordanov-tradu

stock-scanner-mcp

stock-scanner-mcp

CI npm version npm downloads

A modular MCP server for Claude Code and Claude Desktop that provides real-time access to stock and crypto market data. Scan markets, check technicals, monitor insider trades, track earnings, analyze options flow, and optionally save your own watchlists and thesis notes from one server.

69 tools across 15 modules — 11 modules work with zero API keys, including an optional stateful Market Workspace.

Quick Start

Three steps to get the full experience: server config, trading skills, and workspace setup.

Step 1 — Add the server to your MCP config

Copy this complete config block into your config file:

  • Claude Code: ~/.claude.json (global) or .mcp.json (project-local)

  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

{
  "mcpServers": {
    "stock-scanner": {
      "command": "npx",
      "args": ["-y", "stock-scanner-mcp", "--enable-workspace"],
      "env": {
        "FINNHUB_API_KEY": "your-key-here",
        "ALPHA_VANTAGE_API_KEY": "your-key-here",
        "FRED_API_KEY": "your-key-here"
      }
    }
  }
}

This gives you 49 tools immediately with no API keys. API keys are optional and free — they unlock 20 additional tools for real-time quotes, news, earnings, and economic data. See API Keys below for where to get them.

Minimal config — if you don't want workspace or API keys, use this instead:

{
  "mcpServers": {
    "stock-scanner": {
      "command": "npx",
      "args": ["-y", "stock-scanner-mcp"]
    }
  }
}

This gives you 42 stateless tools with no local data storage.

Restart Claude Desktop after saving. Claude Code picks up the config automatically.

Claude Code shortcut — install as a plugin instead of Steps 1 and 2. If you use Claude Code, skip the manual config above and install everything with two commands:

/plugin marketplace add yyordanov-tradu/stock-scanner-mcp
/plugin install stock-scanner@tradu-marketplace

Run /reload-plugins, then /mcp — you should see the stock-scanner server listed as connected. The first launch runs npx -y stock-scanner-mcp, which downloads the package once (then it is cached). The plugin enables the workspace by default (data is stored in ~/.stock-scanner-mcp) and passes the optional API keys (FINNHUB_API_KEY, ALPHA_VANTAGE_API_KEY, FRED_API_KEY) through from your environment; modules without a key are skipped automatically.

The plugin already bundles the skills — do NOT run Step 2. All 19 skills ship with the plugin and load under the stock-scanner: namespace, e.g. /stock-scanner:analyze-stock AAPL, /stock-scanner:morning-briefing, /stock-scanner:setup-market-workspace. Running the Step 2 installer as well copies a second, unprefixed set into ~/.claude/skills/, and the two collide — Step 2 is only for the manual (non-plugin) install. After installing, go straight to Step 3, using the namespaced command: /stock-scanner:setup-market-workspace.

Step 2 — Install the trading skills

Skip this step if you installed via the plugin above — the plugin already bundles these skills (as stock-scanner:<name>). This step is only for the manual config in Step 1.

Run this command in your terminal:

npx -p stock-scanner-mcp stock-scanner-install-skills

This installs 19 slash commands (like /morning-briefing, /analyze-stock AAPL, /setup-market-workspace) into ~/.claude/skills/ so they're available in every Claude Code session. See Trading Skills for the full list.

Step 3 — Set up your workspace

Run /setup-market-workspace in Claude Code. It asks three quick questions:

> /setup-market-workspace

Setting up your market workspace — I'll ask a few quick questions to get started...

1. What kind of trader or investor are you?
   (e.g., options trader, swing trader, long-term investor, crypto-focused)

   → "I'm mostly a swing trader, also watch crypto"

2. Which names or assets should I save to your core watchlist?
   (e.g., AAPL, MARA, BTC, Gold)

   → "MARA, HOOD, SOFI, BTC, ETH"

3. Do you want a daily or weekly market review?

   → "Daily"

Once answered, it saves your profile and creates a core watchlist:

✓ Workspace saved

  Profile     swing trader | daily review
  Watchlist   core — MARA, HOOD, SOFI, BTC, ETH

You can also skip the skill and ask Claude directly: "Set up my workspace — I'm a swing trader, create a core watchlist with MARA, HOOD, BTC, daily reviews."

That's it. You now have 69 tools, 19 skills, and a personalized workspace. Try /workspace-morning-brief for your first tailored market scan.

Related MCP server: Trading MCP Server

What You Can Do

"What are the top gaining stocks today?"
"Show me technicals for AAPL on the hourly timeframe"
"Any insider trades for TSLA in the last 30 days?"
"What's the options chain for AAPL expiring next Friday?"
"What's the current fed funds rate and CPI trend?"
"Convert $10,000 USD to EUR"
"Set up a core watchlist with MARA, HOOD, and BTC"
"Give me a personalized morning brief for my saved watchlist"

Highlights

  • Stock scanning — screen by price, RSI, volume, market cap with custom filters

  • Technical analysis — RSI, MACD, Bollinger Bands, moving averages, pivots across multiple timeframes

  • Options flow — chains with Greeks, unusual activity detection, max pain, implied move

  • Insider trades — parsed Form 4 transactions with buy/sell/grant details

  • Earnings & news — calendar, analyst ratings, company news, short interest

  • Crypto — real-time quotes, technicals, trending coins, market stats

  • Macro — CPI, GDP, fed funds rate, economic calendar, yield curve data

  • Forex — 31 currency pairs from ECB, conversion, historical rates

  • Sentiment — CNN Fear & Greed Index, Crypto Fear & Greed

  • Market Workspace — save a trading profile, named watchlists, and thesis notes for personalized workflows across sessions

Trading Skills

19 ready-made workflows that chain multiple tools into structured analysis. Each skill orchestrates 5-14 tools in parallel and outputs a verdict with direction, confidence, and key levels.

Category

Skills

What They Do

Daily Routines

/morning-briefing, /market-close-recap, /crypto-briefing

Pre-market scan, EOD recap, crypto overview

Analysis

/analyze-stock TICKER, /compare TICKER1 TICKER2, /analyze-crypto COIN

Deep dives and side-by-side comparisons

Strategies

/swing-setup, /earnings-play TICKER, /options-flow TICKER, /dividend-screen

Swing trades, earnings options, smart money, income screen

Macro

/macro-dashboard, /fed-watch, /sector-rotation

Economic indicators, Fed outlook, sector rotation

Risk

/insider-tracker TICKER, /smart-money TICKER, /risk-check TICKER

Insider trades, institutional flow, pre-trade risk scorecard

Workspace

/setup-market-workspace, /workspace-morning-brief

Guided setup for saved profile/watchlist context and a personalized brief driven by your stored names

Skills degrade gracefully when optional API keys are missing. Workspace skills require --enable-workspace in the server config.

npx -p stock-scanner-mcp stock-scanner-install-skills                    # all 19 skills
npx -p stock-scanner-mcp stock-scanner-install-skills --scope project    # project only (.claude/skills/)
npx -p stock-scanner-mcp stock-scanner-install-skills --category macro   # one category
npx -p stock-scanner-mcp stock-scanner-install-skills --category workspace # workspace skills only
npx -p stock-scanner-mcp stock-scanner-install-skills --list             # list without installing
npx -p stock-scanner-mcp stock-scanner-install-skills --force            # overwrite existing

Manual: git clone this repo and cp -r skills/*/ ~/.claude/skills/

See skills/README.md for the full catalog.

Market Workspace

The Market Workspace is an optional stateful layer that remembers your trading context across sessions — your trading style, named watchlists, and investment thesis notes per symbol. Skills like /workspace-morning-brief use this context to deliver personalized market scans instead of generic ones.

What you can do with it

  • /workspace-morning-brief — personalized pre-market scan that reads your profile and watchlist, checks earnings, news, and price action for your names, and highlights what matters today

  • Add more watchlists — ask Claude: "Create a watchlist called 'earnings' with AAPL, MSFT, GOOG"

  • Track investment theses — save your reasoning per ticker so the system monitors it for you (see below)

  • Update anytime"Add NVDA to my core watchlist" or "Change my review cadence to weekly"

Thesis Tracking

Save your investment reasoning per ticker — direction, key levels, catalysts, and timeframe — so the system can monitor it across sessions.

Save a thesis:

"My thesis on NIO: bullish above $6.35, that confirms the uptrend. Below it the setup is invalid."

Claude saves the structured thesis:

Field

Value

Direction

Bullish above $6.35

Bear case

Below $6.35 uptrend is invalidated

Catalyst

Technical breakout at $6.35

Timeframe

Swing

How it works in practice: When you run /workspace-morning-brief, the brief cross-references your saved theses against live price action:

  • NIO drops to $6.10 → "NIO broke below your $6.35 thesis floor — re-evaluate."

  • NIO rallies to $7.20 → "NIO holding above your $6.35 level — uptrend thesis intact."

Without a thesis, the brief just reports a price change. With a thesis, it tells you whether the move matters to your plan.

Each thesis supports five fields: summary, bullCase, bearCase, catalyst, and timeframe. You can save up to 200 theses per workspace.

Configuration reference

Option

Default

Description

--enable-workspace

off

Activate the 7 workspace tools

--data-dir <path>

~/.stock-scanner-mcp

Directory for workspace.json storage

--default-exchange

NASDAQ

Default exchange for ticker resolution

Data is stored locally in workspace.json — no cloud sync, no external calls. If you omit --enable-workspace, the server stays fully stateless and writes no local data.

For the full list of workspace tools, see the tool reference below.

Documentation

Modules

Module

Tools

API Key

Description

tradingview

10

None

US stock scanner with quotes, technicals, sectors, indices, and screening

tradingview-crypto

4

None

Crypto pair scanner with technicals and screening

sec-edgar

6

None

SEC filings, insider trades, institutional holdings, ownership

coingecko

3

None

Crypto market data, trending coins, global stats

options

5

None

Options chains, Greeks, unusual activity, max pain, implied move

options-cboe

1

None

CBOE put/call ratio sentiment indicator

sentiment

2

None

CNN Fear & Greed Index, Crypto Fear & Greed Index

frankfurter

5

None

Forex exchange rates — 31 currencies from ECB (daily reference rates)

reddit

4

None

Reddit trending tickers, mention tracking, sentiment, and batch watchlist scan from r/wallstreetbets, r/stocks, r/investing, r/options

market-breadth

1

None

Market breadth metrics (advance/decline ratio, SMA 50/200, 52-week highs/lows)

unified-market

3

None

Smart provider routing for quotes, profiles, and technicals across Finnhub, Alpha Vantage, and TradingView

workspace

7

None

Optional stateful profile, watchlists, and thesis tracking for personalized workflows (--enable-workspace)

finnhub

9

FINNHUB_API_KEY

Quotes, news, earnings, analyst ratings, short interest

alpha-vantage

5

ALPHA_VANTAGE_API_KEY

Quotes, daily prices, fundamentals, earnings, dividends

fred

4

FRED_API_KEY

Economic calendar, indicators (CPI, GDP, rates), historical data

Modules auto-enable when their API key is set. No-key modules are always enabled, except workspace, which requires --enable-workspace.

For a complete list of every tool with descriptions, see the Full Tool Reference below.

Full Tool Reference (69 tools)

TradingView — Stock Scanning (no API key)

Tool

Description

tradingview_scan

Scan US stocks with custom filters (price, RSI, volume, etc.)

tradingview_compare_stocks

Side-by-side comparison of 2-5 stocks

tradingview_quote

15-min delayed quotes for stock tickers (includes pre/post-market)

tradingview_technicals

Technical indicators (RSI, MACD, moving averages, pivots)

tradingview_top_gainers

Today's top gaining stocks by % change

tradingview_top_losers

Today's top losing stocks by % change

tradingview_top_volume

Highest volume stocks today

tradingview_market_indices

Real-time VIX, S&P 500, NASDAQ, Dow Jones

tradingview_sector_performance

S&P 500 sector ETF performance (weekly, monthly, YTD)

tradingview_volume_breakout

Stocks with unusual volume (2x+ their 10-day average)

TradingView — Crypto (no API key)

Tool

Description

crypto_scan

Scan crypto pairs with custom filters across major exchanges

crypto_quote

Real-time crypto pair quotes (e.g. BTCUSDT, ETHUSDT)

crypto_technicals

Technical analysis for crypto pairs (RSI, MACD, MAs, Bollinger)

crypto_top_gainers

Top gaining crypto pairs by % change

SEC EDGAR — Filings & Ownership (no API key)

Tool

Description

edgar_search

Full-text search across all SEC filings

edgar_company_filings

Recent official filings (10-K, 10-Q, 8-K) for a company

edgar_company_facts

Financial metrics from XBRL data (Revenue, EPS, Net Income)

edgar_insider_trades

Insider buy/sell activity with parsed Form 4 transaction details

edgar_institutional_holdings

Institutional holdings (13F) by ticker or manager name

edgar_ownership_filings

Major ownership changes — 13D/13G activist investor filings

CoinGecko — Crypto Intelligence (no API key)

Tool

Description

coingecko_coin

Detailed crypto info by CoinGecko slug (e.g. 'bitcoin', 'solana')

coingecko_trending

Top 7 trending cryptos by search volume (last 24h)

coingecko_global

Global crypto market cap, volume, BTC/ETH dominance

Options — Chains, Greeks & Unusual Activity (no API key)

Tool

Description

options_expirations

Available expiration dates for a stock's options

options_chain

Full options chain with Greeks for a given expiration

options_unusual_activity

Unusual options activity — high volume/OI contracts

options_max_pain

Max pain (strike where most options expire worthless)

options_implied_move

Expected move from ATM straddle pricing

Options CBOE — Put/Call Sentiment (no API key)

Tool

Description

options_put_call_ratio

CBOE equity/index/total put/call ratio for market sentiment

Sentiment — Fear & Greed (no API key)

Tool

Description

sentiment_fear_greed

CNN Fear & Greed Index — composite score (0-100) with 7 sub-indicators

sentiment_crypto_fear_greed

Crypto Fear & Greed Index — daily score (0-100) with historical values

Frankfurter — Forex Rates (no API key)

Tool

Description

frankfurter_latest

Latest ECB exchange rates for 31 currencies

frankfurter_historical

Exchange rates for a specific past date

frankfurter_timeseries

Daily rate history for a date range (max 90 days)

frankfurter_convert

Convert an amount between two currencies

frankfurter_currencies

List all supported currency codes

Tool

Description

reddit_trending

Trending stock tickers from Reddit by mention frequency across r/wallstreetbets, r/stocks, r/investing, r/options

reddit_mentions

Mention count and top posts for a specific ticker across Reddit investing subreddits

reddit_sentiment

Keyword-based sentiment analysis (bullish/bearish/neutral) for a ticker from Reddit discussions

reddit_watchlist_scan

Batch Reddit scan for a list of tickers in one pass (combined OR query, ceil(N/20)×4 requests) — per-ticker mentions, sentiment, top post, and a hot flag (≥5 mentions)

Market Breadth — Breadth Indicators (no API key)

Tool

Description

market_breadth

Get market breadth statistics for US equities: advance/decline ratio, SMA 50/200 percent above, and 52-week new highs/lows

Unified Market — Smart Routing (no API key)

Tool

Description

market_get_quote

Get current price, change, volume, and day high/low for a given symbol. Automatically routes to the best available data provider.

market_get_profile

Get general company metrics, exchange, description, and capitalization. Automatically routes to the best available data provider.

market_get_technicals

Get common technical indicators (RSI, moving averages, etc.) for a given symbol.

Workspace — Personalized Context (optional, no API key)

Enabled only when you start the server with --enable-workspace.

Tool

Description

workspace_get_profile

Read the saved trading profile and workspace defaults

workspace_update_profile

Save or update trading style, asset focus, and review cadence

workspace_list_watchlists

List all saved watchlists and their resolved instruments

workspace_create_watchlist

Create a named empty watchlist such as core or swing

workspace_update_watchlist

Replace a watchlist's saved symbols with resolved, deduplicated instruments

workspace_get_thesis

Read a thesis for a symbol using a stable hit/miss JSON shape

workspace_save_thesis

Save or update a thesis note for a symbol

Finnhub — News, Earnings & Macro (requires FINNHUB_API_KEY)

Tool

Description

finnhub_quote

Real-time stock quote

finnhub_company_profile

Company info (industry, market cap, IPO date, website)

finnhub_peers

Comparable companies in the same industry

finnhub_market_status

Exchange open/closed status and current session

finnhub_market_news

Latest market news (general, forex, crypto, merger)

finnhub_company_news

Company-specific news by ticker and date range

finnhub_earnings_calendar

Upcoming and historical earnings reports

finnhub_analyst_ratings

Analyst consensus and rating history

finnhub_short_interest

Short interest, short ratio, and key financial metrics

Alpha Vantage — Fundamentals & History (requires ALPHA_VANTAGE_API_KEY)

Tool

Description

alphavantage_quote

Real-time stock quote (price, change, volume)

alphavantage_daily

Daily OHLCV price history (up to 100 days)

alphavantage_overview

Company fundamentals (PE, market cap, sector, analyst target)

alphavantage_earnings_history

Historical EPS actual vs estimate by quarter

alphavantage_dividend_history

Historical dividend payments and dates

FRED — US Economic Data (requires FRED_API_KEY)

Tool

Description

fred_economic_calendar

Upcoming high-impact economic releases (FOMC, CPI, NFP, GDP)

fred_indicator

Latest value for any indicator (CPI, fed funds, unemployment, etc.)

fred_indicator_history

Historical values with unit transforms (YoY %, change, level)

fred_search

Discover FRED series IDs by keyword

Configuration

CLI Options

npx -y stock-scanner-mcp --modules tradingview,sec-edgar    # Enable specific modules only
npx -y stock-scanner-mcp --default-exchange NYSE             # Set default exchange
npx -y stock-scanner-mcp --enable-workspace                  # Turn on local workspace tools
npx -y stock-scanner-mcp --enable-workspace --data-dir /tmp/market-workspace  # Custom data directory
npx -y stock-scanner-mcp --help                              # Show all options

API Keys (optional)

All three keys are free — no credit card required:

Key

Get it from

What it unlocks

FINNHUB_API_KEY

finnhub.io/register

Real-time quotes, company news, earnings calendar, analyst ratings, short interest (9 tools)

ALPHA_VANTAGE_API_KEY

alphavantage.co/support

Daily price history, company fundamentals, earnings & dividend history (5 tools)

FRED_API_KEY

fred.stlouisfed.org/api

Economic calendar, CPI/GDP/fed funds indicators, historical data (4 tools)

Add them to the env block in your MCP config (see Quick Start).

Use with other MCP clients

Any MCP client that supports stdio servers can run this package. Use the same JSON config from Quick Start. If your client does not expose npx, install the package first and point the client at the installed binary instead.

HTTP Sidecar

An optional HTTP server exposing all tools as REST endpoints for non-MCP integrations (GPT Actions, chat UIs, LLM pipelines). It includes an OpenAPI 3.1 specification for automated tool discovery.

npx stock-scanner-sidecar              # Start on port 3200
npx stock-scanner-sidecar --port 8080  # Custom port

# Optional: Enable the stateful Market Workspace via HTTP
npx stock-scanner-sidecar --enable-workspace --data-dir ./my-data

# Access the OpenAPI spec
curl http://localhost:3200/openapi.json

See Sidecar HTTP API for endpoint details.

69 tools exposed as REST routes, including /market/quote, /options/chain, /workspace/profile, and more.

Rate Limits

API

Free Tier Limit

Cache TTL

TradingView

No documented limit

SEC EDGAR

10 req/sec

5 min

CoinGecko

~30 calls/min

1 min

Yahoo Finance (Options)

No documented limit

5 min

CBOE

No documented limit

30 min

Finnhub

30 calls/sec

5 min

Alpha Vantage

5 calls/min, 25/day

1 min

FRED

No hard limit

30 min

Frankfurter (ECB)

No limit

1 hour

All modules use in-memory TTL caching to minimize API calls.

Development

npm install && npm run build && npm test
npm run lint               # TypeScript type checking
npm run validate-tools     # Tool description quality check
npm run validate-doc-tools # Skill/command tool reference check

Credibility Artifacts

src/
├── index.ts              # MCP server entry + prompt definitions
├── config.ts             # CLI arg parsing
├── registry.ts           # Module auto-discovery and filtering
├── modules/
│   ├── tradingview/      # 10 tools — stock scanning, quotes, technicals, sectors, indices
│   ├── tradingview-crypto/ # 4 tools — crypto scanning and technicals
│   ├── sec-edgar/        # 6 tools — filings, insider trades, holdings
│   ├── coingecko/        # 3 tools — crypto market data
│   ├── options/          # 5 tools — options chains, Greeks, unusual activity, implied move
│   ├── options-cboe/     # 1 tool  — CBOE put/call ratio sentiment
│   ├── workspace/        # 7 tools — stateful profile, watchlists, thesis notes
│   ├── finnhub/          # 9 tools — quotes, news, earnings, analyst ratings, short interest
│   ├── alpha-vantage/    # 5 tools — quotes, fundamentals, dividends
│   ├── fred/             # 4 tools — economic calendar, indicators, historical data
│   ├── sentiment/        # 2 tools — Fear & Greed indexes (market + crypto)
│   ├── frankfurter/      # 5 tools — forex exchange rates (ECB, 31 currencies)
│   ├── reddit/           # 4 tools — trending tickers, mentions, sentiment, watchlist scan from Reddit
│   └── unified-market/   # 3 tools — smart provider routing for quotes/profiles/technicals
├── sidecar/
│   ├── index.ts          # HTTP sidecar entry point (port 3200)
│   ├── routes.ts         # Declarative URL routing table
│   └── server.ts         # Dynamic HTTP request handler
└── shared/
    ├── http.ts           # HTTP client with timeouts and key sanitization
    ├── cache.ts          # In-memory TTL cache
    ├── types.ts          # ToolDefinition, ToolResult, helpers
    ├── resolver.ts       # Ticker/exchange resolution
    └── utils.ts          # withMetadata error wrapper

License

MIT

Available Tools

39 tools
coingecko_coinA
Read-only

Get detailed cryptocurrency info from CoinGecko. Use slug IDs (e.g. 'bitcoin', 'ethereum', 'solana'), NOT ticker symbols.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinIdYesCoinGecko coin ID / slug (e.g. 'bitcoin', 'ethereum', 'cardano')

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the agent knows it's a safe read operation. The description adds that it gets 'detailed cryptocurrency info' but does not disclose additional behavioral traits beyond input format. With annotations covering safety, a score of 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.

Conciseness5/5

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

Two sentences, no wasted words. The purpose is front-loaded, and the input tip is concise. Perfect structure.

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

Completeness4/5

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

For a simple read-only tool with one parameter and no output schema, the description adequately covers purpose and input format. It could mention that it returns full coin details, but overall it is complete for its complexity.

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

Parameters4/5

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

Schema coverage is 100% with a clear description of coinId. The description reinforces using slug IDs (not tickers), adding value beyond the schema. This slight clarification justifies a score above baseline 3.

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

Purpose5/5

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

The description clearly states the tool retrieves detailed cryptocurrency info from CoinGecko and distinguishes input format (slug IDs vs ticker symbols), setting it apart from siblings like coingecko_global and coingecko_trending.

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

Usage Guidelines4/5

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

The description explicitly instructs to use slug IDs, not ticker symbols, which is a key usage guideline. However, it does not explicitly state when to use this tool over siblings, but the context of siblings (global, trending) implies it's for individual coin details.

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

coingecko_globalA
Read-only

Get global cryptocurrency market statistics: total market cap, 24h volume, BTC/ETH dominance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value by listing specific data returned (market cap, volume, dominance), but does not disclose additional behavioral traits like response size or latency. It neither contradicts nor significantly extends annotations.

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

Conciseness5/5

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

Single sentence conveying the core purpose and key data points without any filler. Front-loads the verb and resource. Every word contributes to understanding.

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

Completeness4/5

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

For a zero-parameter, read-only tool with no output schema, the description adequately communicates what the tool returns. Could mention that the data is a point-in-time snapshot, but the essential information is present.

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

Parameters4/5

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

No parameters exist, so schema coverage is 100%. The description adds meaning by enumerating the expected output fields (market cap, volume, dominance), which is especially valuable given the absence of an output schema. This fully compensates for the lack of parameter documentation.

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

Purpose5/5

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

The description uses a specific verb ('Get') and identifies the resource ('global cryptocurrency market statistics') with explicit data points (total market cap, 24h volume, BTC/ETH dominance). It clearly distinguishes from sibling tools like coingecko_coin (specific coin data) and coingecko_trending (trending coins).

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

Usage Guidelines3/5

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

The description implies usage for retrieving global market aggregates but provides no explicit guidance on when to use this tool versus alternatives (e.g., coingecko_coin for individual coins) or exclusion criteria. Usage context is clear but not formally stated.

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

crypto_quoteA
Read-only

Get real-time quotes for specific crypto pairs. Supports 'BTCUSDT' (defaults to BINANCE) or 'BINANCE:BTCUSDT'.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesCrypto pair symbols (e.g. ['BTCUSDT', 'ETHUSDT'])

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so no destructive behavior. The description adds context about supported symbol formats but does not disclose additional behavioral traits like data freshness, rate limits, or return format. With annotations covering the safety profile, the description provides minor additive value.

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

Conciseness5/5

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

Two sentences, front-loaded with action ('Get real-time quotes'), no fluff. Every word adds value.

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

Completeness3/5

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

No output schema exists, and description does not explain return structure or fields. For a simple tool this is acceptable but incomplete; missing details like response format (single object vs array), fields included, and timestamp information.

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

Parameters4/5

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

Schema covers the parameter with 100% description coverage. Description adds meaningful usage detail about acceptable symbol formats and default exchange, exceeding what the schema provides.

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

Purpose4/5

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

The description clearly states it gets real-time quotes for crypto pairs and provides specific symbol format examples. It is specific but does not explicitly distinguish from sibling tools that also retrieve crypto quotes.

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

Usage Guidelines3/5

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

The description indirectly implies usage through symbol format examples but does not explicitly guide when to use this tool versus alternatives like tradingview_quote or coingecko_coin. No exclusions or when-not scenarios provided.

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

crypto_scanB
Read-only

Scan cryptocurrency pairs using TradingView filters. Returns price, volume, and technical indicators.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoFilter conditions combined with AND
major_onlyNoOnly include major exchanges (default: true)
columnsNoColumns to return (default: all 23)
timeframeNoTimeframe: '1m','5m','15m','1h','4h','1d','1W','1M'. Default: '1d'
limitNoMax results (default: 50, max: 200)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, openWorldHint=true. The description adds that it returns price, volume, and technical indicators, providing some behavioral context, but does not disclose rate limits, pagination, 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.

Conciseness4/5

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

Single-sentence description is efficient and front-loaded with the action and resource. No unnecessary words.

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

Completeness3/5

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

Lacks output schema, so description should provide more detail on return format. It gives a high-level summary (price, volume, indicators) but insufficient for complex filtering results. Acceptable given annotations and schema richness.

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

Parameters3/5

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

All 5 parameters have descriptions in the input schema (100% coverage), so the description's role is reduced. The description does not add meaningful detail beyond the schema; it merely restates the tool's purpose.

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

Purpose4/5

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

Description clearly states the tool scans cryptocurrency pairs using TradingView filters and returns price, volume, and technical indicators. It is specific about the resource and method, but it does not explicitly distinguish from sibling 'tradingview_scan' which likely scans stocks.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'tradingview_scan', 'crypto_technicals', or 'crypto_quote'. No prerequisites or exclusions provided.

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

crypto_technicalsA
Read-only

Get technical analysis for crypto pairs. Supports 'BTCUSDT' or 'BINANCE:BTCUSDT'.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesCrypto symbols (e.g. ['BTCUSDT'])
timeframeNoTimeframe. Default: '1d'

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds limited behavioral context beyond supported symbol formats. Does not disclose output format or specific indicators included.

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

Conciseness5/5

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

Two short sentences with front-loaded purpose and examples. No wasted words; every sentence adds value.

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

Completeness3/5

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

Adequate for a simple read tool with good annotations and full schema coverage, but lacks any description of the return format or types of technical indicators provided, which could be important for an AI agent deciding how to use the output.

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

Parameters4/5

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

Schema descriptions cover symbols and timeframe with defaults; description adds value by showing alternative format 'BINANCE:BTCUSDT', which is not in schema. Provides practical guidance beyond schema alone.

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

Purpose5/5

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

Clearly states the tool retrieves technical analysis for crypto pairs and provides specific supported formats ('BTCUSDT' or 'BINANCE:BTCUSDT'), distinguishing it from sibling tools like tradingview_technicals which likely focus on stocks.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like tradingview_technicals or other crypto tools. Does not mention prerequisites or scenarios where it should not be used.

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

crypto_top_gainersA
Read-only

Get top gaining cryptocurrency pairs by percentage change. Defaults to major exchanges and volume > $10k.

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeNoSpecific exchange (e.g. BINANCE)
limitNoNumber of results (default: 20, max: 50)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read operation. The description adds behavioral context (defaults to major exchanges, volume > $10k). No contradictory or missing critical behaviors noted.

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

Conciseness5/5

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

Single sentence, no wasted words. Information is front-loaded and clear. Every part of the description serves a purpose.

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

Completeness4/5

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

For a simple read-only tool with two optional parameters, the description is largely complete. It explains defaults and filtering. Missing output format details are acceptable given the tool's straightforward nature and lack of output schema.

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

Parameters4/5

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

Input schema covers 100% of parameters with descriptions. The description adds value by stating the volume filter and default exchange, which are not explicit in the schema. This supplements the schema without duplicating it.

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

Purpose5/5

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

The description clearly states the verb 'Get' and resource 'top gaining cryptocurrency pairs by percentage change'. It differentiates from sibling tools like tradingview_top_gainers (for stocks) by specifying cryptocurrency and default filters (major exchanges, volume > $10k).

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

Usage Guidelines4/5

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

The description provides context on when to use: for crypto top gainers with default exchange and volume filters. It implies usage via defaults but does not explicitly state when not to use or alternative tools. Sibling differentiation is clear from the name and description.

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

edgar_company_factsA
Read-only

Retrieve high-fidelity financial metrics (Revenue, Net Income, EPS, Assets, Liabilities) directly from SEC XBRL data. This is more reliable than extracting numbers from text filings.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g. 'AAPL')

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by specifying the data source (XBRL) and reliability. No contradictions; the description supports the safety profile.

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

Conciseness5/5

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

Two sentences, no wasted words. Front-loaded with action and key details (metrics, source, reliability). Highly efficient.

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

Completeness5/5

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

For a simple single-parameter tool with good annotations, the description is complete. It lists the metrics returned, source, and reliability advantage. No output schema needed.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for the 'ticker' parameter. The description doesn't add extra context for the parameter beyond listing the metrics retrieved, so baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Retrieve' and resource 'financial metrics', listing examples (Revenue, Net Income, etc.). It clearly states the data source (SEC XBRL) and distinguishes itself from text extraction, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description implies when to use: when you need specific financial metrics from SEC filings, and states it's more reliable than text extraction. It doesn't explicitly mention alternatives like edgar_company_filings, but the context is clear enough.

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

edgar_company_filingsA
Read-only

Retrieve the most recent official filings for a specific company. Use this to find a company's latest 10-K (annual), 10-Q (quarterly), or 8-K (current events) reports.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g. 'AAPL')
formsNoForm types (e.g. ['10-K', '10-Q']). Default: all.
limitNoMax results (default: 10, max: 50)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition of 'most recent official filings' provides some context but does not significantly enhance transparency beyond what annotations already provide.

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

Conciseness5/5

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

Two clear, efficient sentences. First sentence defines purpose, second gives examples. No extraneous information.

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

Completeness4/5

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

For a tool with 3 parameters, high schema coverage, and no output schema, the description adequately explains the tool's function and typical use cases, though it could mention default limit behavior (covered by schema).

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description adds context about typical form types (10-K, 10-Q, 8-K) but does not add new meaning beyond what the schema already provides for parameters.

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

Purpose5/5

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

The description clearly states the verb 'Retrieve' and specific resource 'official filings' for a specific company, and distinguishes from siblings like edgar_company_facts or edgar_insider_trades by focusing on filings.

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

Usage Guidelines4/5

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

The description tells when to use the tool ('to find a company's latest 10-K, 10-Q, or 8-K reports'), but does not explicitly mention when not to use or provide alternatives among siblings.

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

edgar_insider_tradesA
Read-only

Monitor legal stock trades made by company executives and directors (Forms 3, 4, 5). Returns detailed transaction data including insider names, titles, buy/sell type, share amounts, and prices.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g. 'AAPL')
limitNoMax results (default: 10)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. Description adds output details (insider names, prices) but not behavioral traits like rate limits or data sources.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and output summary, no wasted words.

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

Completeness4/5

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

Adequate for a simple retrieval tool with two parameters and annotations; missing mention of SEC filing source but not critical.

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

Parameters3/5

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

Schema coverage is 100%; description adds no extra parameter meaning beyond what schema provides.

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

Purpose5/5

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

Description clearly states it monitors legal insider trades (Forms 3,4,5) and lists specific output fields, distinguishing it from sibling EDGAR tools like company_filings or institutional_holdings.

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

Usage Guidelines3/5

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

Implies use for tracking insider transactions but does not explicitly state when to use versus alternatives or when not to use.

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

edgar_institutional_holdingsA
Read-only

Track 'big money' moves by searching Form 13F filings. Use to find what hedge funds and institutional managers (e.g. 'Berkshire Hathaway') are holding or what firms own a specific ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesStock ticker (e.g. 'AAPL') or institutional manager name (e.g. 'Berkshire Hathaway')
limitNoMax results (default: 10)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so safety is clear. The description adds that it searches SEC Form 13F data, but does not detail result format, pagination, or data freshness. With no output schema, more context on output structure would improve transparency.

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

Conciseness5/5

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

The description is a single, well-structured sentence that immediately conveys the tool's purpose. Examples are included without unnecessary elaboration. No filler words.

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

Completeness4/5

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

For a simple search tool with two parameters and no output schema, the description covers key aspects: what data is searched, how to search (by ticker or manager), and examples. It lacks explicit mention of result structure, but the use cases imply it. Adequate for the complexity.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for 'query' and 'limit'. The description reinforces the dual role of 'query' (ticker or manager) but adds minimal new meaning. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: tracking 'big money' moves by searching Form 13F filings. It specifies two use cases (finding holdings by manager or ticker) and distinguishes it from sibling tools like edgar_ownership_filings by focusing on institutional holdings.

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

Usage Guidelines4/5

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

Explicit usage context is provided: 'Use to find what hedge funds and institutional managers ... are holding or what firms own a specific ticker.' This implies when to use it, though it does not explicitly exclude alternatives like edgar_ownership_filings or edgar_company_filings.

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

edgar_ownership_filingsA
Read-only

Monitor significant changes in company ownership (5%+ stakes). Use 13D and 13G filings to identify activist investors (e.g. Carl Icahn, Ryan Cohen) entering or exiting a stock.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g. 'AAPL')
limitNoMax results (default: 10)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, and openWorldHint, so the description does not need to restate safety. It adds context about the filing types and activist focus but does not disclose return format or pagination behavior. This is adequate given the annotation coverage.

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

Conciseness5/5

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

Two short sentences with no filler. The key purpose and use case are presented first, making it easy for the agent to quickly understand the tool without extraneous details.

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

Completeness3/5

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

With only two parameters, no output schema, and simple purpose, the description covers the basics. However, it does not hint at the structure of the response (e.g., filer name, stake size, filing date), which would help the agent set expectations for the data returned.

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

Parameters3/5

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

Schema coverage is 100% and both parameters (ticker, limit) are described concisely. The description adds no additional semantics beyond the schema, which is expected when schema is already informative.

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

Purpose5/5

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

Clearly states the tool monitors significant ownership changes (5%+ stakes) using 13D and 13G filings, with specific examples of activist investors. This distinguishes it from other Edgar sibling tools like insider trades or institutional holdings.

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

Usage Guidelines4/5

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

The description explicitly states the use case (monitoring ownership changes via activist filings) and even names relevant filers. However, it does not explicitly exclude scenarios or mention alternatives like edgar_insider_trades for non-5% stakes, though siblings are available.

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

frankfurter_convertA
Read-only

Convert an amount between two currencies at the latest ECB daily reference rate. Updated once per business day — not suitable for intraday trading rates. Useful for cross-border stock valuation and currency exposure calculations.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount to convert
fromYesSource currency (e.g. 'USD')
toYesTarget currency (e.g. 'EUR')

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds valuable context: 'Updated once per business day' and 'latest ECB daily reference rate', which explain behavior beyond annotations.

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

Conciseness5/5

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

Three succinct sentences, each with purpose. First sentence captures core action, second adds temporal constraint, third gives practical use cases. No wasted words.

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

Completeness4/5

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

Covers purpose, usage, limitations, and use cases. However, with no output schema, it could mention the return format (e.g., converted amount and rate) for completeness. Still mostly complete.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well-documented. The description does not add new meaning beyond what is in the schema (e.g., 'amount', 'from', 'to').

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

Purpose5/5

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

The description clearly states the verb 'Convert' and resource 'amount between two currencies' using ECB reference rates. It distinguishes from sibling tools like frankfurter_historical or frankfurter_currencies, which are for different operations.

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

Usage Guidelines4/5

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

The description explicitly states when to use (for cross-border stock valuation, currency exposure) and when not to use (not suitable for intraday trading rates). It does not name alternative tools directly but provides clear context.

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

frankfurter_currenciesA
Read-only

List all 31 currencies supported by the Frankfurter API with their full names. Use to look up valid currency codes before calling other frankfurter tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition that it lists 31 currencies with full names provides some context but does not reveal significant behavioral traits beyond the annotations.

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

Conciseness5/5

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

The description is two sentences, front-loading the core action and use case without any wasted words. Every sentence earns its place.

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

Completeness4/5

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

Given the tool has no parameters and no output schema, the description adequately covers purpose and usage. It could optionally describe the output format, but it remains fairly complete for a simple listing tool.

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

Parameters4/5

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

With zero parameters and 100% schema coverage, the description does not need to add parameter information. The baseline is 4, and the description adds no extraneous details.

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

Purpose5/5

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

The description clearly states the tool lists all 31 supported currencies with full names, and explicitly distinguishes its purpose from sibling tools by noting it should be used to look up valid currency codes before calling other frankfurter tools.

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

Usage Guidelines4/5

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

The description provides explicit guidance on when to use the tool: to look up valid currency codes before calling other frankfurter tools. While it doesn't explicitly state when not to use, the positive guidance is clear and helpful.

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

frankfurter_historicalA
Read-only

Get ECB forex exchange rates for a specific past date. Daily reference rates, not real-time trading rates. If the date is a weekend or holiday, returns the previous business day's rates. Data available from 1999-01-04 (Euro inception).

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate in YYYY-MM-DD format
baseNoBase currencyUSD
symbolsNoComma-separated target currencies. Omit for all.

TDQS

A4.3/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint, destructiveHint, openWorldHint), the description adds key behavioral insights: data availability from 1999-01-04, weekend/holiday fallback logic, and that rates are not real-time. No contradiction with annotations.

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

Conciseness5/5

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

Three concise sentences, front-loaded with the core purpose, no unnecessary words. Every sentence adds value: what it does, what it is not, data availability, and edge-case handling.

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

Completeness5/5

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

Given the tool's simplicity, no output schema, and adequate annotations, the description fully covers the necessary context: purpose, data source (ECB), historical scope, non-real-time nature, and behavior on non-business days. No gaps.

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

Parameters3/5

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

Schema documentation coverage is 100%, so parameters are well-documented in the schema itself. The description mentions date and implicitly base currency (default USD in schema), but does not add significant new semantic value beyond what the schema already provides for any parameter.

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

Purpose5/5

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

The description clearly states the tool retrieves ECB forex exchange rates for a specific past date, distinguishing it from sibling tools like frankfurter_latest (current rates) or frankfurter_timeseries (date range). Verb 'Get' plus resource 'exchange rates for a specific past date' is precise.

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

Usage Guidelines4/5

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

Explicitly notes these are daily reference rates not real-time trading rates, and explains behavior on weekends/holidays (returns previous business day). While it doesn't explicitly name alternative tools for real-time or latest rates, the context with sibling tools provides clear alternatives.

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

frankfurter_latestA
Read-only

Get latest forex exchange rates from the European Central Bank. Returns daily reference rates for 31 major currencies. Updated once per business day at ~16:00 CET. These are reference rates, not real-time trading rates.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase currencyUSD
symbolsNoComma-separated target currencies (e.g. 'EUR,GBP,JPY'). Omit for all 31.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true, so description's job is lighter. The description adds valuable behavioral context: update frequency ('once per business day at ~16:00 CET'), data source (ECB), and the nature of rates ('reference rates, not real-time'). These go beyond the annotations and help set expectations.

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

Conciseness5/5

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

Three sentences, each essential: function+source, output scope, update schedule+caveat. No wasted words. Front-loaded with the core action.

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

Completeness3/5

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

Given no output schema, the description could briefly mention the return format (e.g., JSON with base, date, and rates). It does not cover error states or weekend behavior. However, it is adequate for a simple tool with clear parameters and good annotations.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The tool description adds no additional parameter information beyond what the schema already provides (e.g., 'base' default and length, 'symbols' format). Baseline score of 3 is appropriate.

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

Purpose5/5

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

Description explicitly states 'Get latest forex exchange rates from the European Central Bank', which is a specific verb+resource. It distinguishes from sibling tools like frankfurter_historical and frankfurter_timeseries by focusing on the latest rates. The caveat about reference rates vs real-time further clarifies scope.

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

Usage Guidelines4/5

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

Description implies usage context: for the most recent daily reference rates, not real-time trading rates. It does not explicitly list alternatives or when-not-to-use, but the sibling set and the description's clarity provide good guidance for an agent.

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

frankfurter_timeseriesA
Read-only

Get daily ECB forex rate history for a date range (max 90 days). Daily reference rates, not real-time. Use for currency trend analysis. Only business days included (weekends/holidays omitted). Requires symbols filter to control response size.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateYesStart date (YYYY-MM-DD)
end_dateNoEnd date (YYYY-MM-DD, defaults to today, max 90 days from start)
baseNoBase currencyUSD
symbolsYesRequired: comma-separated target currencies (e.g. 'EUR,GBP')

TDQS

A4.4/5.0
Behavior5/5

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

Annotations declare readOnlyHint, destructiveHint, openWorldHint. The description adds important behavioral context beyond annotations: 'Daily reference rates, not real-time', 'Only business days included (weekends/holidays omitted)', 'Requires symbols filter to control response size'. No contradiction.

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

Conciseness5/5

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

Two concise sentences. The first sentence states the core purpose and primary constraint (max 90 days). Every sentence adds value with no redundant wording.

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

Completeness4/5

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

Without an output schema, the description could explain return format, but 'Get daily ECB forex rate history' and 'Use for currency trend analysis' imply the output is a list of historical rates. The description covers parameter usage and data nature, making it sufficiently complete for agent usage.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description only repeats that symbols is required and max 90 days is a constraint, adding minimal new semantic value beyond the schema's parameter descriptions.

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

Purpose5/5

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

The description clearly states it gets 'daily ECB forex rate history for a date range (max 90 days)', specifies 'Daily reference rates, not real-time', and is 'Use for currency trend analysis'. This distinguishes it from siblings like frankfurter_latest (single latest) and frankfurter_convert.

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

Usage Guidelines4/5

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

The description gives clear context for use ('currency trend analysis') and hints at when not to use ('not real-time'), but does not explicitly name alternatives or state when not to use. It mentions the required symbols filter and max 90 days, which helps the agent decide.

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

options_chainA
Read-only

Get the full option chain (calls and puts) with calculated Greeks (Delta, Gamma, Theta, Vega). Use options_expirations first to find valid dates. If expiration is omitted, uses nearest date. By default, returns strikes within ±20% of current price to save tokens. Use strike_min/strike_max for custom range, or all_strikes=true for everything.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g. 'AAPL', 'NYSE:GM')
expirationNoExpiration date as YYYY-MM-DD (e.g. '2026-04-17'). If omitted, uses nearest.
sideNoFilter by option type (default: both)
limitNoMax contracts per side (default: 50, max: 200)
strike_minNoMinimum strike price filter (e.g. 25.0)
strike_maxNoMaximum strike price filter (e.g. 35.0)
all_strikesNoReturn all strikes instead of centering around ATM (default: false)

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context: returns both calls and puts, calculates Greeks, defaults to nearest expiration, and limits strikes to save tokens. No contradictions.

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

Conciseness5/5

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

The description consists of two efficient sentences. The first states the core purpose, the second provides usage and defaults. No wasted words; key information is front-loaded.

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

Completeness4/5

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

Given 7 parameters and no output schema, the description covers defaults, token-saving behavior, and customization options. It could mention return format or rate limits, but for a read-only data tool, it is sufficiently complete.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds meaning by explaining defaults (omitted expiration uses nearest) and the purpose of all_strikes, strike_min/max for custom ranges. This enhances understanding beyond schema.

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

Purpose5/5

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

The description explicitly states 'Get the full option chain (calls and puts) with calculated Greeks', clearly indicating the verb (Get), resource (option chain), and distinct outputs (Greeks). It differentiates from siblings like options_expirations and options_implied_move.

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

Usage Guidelines5/5

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

The description advises using options_expirations first to find valid dates, explains default behavior (nearest expiration, strikes ±20% of price), and provides override options (strike_min/strike_max, all_strikes=true). This gives clear when-to-use and how-to-customize guidance.

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

options_expirationsA
Read-only

Get all available option expiration dates for a stock ticker. Call this first to discover valid dates, then pass one to options_chain or options_max_pain.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g. 'AAPL', 'NYSE:GM')

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to repeat that. However, the description adds context about the tool's role in a multi-step process, but lacks details on data freshness, rate limits, or pagination. With annotations covering safety, this is adequate but not outstanding.

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

Conciseness5/5

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

The description is two sentences: first defines the tool's core function, second provides usage guidance. Every sentence adds value with no redundancy or unnecessary detail.

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

Completeness4/5

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

For a simple read-only tool with one parameter, the description covers the essential purpose and workflow. It lacks explicit mention of the output format (e.g., array of date strings), but the context of 'expiration dates' and the sequential usage mitigates this gap. Overall, it is sufficiently informative for an agent to use correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the symbol parameter. The description's mention of 'stock ticker' does not add meaning beyond the schema's example. Baseline score of 3 is appropriate as no additional parameter semantics are provided.

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

Purpose5/5

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

The description clearly states it retrieves all available option expiration dates for a stock ticker, using specific verb-resource pairing. It distinguishes itself from sibling tools like options_chain and options_max_pain by prescribing a sequential usage: call this first to discover dates, then pass one to those tools.

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

Usage Guidelines5/5

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

The description explicitly tells when to use this tool ('call this first') and provides alternatives ('options_chain or options_max_pain'), giving clear guidance on the intended workflow and when not to use it.

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

options_implied_moveA
Read-only

Calculate the expected move implied by options pricing (ATM straddle). Essential for earnings plays — shows how much the market expects the stock to move. Compare implied vs historical moves to assess if premium is cheap or expensive.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g. 'AAPL', 'NYSE:GM')
expirationNoExpiration date as YYYY-MM-DD. If omitted, uses nearest.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, safe operation. Description adds behavioral context: it calculates implied move using ATM straddle and can be used to compare implied vs historical moves. No contradictions with annotations.

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

Conciseness5/5

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

Two concise sentences: first states the function, second explains usage context. No redundant information, well-structured for quick understanding.

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

Completeness4/5

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

Tool is simple (2 params, no output schema). Description explains what it calculates and how to interpret results (implied move, compare to historical). Sufficient for an agent to use correctly without additional context.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both parameters (symbol and expiration). Description does not add parameter-specific details beyond schema, but the mention of 'ATM straddle' provides contextual value. Baseline score is appropriate.

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

Purpose5/5

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

Description clearly states the tool calculates the expected move implied by options pricing using ATM straddle. It distinguishes itself from sibling tools like options_chain or options_max_pain by specifying its unique function and use case (earnings plays).

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

Usage Guidelines4/5

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

Description provides a clear use case: 'Essential for earnings plays' and suggests comparing implied vs historical moves to assess premium. It lacks explicit exclusions or alternatives, but the context is sufficient for typical usage.

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

options_max_painA
Read-only

Calculate the max pain strike price — where cumulative option open interest expires worthless. This level often acts as a support/resistance zone near expiration.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g. 'AAPL', 'NYSE:GM')
expirationNoExpiration date as YYYY-MM-DD. If omitted, uses nearest.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds context about the calculation nature (max pain) but no additional behavioral traits like rate limits or permission requirements. 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.

Conciseness4/5

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

Two sentences efficiently convey the tool's purpose. No wasted words, but could be slightly more front-loaded with the action verb.

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

Completeness4/5

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

Given the tool's simplicity, good annotations, and full schema coverage, the description is sufficiently complete. No output schema, but the expected result (a number) is implied by the definition.

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

Parameters3/5

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

Schema covers both parameters with descriptions (symbol and expiration). The description does not add semantic detail beyond what the schema provides. With 100% schema coverage, baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the tool calculates the max pain strike price, explains the concept as where cumulative option open interest expires worthless, and notes its typical use as support/resistance near expiration. It differentiates from sibling tools like options_chain by focusing on a specific derived metric.

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

Usage Guidelines3/5

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

The description implies usage near expiration for support/resistance analysis but does not explicitly state when to use this tool versus alternatives like options_chain or options_implied_move. No guidance on when not to use.

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

options_put_call_ratioA
Read-only

Get historical put/call ratio from CBOE (market-wide sentiment indicator). Ratio > 1.0 = more puts (bearish sentiment), < 0.7 = more calls (bullish/complacent). Types: 'total' (all options), 'equity' (stock options only), 'index' (index options only).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoRatio type (default: total)
daysNoNumber of recent trading days to return (default: 30, max: 252)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by specifying the data source (CBOE), historical nature, and interpretation of ratio values, which informs the agent about behavioral traits beyond annotations.

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

Conciseness5/5

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

The description is three sentences long, front-loaded with purpose, then adds interpretation and type explanation. Every sentence earns its place; no unnecessary words.

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

Completeness5/5

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

For a simple historical data retrieval tool with well-documented parameters and no output schema, the description is complete. It explains purpose, interpretation, and types, providing sufficient context for the agent to use the tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description repeats the enum values for 'type' but does not add new information beyond what schema already provides. No additional detail on 'days' parameter.

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

Purpose5/5

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

The description clearly states it gets historical put/call ratio from CBOE, a market-wide sentiment indicator. It distinguishes from sibling tools by being the only one focused on options ratios and sentiment interpretation.

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

Usage Guidelines4/5

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

The description provides context for when to use (market sentiment analysis) and explains interpretation (ratio >1 bearish, <0.7 bullish). It does not explicitly exclude alternatives, but the context is clear.

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

options_unusual_activityA
Read-only

Find options contracts with unusually high volume relative to open interest (a common 'smart money' signal). Scans the nearest expiration and flags contracts where volume/OI exceeds a threshold.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g. 'AAPL', 'NYSE:GM')
volume_oi_ratioNoMin volume/OI ratio to flag as unusual (default: 3.0)
min_volumeNoMin absolute volume (default: 100)
sideNoFilter by option type (default: both)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by specifying it scans the nearest expiration and flags contracts based on a volume/OI threshold, enhancing transparency beyond annotations.

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

Conciseness5/5

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

Two sentences, each necessary: first states purpose, second adds key behavior (nearest expiration, threshold). No fluff, front-loaded.

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

Completeness4/5

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

For a scan tool with moderate parameters and no output schema, the description adequately explains the core logic and scope, though it does not detail output format (mitigated by openWorldHint annotation). Complete enough for an agent to understand usage.

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

Parameters3/5

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

Input schema provides descriptions for all 4 parameters (100% coverage), and the description does not add significant meaning beyond mentioning the volume/OI threshold concept. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Find' and specific resource 'options contracts with unusually high volume relative to open interest', distinguishing it from sibling tools like options_chain and options_max_pain.

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

Usage Guidelines4/5

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

The description implies usage context (scanning for 'smart money' signals) but does not explicitly state when not to use or mention alternatives, though sibling tools provide differentiation.

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

reddit_mentionsA
Read-only

Get mention count and top posts for a specific stock ticker across Reddit. Searches r/wallstreetbets, r/stocks, r/investing, and r/options. Returns total mentions, per-subreddit breakdown, and top 10 posts by score. Use this to check how much retail attention a ticker is getting.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g. AAPL, TSLA, GME)
periodNoTime period to search (default: day)day

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds value by specifying the subreddit scope and return structure (total, breakdown, top 10), but does not address potential limitations or rate limits.

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

Conciseness5/5

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

Two sentences with no fluff. The first sentence states purpose and subreddits; the second details return values and usage. Efficient and front-loaded.

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

Completeness4/5

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

For a simple tool with two parameters and no output schema, the description adequately covers return fields and usage. Could mention pagination but not essential.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description does not add new meaning beyond implying the symbol is a stock ticker, which is covered in the schema's description.

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

Purpose5/5

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

The description explicitly states the tool retrieves mention count and top posts for a stock ticker across specific subreddits, distinguishing it from sibling tools like reddit_sentiment and reddit_trending.

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

Usage Guidelines4/5

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

The description clearly states the tool is for checking retail attention, with implied context about when to use it versus alternatives, but lacks 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.

reddit_sentimentA
Read-only

Get sentiment analysis for a stock ticker from Reddit discussions. Searches r/wallstreetbets, r/stocks, r/investing, and r/options, then scores each post using keyword matching (bullish terms like 'moon', 'calls', 'breakout' vs bearish terms like 'crash', 'puts', 'dump'). Returns bullish/bearish/neutral counts, average sentiment score, and sample posts. Limitation: keyword-based scoring, not NLP — sarcasm and context may be missed.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g. AAPL, TSLA, GME)
limitNoMaximum posts to analyze per subreddit (default: 50)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by detailing the keyword-matching method, specific subreddits searched, output format, and the limitation about missing sarcasm/context. This goes beyond the annotations.

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

Conciseness5/5

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

The description is concise (three sentences) and well-structured: purpose, method/output, limitation. No redundant information; every sentence adds value.

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

Completeness4/5

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

Given the lack of an output schema, the description adequately explains the output (counts, sentiment score, sample posts). It covers the limitations and subreddits. Slightly more could be added about pagination or rate limits, but it is sufficient.

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

Parameters3/5

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

Schema coverage is 100% and both parameters (symbol, limit) have clear descriptions in the schema. The description does not add additional meaning beyond what the schema provides, so it meets the baseline but does not exceed it.

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

Purpose5/5

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

The description clearly states the action (Get sentiment analysis), resource (stock ticker from Reddit discussions), and method (keyword scoring). It distinguishes from sibling tools like 'reddit_mentions' and 'reddit_trending' by focusing on sentiment rather than just mentions or trending topics.

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

Usage Guidelines3/5

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

The description implies usage for sentiment analysis but does not explicitly compare to alternatives or state when not to use. The limitation about keyword-based scoring provides some context for suitability, but no direct guidance on sibling tools.

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

sentiment_crypto_fear_greedA
Read-only

Get the Crypto Fear & Greed Index from Alternative.me. Returns a score (0-100) with rating (extreme fear/fear/neutral/greed/extreme greed). Based on Bitcoin volatility, market volume, social media, surveys, dominance, and trends. Use this alongside coingecko tools for crypto market context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds value by explaining the computation basis (Bitcoin volatility, market volume, social media, surveys, dominance, trends), which gives the agent insight into the tool's behavior beyond safety.

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

Conciseness5/5

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

The description is extremely concise: two sentences that front-load the core functionality and provide necessary context with zero wasted words.

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

Completeness5/5

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

For a parameterless, read-only tool with no output schema, the description fully covers what the tool returns (score, rating, range) and the underlying factors. It also suggests integration with sibling tools, making it contextually complete.

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

Parameters4/5

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

There are no parameters (schema coverage 100% vacuously). The description does not need to add parameter details since none exist; baseline score of 4 is appropriate.

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

Purpose5/5

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

The description clearly states it retrieves the Crypto Fear & Greed Index from a specific source (Alternative.me), returns a score (0-100) with rating categories, and explains the underlying factors. It distinguishes itself from sibling tools like 'sentiment_fear_greed' and crypto tools by focusing on crypto market sentiment.

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

Usage Guidelines4/5

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

The description recommends using this tool alongside coingecko tools for crypto market context, providing a usage hint. However, it does not explicitly state when not to use it or mention alternatives.

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

sentiment_fear_greedA
Read-only

Get the CNN Fear & Greed Index for the US stock market. Returns a composite score (0-100) with rating (extreme fear/fear/neutral/greed/extreme greed) and 7 sub-indicators: S&P 500 momentum, stock price strength (52w highs vs lows), stock price breadth (McClellan), put/call ratio, VIX, junk bond demand, safe haven demand. Also includes previous close, 1-week, 1-month, and 1-year scores for trend context. Use this to gauge overall market sentiment before analyzing individual stocks.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint true and destructiveHint false. The description adds value by detailing the output structure (composite score, rating, sub-indicators, trend context) and scope (US stock market). No contradictions.

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

Conciseness4/5

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

The description is a single paragraph that efficiently communicates the tool's purpose and output. It front-loads the key action and then enumerates details. Slightly verbose in listing all sub-indicators, but overall concise.

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

Completeness5/5

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

With no output schema, the description comprehensively explains the return values (composite score, rating, sub-indicators, trend scores) and usage context. The tool has no parameters, and the description covers all necessary information.

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

Parameters4/5

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

The input schema has 0 parameters, so schema coverage is 100%. Baseline for 0 parameters is 4, as the description need not add parameter details.

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

Purpose5/5

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

The description clearly states the tool retrieves the CNN Fear & Greed Index for the US stock market, specifying the composite score range, rating categories, 7 sub-indicators, and trend scores. It distinguishes effectively from sibling tools like sentiment_crypto_fear_greed.

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

Usage Guidelines4/5

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

The description explicitly suggests using this tool to gauge overall market sentiment before analyzing individual stocks, providing clear context. While it doesn't explicitly list alternatives, the sibling tool list includes crypto-specific sentiment, so guidance is sufficient.

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

tradingview_compare_stocksA
Read-only

Returns price, change, market cap, P/E, EPS, revenue, dividend yield, RSI, and analyst recommendation rating (-1 sell to +1 buy) for 2-5 stocks. Revenue growth rate and analyst price targets are not available.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYes2-5 stock tickers to compare (e.g. AAPL, MSFT)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is known to be safe. The description adds value beyond annotations by listing the specific metrics returned and explicitly noting two types of data that are not available (revenue growth rate and analyst price targets), which helps set expectations.

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

Conciseness5/5

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

The description is extremely concise: two sentences with no redundant words. The first sentence lists all returned fields efficiently, and the second sentence notes missing data. Every sentence adds value with no fluff.

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

Completeness3/5

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

With no output schema, the description does list returned fields but does not explain the structure of the response (e.g., JSON format, data types for each field, or handling of errors for invalid tickers). For a simple tool with one parameter, this is adequate but has gaps in specifying exact output format.

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

Parameters3/5

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

Schema coverage is 100%, with the schema itself providing a description for the only parameter (tickers as an array of strings with min 2, max 5). The description adds no new information beyond what the schema already provides; it merely restates '2-5 stocks'.

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

Purpose5/5

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

The description clearly states the tool returns price, change, market cap, P/E, EPS, revenue, dividend yield, RSI, and analyst recommendation rating for 2-5 stocks. This is a specific verb ('returns') and resource ('comparison data for stocks'), distinguishing it from sibling tools like tradingview_quote (single stock) and tradingview_scan (screening).

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

Usage Guidelines3/5

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

The description implies usage when comparing multiple stocks and notes data that is not available (revenue growth rate, analyst price targets), but does not explicitly state when to use this tool vs alternatives. No direct guidance on when not to use it or mention of alternative tools for missing data.

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

tradingview_market_indicesA
Read-only

Get real-time values for major market indices: VIX (volatility), S&P 500, NASDAQ Composite, and Dow Jones. Essential for gauging broad market conditions, risk sentiment, and options pricing context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so the description's 'Get real-time values' adds no new behavioral traits beyond confirming it is a read operation. The description adds context about the indices but not additional behavioral caveats.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the action, and contains no wasted words. It efficiently communicates what the tool does and its use case.

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

Completeness4/5

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

For a tool with no input and no output schema, the description specifies the indices returned and the real-time nature. It does not detail the response format, but it is sufficient for an agent to understand the data provided.

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

Parameters5/5

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

There are no input parameters; the schema is empty with 100% coverage. The description does not need to explain parameters, and it provides no parameter information, which is appropriate.

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

Purpose5/5

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

The description clearly states the tool 'Get real-time values for major market indices' and lists specific indices (VIX, S&P 500, NASDAQ Composite, Dow Jones). This distinguishes it from sibling tools like tradingview_quote (individual stocks) and tradingview_scan (screening).

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

Usage Guidelines4/5

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

The description notes it is 'Essential for gauging broad market conditions, risk sentiment, and options pricing context,' which guides when to use it. However, it does not explicitly state when not to use or name alternatives, though the purpose is clear relative to siblings.

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

tradingview_quoteA
Read-only

Get a 15-minute delayed quote for one or more stock tickers (e.g. 'AAPL' or 'NASDAQ:AAPL'). Returns price, change, volume, market cap, and pre-market/after-hours data when available. Data is delayed ~15 minutes during market hours — use finnhub_quote for real-time prices if available. If a ticker returns empty results, retry with the correct exchange prefix (e.g. 'NYSE:CDE', 'AMEX:XYZ').

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYesStock tickers, e.g. ['AAPL', 'MSFT']

TDQS

A4.7/5.0
Behavior5/5

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

Discloses 15-min delay, returned data fields, and emptry ticker handling beyond the annotations (readOnlyHint, destructiveHint, openWorldHint). Adds context about data freshness and error recovery.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose and key info, no extraneous words. Efficient and clear.

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

Completeness5/5

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

Covers purpose, delay, returned fields, alternative tool, and error recovery. No output schema needed given the description. Complete for a simple quote tool.

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

Parameters3/5

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

Schema already describes 'tickers' with examples (100% coverage). Description reinforces format but doesn't add new semantic meaning beyond schema. Acceptable baseline.

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

Purpose5/5

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

Clearly states 'get a 15-minute delayed quote for one or more stock tickers', specifying the verb, resource, and key characteristic (delay). Distinguishes itself from siblings like tradingview_scan and finnhub_quote.

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

Usage Guidelines5/5

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

Explicitly tells when to use (for delayed quotes), when not to use (if real-time needed, use finnhub_quote), and provides retry advice with exchange prefix. No ambiguity.

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

tradingview_scanA
Read-only

Scan US stocks with custom filters (price > X, RSI < 30, etc.). Returns up to limit rows with the requested columns.

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeNoExchange filter, e.g. NASDAQ, NYSE, AMEX
filtersNoScanner filters
columnsNoColumns to return (default: all 66)
timeframeNoTimeframe: 1m, 5m, 15m, 1h, 4h, 1d (default), 1W, 1M
limitNoMax rows (default 50)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare read-only and non-destructive. Description adds context about limit and columns, but no details on rate limits, pagination, or data source.

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

Conciseness5/5

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

Two efficient sentences covering purpose and output characteristics without redundancy.

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

Completeness4/5

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

For a scan tool with five parameters and no output schema, the description covers scanning concept and output limit. Lacks details on column defaults or operation enum behavior, but open-world hint mitigates.

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

Parameters3/5

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

Schema coverage is 100%. Description provides example filter syntax and explains limit meaning, but doesn't elaborate on each parameter beyond schema.

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

Purpose5/5

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

Description clearly states verb 'scan' and resource 'US stocks' with custom filters. Distinguishes from sibling tools like quotes and top gainers.

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

Usage Guidelines3/5

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

Implies usage for custom stock screening, but no explicit guidance on when to use vs alternatives like tradingview_technicals or tradingview_top_gainers.

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

tradingview_sector_performanceA
Read-only

Get performance of S&P 500 sector ETFs (XLK, XLF, XLE, XLV, XLI, XLP, XLU, XLY, XLC, XLRE, XLB). Shows which sectors are leading or lagging today. Essential for sector rotation analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds context about the specific ETFs and daily performance, but doesn't disclose potential limitations (e.g., data delay, frequency of updates) or error conditions. It adds moderate value beyond annotations.

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

Conciseness5/5

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

Two concise sentences with no filler. The first sentence states the core purpose, the second adds value and application context. Every word is necessary.

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

Completeness5/5

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

Given no output schema and no parameters, the description fully explains what the tool does (returns performance of specified sector ETFs) and why it is useful (sector rotation analysis). It is complete for the tool's simplicity.

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

Parameters4/5

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

The tool has zero parameters, so the description faces no burden to explain them. Baseline for 0 parameters is 4. The description does not add parameter info, but none is needed.

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

Purpose5/5

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

The description specifies the exact action ('Get performance'), the precise resource ('S&P 500 sector ETFs' with ticker symbols), and the output ('shows which sectors are leading or lagging today'). It clearly distinguishes from sibling tools that cover broad indices or individual stocks.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool ('Essential for sector rotation analysis') and implies it's for daily performance comparison. However, it doesn't explicitly contrast with sibling tools like tradingview_market_indices or tradingview_quote, leaving some ambiguity for agents.

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

tradingview_technicalsA
Read-only

Get technical indicators (RSI, MACD, moving averages, pivot points, etc.) for one or more stock tickers. If a ticker returns empty results, retry with the correct exchange prefix (e.g. 'NYSE:CDE', 'AMEX:XYZ').

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYesStock tickers, e.g. ['AAPL', 'IBM']
timeframeNoTimeframe (default: 1d)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations (readOnlyHint=true) align with read-only nature. Description adds important retry behavior beyond annotations: 'retry with correct exchange prefix'. No contradictions. Could mention data freshness or rate limits.

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

Conciseness5/5

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

Two sentences: first defines purpose, second provides critical troubleshooting guidance. No waste; each sentence contributes directly to tool usability.

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

Completeness4/5

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

Covers input and retry behavior well. No output schema, so description could list return structure or example values. However, given sibling richness, the purpose is clear. Minor gap in output details.

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

Parameters3/5

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

Schema has 100% coverage with descriptions for both parameters. Description restates that tickers are stock tickers and implies multiple tickers are allowed, but adds no new meaning beyond schema. Baseline 3 is appropriate.

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

Purpose5/5

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

Clear verb 'Get' and resource 'technical indicators... for stock tickers'. Lists well-known examples (RSI, MACD, moving averages). Distinguishes from siblings like tradingview_quote (price) and tradingview_scan (screening).

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

Usage Guidelines4/5

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

Explicit retry guidance with exchange prefix for empty results. Does not explicitly state when to prefer this tool over siblings, but context from sibling names makes it clear this is for technical indicators. Missing direct comparisons.

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

tradingview_top_gainersA
Read-only

Get today's top gaining stocks by percentage change on a given exchange. Defaults to major US exchanges (NYSE, NASDAQ, AMEX) with market cap > $100M. OTC penny stocks excluded by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeNoExchange (default: all US)
include_otcNoWhether to include OTC penny stocks (default: false)
limitNoMax results (default 20)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate read-only and non-destructive nature. The description adds value by specifying that it returns today's data, filters by market cap, and excludes OTC by default. No contradictions; no additional critical behavioral gaps noted.

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

Conciseness5/5

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

Two succinct sentences front-load the core purpose and essential details without redundancy. Every word earns its place.

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

Completeness4/5

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

For a simple, read-only tool with optional parameters, the description adequately covers what the tool does, its defaults, and exclusions. No output schema exists, but the return type is implied. Minor gap: pagination or limit behavior could be clarified, but not critical.

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

Parameters4/5

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

Schema describes all 3 parameters with defaults. The description enhances understanding by explaining the default exchange ('major US exchanges...') and why OTC is excluded, providing context beyond schema descriptions.

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

Purpose5/5

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

The description clearly states the verb ('Get'), resource ('top gaining stocks'), and metric ('percentage change'). It specifies defaults (US exchanges, market cap > $100M) and exclusions (OTC), effectively differentiating it from siblings like tradingview_top_losers and tradingview_top_volume.

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

Usage Guidelines4/5

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

The description implies when to use: for top gainers on an exchange. It provides context on defaults and exclusions but does not explicitly compare with alternatives like tradingview_scan or tradingview_top_losers, though the tool name and purpose are self-explanatory.

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

tradingview_top_losersA
Read-only

Get today's top losing stocks by percentage change on a given exchange. Defaults to major US exchanges (NYSE, NASDAQ, AMEX) with market cap > $100M. OTC penny stocks excluded by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeNoExchange (default: all US)
include_otcNoWhether to include OTC penny stocks (default: false)
limitNoMax results (default 20)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate read-only behavior. The description adds value by detailing default filtering criteria (market cap, OTC exclusion) and real-time nature. No mention of rate limits or pagination, but not critical for this tool.

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

Conciseness5/5

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

Two sentences with no filler. The purpose is front-loaded in the first sentence, and defaults are provided in the second. Efficient and clear.

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

Completeness4/5

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

The description covers purpose, defaults, and exclusions. For a simple list tool with no output schema, this is sufficient. Could mention sorting order, but not essential.

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

Parameters4/5

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

Schema descriptions cover all parameters (100% coverage). The description adds context about default exchanges and market cap threshold, which enhances understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the tool retrieves today's top losing stocks by percentage change on a given exchange. It specifies defaults (major US exchanges, market cap > $100M) and distinguishes from sibling tools like tradingview_top_gainers.

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

Usage Guidelines4/5

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

The description implies usage context (finding today's top losers) but does not explicitly mention alternatives or when not to use. The sibling list and tool name provide some differentiation, but explicit guidance would improve clarity.

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

tradingview_top_volumeA
Read-only

Get stocks with the highest trading volume today. Defaults to major US exchanges.

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeNoExchange (default: all US)
include_otcNoWhether to include OTC penny stocks (default: false)
limitNoMax results (default 20)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's role is reduced. It adds minor behavioral context by noting 'Defaults to major US exchanges', but does not disclose data freshness, rate limits, or how the limit parameter affects results. This is adequate given the annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, and no unnecessary words. Every sentence serves a clear purpose.

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

Completeness4/5

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

For a simple read-only tool with three optional parameters and no output schema, the description is largely complete. It covers the essential purpose and defaults, though it could optionally mention the effect of the limit parameter or the inclusion of OTC stocks. Overall, it adequately informs the AI agent.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by specifying default behavior for the exchange parameter ('Defaults to major US exchanges') and time context ('today'), which are not fully captured in the schema descriptions.

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

Purpose5/5

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

The description uses a specific verb 'Get' and resource 'stocks with highest trading volume today', clearly stating what the tool does. It also distinguishes from sibling tools like tradingview_volume_breakout and tradingview_top_gainers by focusing on volume magnitude rather than breakouts or price changes.

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

Usage Guidelines3/5

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

The description implies usage context (stocks with highest volume today, default US exchanges) but does not explicitly state when to use this tool over alternatives like volume_breakout or when not to use it. No exclusions or alternative recommendations are provided.

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

tradingview_volume_breakoutA
Read-only

Find stocks with unusual volume (current volume significantly above average). Defaults to major exchanges.

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeNoExchange filter
limitNoMax results (default 20)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the baseline is adequate. The description does not add notable behavioral context beyond the core purpose, but does not contradict annotations.

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

Conciseness5/5

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

Single sentence, front-loaded with the action, no wasted words. Perfectly concise.

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

Completeness4/5

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

Given the tool's simplicity (2 optional parameters, no output schema, clear annotations), the description is nearly complete. It covers the core functionality and default behavior, though could mention that results are based on recent data.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for exchange and limit. The description adds a default behavior note ('Defaults to major exchanges'), providing minimal extra value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool finds stocks with unusual volume (current volume significantly above average). It distinguishes itself from siblings like tradingview_top_volume by emphasizing 'unusual' rather than just high volume.

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

Usage Guidelines3/5

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

The description mentions defaulting to major exchanges but provides no explicit guidance on when to use this tool versus alternatives like tradingview_top_volume or tradingview_scan. The usage context is implied but not stated.

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

Tool Schema Changelog

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

  1. 39 tool updatesv1.16.4
    • First observedcoingecko_coin
    • First observedcoingecko_global
    • First observedcoingecko_trending
    • First observedcrypto_quote
    • First observedcrypto_scan
    • First observedcrypto_technicals
    • First observedcrypto_top_gainers
    • First observededgar_company_facts
    • First observededgar_company_filings
    • First observededgar_insider_trades
    • First observededgar_institutional_holdings
    • First observededgar_ownership_filings
    • First observededgar_search
    • First observedfrankfurter_convert
    • First observedfrankfurter_currencies
    • First observedfrankfurter_historical
    • First observedfrankfurter_latest
    • First observedfrankfurter_timeseries
    • First observedoptions_chain
    • First observedoptions_expirations
    • First observedoptions_implied_move
    • First observedoptions_max_pain
    • First observedoptions_put_call_ratio
    • First observedoptions_unusual_activity
    • First observedreddit_mentions
    • First observedreddit_sentiment
    • First observedreddit_trending
    • First observedsentiment_crypto_fear_greed
    • First observedsentiment_fear_greed
    • First observedtradingview_compare_stocks
    • First observedtradingview_market_indices
    • First observedtradingview_quote
    • First observedtradingview_scan
    • First observedtradingview_sector_performance
    • First observedtradingview_technicals
    • First observedtradingview_top_gainers
    • First observedtradingview_top_losers
    • First observedtradingview_top_volume
    • First observedtradingview_volume_breakout

TDQS

A3.9/5.0

Scored across 39 tools

Disambiguation4/5

Tools are grouped by clear prefixes (coingecko_, crypto_, edgar_, frankfurter_, options_, reddit_, sentiment_, tradingview_) and each group has distinct purposes. However, slight overlap exists between crypto and stock sentiment tools (sentiment_crypto_fear_greed vs sentiment_fear_greed) and between quote tools (crypto_quote vs coingecko_coin) which may cause minor confusion.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a descriptive prefix and noun (e.g., coingecko_coin, edgar_company_facts, options_chain, reddit_mentions). No mixing of conventions, making it easy for an agent to predict tool names.

Tool Count3/5

With 39 tools, the server is on the higher end of the acceptable range. The breadth of domains (crypto, stocks, options, forex, SEC filings, Reddit, sentiment) justifies many tools, but some may be redundant (e.g., multiple crypto price tools), slightly bloating the count.

Completeness5/5

The tool set covers an extensive range of financial research needs: crypto data, stock quotes/scans/technicals, options analysis, forex rates, SEC filings, Reddit sentiment, and market sentiment indices. It provides a complete toolkit for investment analysis with few obvious gaps.

Maintenance

ActivityActive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Real-time financial market data MCP server. Stocks, crypto, technicals, sentiment, FDA calendar. No API keys required.
    -
  • A
    license
    A
    quality
    F
    maintenance
    A comprehensive MCP server for stock analysis and trading insights, including stock screening, fundamental analysis, insider trading, options analysis, social media research, and news analysis.
    10
    75
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Comprehensive MCP server for real-time stock, cryptocurrency, options, and fundamental analysis, including SEC filings and insider trading data.
    26
    33
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    A remote Model Context Protocol (MCP) server for real-time cryptocurrency and stock market analysis. Provides AI-powered market intelligence tools with 9 theory-based analysis engines, multi-chain DEX discovery, and enterprise features.
    -