trading-skills
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@trading-skillsScan AAPL, MSFT, NVDA for bullish trends"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Trading Skills — AI-Powered Market Analysis
Most retail traders juggle 5+ tabs — broker, charting platform, screener, news feed, spreadsheet — just to decide whether to enter a trade. This project collapses all of that into a single conversational interface powered by Claude.
Ask a question in plain English, get back real data: technicals, fundamentals, option Greeks, risk metrics, earnings dates, correlation matrices, and full PDF reports. Connect your Interactive Brokers account and it manages your portfolio too — finds roll candidates for expiring shorts, flags earnings risk, and generates action reports.
Who is this for?
Retail options traders who sell premium, run PMCCs, or manage covered calls
Self-directed investors who want quick fundamental + technical scans without switching tools
Python-literate traders who want to extend the analysis with custom scripts
IBRK users who want AI-assisted portfolio management
Quick example — scan for bullish setups and check PMCC viability:
You: Scan AAPL,MSFT,NVDA,GOOGL,AMZN for bullish trends, then check the top picks for PMCC suitability
Claude: [runs scanner-bullish → filters top scores → runs scanner-pmcc]
NVDA: Bullish score 8/10, PMCC score 9.2/11 — LEAPS $95 call (Δ0.82),
sell $140 call (Δ0.18), net debit $5,420, annual yield 47%...Another example — correlation check before adding to a portfolio:
You: Show correlation for SPY,GOOG,NVDA,ZM,RTX,PFE,XOM
Claude: NVDA is the standout diversifier — near-zero correlation with everything.
RTX/XOM at 0.86 — little diversification benefit between them.Real sessions in Claude Desktop (free account)
"Analyze option spread strategies and probability of profit for SPY, QQQ and DIA"

Requirements
Python 3.12+
uv package manager
Claude Code, Claude Desktop, or Cursor with third-party skills enabled (fully installed and authenticated)
Optional: TWS or IB Gateway for portfolio features
Related MCP server: IB Portfolio Tracker MCP Server
Two Ways to Use
Claude Code / Cursor (Full Experience)
Installation
git clone https://github.com/staskh/trading_skills.git
cd trading_skills
uv syncRun Claude Code or Cursor in the repository root. All skills are available as interactive commands — ask questions about your IBKR portfolio, symbols, or companies of interest.
MCP Server (Claude Desktop)
The MCP server is a lightweight alternative for use with Claude Desktop (including the free tier). It exposes 23 trading analysis tools directly to Claude Desktop without needing Claude Code.
Installation
Install the package (requires Python 3.12+):
pip install trading-skillsFind the full path to the installed command:
macOS / Linux:
which trading-skills-mcpWindows:
where trading-skills-mcpIf
wheredoesn't find it, locate it manually:python -c "import sysconfig; print(sysconfig.get_path('scripts'))"The script will be
trading-skills-mcp.exein that directory (typically atC:\Users\<YourUsername>\AppData\Local\Programs\Python\Python<Version>\Scripts\)Open Claude Desktop, go to Settings → Developer → Edit Config:

Add the following to
claude_desktop_config.json:macOS / Linux:
{ "mcpServers": { "trading-skills": { "command": "/full/path/to/trading-skills-mcp" } } }Windows:
{ "mcpServers": { "trading-skills": { "command": "C:\\full\\path\\to\\trading-skills-mcp.exe" } } }Replace the path with the output from step 2.
Restart Claude Desktop. Don't worry if you see an MCP error message — it will disappear once you try some of the examples below.
Installation from GitHub
Add the following to claude_desktop_config.json:
macOS / Linux:
{
"mcpServers": {
"trading-skills": {
"command": "uvx",
"args": ["--from", "git+https://github.com/staskh/trading_skills.git", "trading-skills-mcp"]
}
}
}Windows:
{
"mcpServers": {
"trading-skills": {
"command": "cmd",
"args": ["/c", "uvx", "--from", "git+https://github.com/staskh/trading_skills.git", "trading-skills-mcp"]
}
}
}Example Queries
"What's AAPL's current price and 1y range?"
"Run technical analysis on SPY with RSI/MACD"
"Scan AAPL,MSFT,NVDA,GOOGL for bullish trends"
"Find PMCC candidates from my watchlist"
"Compare risk metrics for MSFT vs AAPL"
"Show correlation between SPY,NVDA,GOOG,XOM"
"When is NVDA's next earnings?"
"Show my portfolio positions" (requires IB)
"Generate portfolio action report" (requires IB)
"Find roll candidates for my GOOG short call" (requires IB)
Available Skills (25)
Market Data
Skill | Description |
| Real-time price, volume, change, market cap, 52-week range |
| Calls and puts with strikes, bids, asks, volume, OI, IV |
| Historical OHLCV data |
| Financials, earnings, key metrics, Piotroski F-Score |
| Recent headlines and sentiment |
| Upcoming earnings dates with BMO/AMC timing and EPS estimates |
| SEC Form 4 insider transactions — executive buys/sells and sentiment |
Analysis
Skill | Description |
| RSI, MACD, Bollinger Bands, SMA, EMA, ATR, ADX, correlation matrix |
| Delta, gamma, theta, vega, IV (Black-Scholes) |
| Verticals, diagonals, straddles, strangles, iron condors |
| Volatility, beta, VaR, drawdown, Sharpe ratio |
Scanners
Skill | Description |
| Scan symbols for bullish trends (SMA, RSI, MACD, ADX) |
| Scan for PMCC suitability (delta, liquidity, spread, IV, yield) |
| Detect institutional option whale activity for an underlying (requires Massive API key) |
Portfolio (requires TWS/Gateway)
TWS API access levels:
Read-only — fetches positions, prices, and Greeks; places no orders:
ib-account,ib-portfolio,ib-option-chain,ib-find-short-roll,ib-collar,ib-pmcc-advisor,ib-portfolio-action-report,ib-create-consolidated-report,ib-report-delta-adjusted-notional-exposureRead-write — can place and cancel conditional orders in TWS:
ib-stop-loss(only when--executeis passed; dry-run by default)
Skill | Description |
| Account summary (cash, buying power, margin) |
| Portfolio positions with market prices |
| Real-time option chain data from IB (under development) |
| Roll candidates for short positions or covered call/put selection |
| Tactical collar strategy for earnings/event protection |
| PMCC position analysis: assignment risk, P&L projections, ranked roll candidates |
| Conditional stop-loss management for PMCC, naked LEAPS, and stock positions |
| Portfolio review with earnings risk and action items |
| Consolidate IBRK trade CSVs into summary reports |
| Delta-adjusted notional exposure across accounts |
Reports
Skill | Description |
| Comprehensive PDF/markdown report with trend, PMCC, and fundamental analysis |
MCP Server Tools (32 tools)
The MCP server exposes skills as tools for Claude Desktop:
TWS API access levels for MCP tools:
Read-only:
ib_account,ib_portfolio,ib_option_expiries,ib_option_chain,ib_find_short_roll,ib_collar,ib_pmcc_advisor,ib_portfolio_action_report,ib_delta_exposureRead-write (places/cancels orders):
ib_stop_losswhenexecute=True
Category | Tools |
Market Data |
|
Technical |
|
Options |
|
Spreads |
|
Scanners |
|
Whale Hunting |
|
Reports |
|
IB Portfolio |
|
† MCP-only helper — not a standalone skill. Used in Claude Desktop to discover available expiry dates before calling ib_option_chain.
Sandbox Outputs (Not Committed)
Temporary reports, datasets, and notebooks are saved to sandbox/ and are not committed to git. Report filenames include timestamps: <name>_YYYY-MM-DD_HHmm.<ext>.
Interactive Brokers Setup
To use IB features:
Install TWS or IB Gateway
Enable API connections in TWS: Configure → API → Settings → Enable ActiveX and Socket Clients
Note the port: 7497 (paper) or 7496 (live)
Massive (formerly Polygon.io) Setup
Whale-detection features (option_whales, whales_hunter) require a Massive API key (the platform was previously known as Polygon.io).
Claude Code / Cursor
Create a .env file in the repository root:
MASSIVE_API_KEY=your_polygon_api_key_hereThe library loads it automatically via python-dotenv.
MCP Server (Claude Desktop)
Pass the key through the env field in claude_desktop_config.json:
macOS / Linux:
{
"mcpServers": {
"trading-skills": {
"command": "/full/path/to/trading-skills-mcp",
"env": {
"MASSIVE_API_KEY": "your_massive_api_key_here"
}
}
}
}Windows:
{
"mcpServers": {
"trading-skills": {
"command": "C:\\full\\path\\to\\trading-skills-mcp.exe",
"env": {
"MASSIVE_API_KEY": "your_massive_api_key_here"
}
}
}
}The
envblock is merged with the system environment, so other variables are not affected.
Development
# Run tests
uv run pytest tests/ -v
# Lint
uv run ruff check src/ tests/
uv run ruff format src/ tests/
# Test individual script
uv run python .claude/skills/fundamentals/scripts/fundamentals.py AAPL
# Debug MCP server with MCP Inspector
npx @modelcontextprotocol/inspector uv run python -m mcp_server.serverArchitecture
User Query → Claude Code/Desktop → Skill or MCP Tool → Python Script → ResponseSkills are SKILL.md files in .claude/skills/ that instruct Claude how to fetch and analyze data using Python scripts. Skill scripts live under .claude/skills/<skill-name>/scripts/, and progressive reference material belongs in .claude/skills/<skill-name>/references/.
The MCP server (mcp_server/server.py) wraps the same Python scripts as tools for Claude Desktop via the FastMCP framework.
Data Sources
Source | Used by | Notes |
All market data, fundamental, and options skills | Free; up to 15-minute delay | |
Massive (formerly Polygon.io) |
| Paid API key required; see setup section below |
License
MIT
Available Tools
35 toolsearnings_calendarA
Get upcoming earnings dates with timing (BMO/AMC) and EPS estimates.
Args: symbols: Single symbol or comma-separated list (e.g., 'AAPL' or 'AAPL,MSFT,GOOGL')
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does add useful context about the return content (BMO/AMC, EPS estimates), but it does not disclose output structure, edge cases, or any side effects. This is adequate but has gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose and an 'Args' block for the parameter. It is front-loaded and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema or annotations, the description is reasonably complete. It states what data is returned and how to pass the parameter. Minor gaps exist, such as defining 'upcoming' and the exact output shape, but these are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a title and type for 'symbols', so the description compensates fully by explaining the format (single or comma-separated list) and giving concrete examples. This is exactly what the agent needs to correctly populate the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('upcoming earnings dates') with additional details about timing (BMO/AMC) and EPS estimates. It is specific and distinguishes itself from sibling tools, none of which focus on earnings calendars.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool (to retrieve upcoming earnings dates and estimates) and provides a parameter example. While it doesn't explicitly discuss alternatives, no direct sibling alternative exists, so the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fundamentalsA
Get fundamental financial data including metrics, financials, and earnings.
Args: symbol: Ticker symbol data_type: Type of data - 'all', 'info', 'financials', or 'earnings'
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| data_type | No | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of disclosing behavior. It only repeats the general purpose and parameter meanings, without explaining what is returned, how data is aggregated, or any limitations. For a data retrieval tool, this lacks important context like output format or coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—one sentence plus a short arg list. It is front-loaded with the core purpose. The arg list mirrors the schema, creating slight redundancy, but overall it remains efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter design, the description provides adequate high-level context. But with no output schema, it does not explain the return structure or how the data_type options differ in output. This is a moderate gap for a tool that surfaces financial metrics and reports.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage, so the description must compensate. It does clarify that symbol is a ticker symbol and enumerates the allowed values for data_type ('all', 'info', 'financials', 'earnings'), which adds value beyond the bare schema. However, it stops short of describing what each data_type actually contains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches fundamental financial data including metrics, financials, and earnings. This is a specific verb+resource+scope, and it distinguishes itself from sibling tools focused on price, technical indicators, or news sentiment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for fundamental data queries, and the data_type parameter suggests different use cases (info, financials, earnings). However, it does not explicitly state when to use this tool versus alternatives like technical_indicators or earnings_calendar, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_versionA
Return the current version of the trading-skills package.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the read-only nature via 'Return' but does not specify return type, format, or potential errors. For a 0-parameter tool this is adequate though minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no superfluous words, front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's trivial nature, the description is sufficient. No output schema exists, but the expected return value is clear from the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema provides complete coverage. The baseline of 4 applies; no parameter descriptions are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Return' with the resource 'current version of the trading-skills package', clearly distinguishing it from sibling tools that focus on market data and portfolio operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when you need the package version, and there are no alternative tools for this purpose. While it does not explicitly state exclusions or alternatives, the context is clear enough for a trivial version query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_accountA
Get account summary from Interactive Brokers.
Returns cash balance, buying power, net liquidation value, and margin info. Requires TWS or IB Gateway running locally.
Args: port: IB port (7496 for live, 7497 for paper)
| Name | Required | Description | Default |
|---|---|---|---|
| port | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It explains the external dependency (local TWS/Gateway) and lists return fields, but does not explicitly disclose read-only safety or error handling behavior. The 'Get' verb implies read-only, yet it could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: a single clear verb-object sentence followed by essential details and parameter docs. Every sentence adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, this description is complete: it covers purpose, prerequisites, return fields, and parameter meaning. It lacks potential error scenarios or output format details, but those are not critical for a basic account summary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides a title and default for the port parameter. The description adds meaningful semantics by explaining that 7496 is for live and 7497 for paper trading, which is beyond schema information. This adequately compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get account summary from Interactive Brokers' and enumerates specific fields (cash balance, buying power, net liquidation value, margin info). This distinguishes it from sibling tools like ib_portfolio or ib_trades_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear prerequisite ('Requires TWS or IB Gateway running locally') and the port distinction between live and paper trading. Does not explicitly mention alternatives or exclusions, but the context is sufficient for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_collarA
Generate tactical collar strategy report for protecting PMCC positions.
Analyzes existing long call (PMCC) positions and recommends put protection through earnings or high-risk events. Requires TWS or IB Gateway running locally.
Args: symbol: Ticker symbol (e.g., AAPL) port: IB port (7496 for live, 7497 for paper) account: Account ID (optional)
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| symbol | Yes | ||
| account | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It clearly states it generates a report and analyzes positions, and mentions the local TWS/IB Gateway requirement. However, it does not explicitly state whether it places orders or is strictly read-only, nor does it describe side effects or data confidentiality, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise: a clear purpose sentence, a one-line method explanation, a prerequisite sentence, and a tidy parameter list. No redundant fluff; every line carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, method, prerequisites, and parameters adequately. However, it does not describe the output format or what the report contains beyond 'recommends put protection', and it omits whether the tool executes trades. Given there is no output schema, more detail on return value or side effects would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions (0% coverage), so the description fully compensates by explaining every parameter: symbol (with example AAPL), port (with live/paper port numbers), and account (with optional designation). This adds practical meaning beyond bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Generate tactical collar strategy report for protecting PMCC positions', which is a specific verb ('generate') and resource ('collar strategy report') with clear context. It further explains it 'Analyzes existing long call (PMCC) positions and recommends put protection', distinguishing it from other option strategies and related tools like ib_pmcc_advisor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use the tool ('through earnings or high-risk events') and prerequisites ('Requires TWS or IB Gateway running locally'). It does not explicitly exclude alternatives or list when not to use it, but the context is clear enough for basic selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_delta_exposureA
Calculate delta-adjusted notional exposure across all IBKR accounts.
Computes option deltas using Black-Scholes and reports long/short exposure by account and underlying symbol. Requires TWS or IB Gateway running locally.
Args: port: IB port (7496 for live, 7497 for paper)
| Name | Required | Description | Default |
|---|---|---|---|
| port | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explains the calculation method (Black-Scholes), the grouping (by account and underlying symbol), and the local dependency. However, it does not state whether the operation is read-only, whether authentication is needed, or how errors are handled, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose, followed by a brief method note and argument explanation. It is efficient and avoids fluff, though the 'Args' section partially overlaps with what the schema already defines, making it slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single optional parameter and no output schema, the description provides sufficient context: what it calculates, how, across what scope, and what the report contains. It does not describe the output format in detail, but that is not required given the simple input and clear purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines 'port' as an integer with a default, but the description enriches it by specifying the exact values: '7496 for live, 7497 for paper.' This compensates for the 0% schema description coverage and gives the agent actionable guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Calculate') with a precise resource ('delta-adjusted notional exposure across all IBKR accounts'). It clearly distinguishes this tool from siblings like ib_portfolio or ib_option_chain by focusing on delta-adjusted exposure aggregation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the prerequisite: 'Requires TWS or IB Gateway running locally.' This gives essential context for when the tool can be used. However, it does not explicitly mention alternatives or when-not-to-use scenarios, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_find_short_rollA
Find roll, spread, or covered call/put candidates using real-time IB data.
Auto-detects mode based on existing positions:
Short option found: roll candidates with credit/debit analysis
Long option found: short candidates to create a vertical spread
Long stock found: covered call/put candidates Requires TWS or IB Gateway running locally.
Args: symbol: Ticker symbol (e.g., GOOG) port: IB port (7496 for live, 7497 for paper) account: Account ID (optional) strike: Current short strike (optional, auto-detects from portfolio) expiry: Current expiry YYYYMMDD (optional, auto-detects from portfolio) right: 'C' for call or 'P' for put (default: C)
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| right | No | C | |
| expiry | No | ||
| strike | No | ||
| symbol | Yes | ||
| account | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses auto-detection logic and the prerequisite of TWS/IB Gateway, but it does not explicitly state whether the tool places orders or only performs analysis. The word 'find' implies read-only, but this is not clarified, nor is the output behavior described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a summary sentence, a bulleted list of modes, a prerequisite statement, and a concise parameter list. It is appropriately sized, front-loaded with purpose, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of output schema, the description does not explain what the 'candidates' output looks like or provide examples of results. It covers purpose and parameters well but leaves out return format and potential error conditions, making it incomplete for a tool of this sophistication.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description includes an Args section that explains every parameter (symbol, port, account, strike, expiry, right) with examples, defaults, and auto-detection behavior. This fully compensates for the schema's lack of descriptive text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Find roll, spread, or covered call/put candidates using real-time IB data.' It clearly distinguishes itself from sibling tools by explaining the auto-detection mode based on existing positions (short option, long option, long stock), which is a unique feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by specifying the three position-based modes and the requirement for TWS or IB Gateway running locally. However, it does not explicitly mention alternatives or when not to use this tool, so it lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_option_chainA
Get option chain data from Interactive Brokers with real-time quotes.
Returns calls and puts with strikes, bids, asks, volume, and implied volatility. Requires TWS or IB Gateway running locally.
Args: symbol: Ticker symbol expiry: Expiration date (YYYYMMDD) port: IB port (7496 for live, 7497 for paper)
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| expiry | Yes | ||
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the local dependency (TWS/IB Gateway) and the return data, which are relevant behavioral traits. However, it does not disclose potential failure modes (e.g., what happens if TWS is not running), absence of side effects, or data latency characteristics, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: an opening summary, a one-line list of returned data, a requirement note, and a clear Args block. Every sentence earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a data retrieval tool with no output schema, the description covers the essential aspects: purpose, returned fields, parameter formats, and the critical local runtime dependency. It does not discuss sibling tool selection or error handling, but the overall context is sufficiently complete for a simple option chain fetch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite the schema lacking descriptions, the description includes an explicit Args section that fully explains each parameter: symbol (ticker symbol), expiry (YYYYMMDD format), and port (with live/paper port numbers). This adds significant semantic value beyond the bare schema and perfectly compensates for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets option chain data from Interactive Brokers with real-time quotes, mentioning specific fields like strikes, bids, asks, volume, and implied volatility. It distinguishes itself from generic option chain tools by emphasizing IB and real-time data, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an important prerequisite ('Requires TWS or IB Gateway running locally') which implies the tool is for local IB setups, but it does not explicitly state when to use this tool over other option-related siblings like option_chain or ib_option_expiries. There is no clear exclusion guidance, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_option_expiriesA
List available option expiration dates from Interactive Brokers.
Requires TWS or IB Gateway running locally.
Args: symbol: Ticker symbol port: IB port (7496 for live, 7497 for paper)
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It indicates a read-only operation ('List') and discloses the external dependency (TWS/IB Gateway). However, it doesn't explain connection failure behavior, rate limits, or return format, leaving some transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line purpose, a prerequisite note, and a simple Args list. Every sentence adds value, and the format is easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool, the description covers the core aspects: what, prerequisite, and parameters. It lacks an explicit description of the return value or error handling, but given the tool's simplicity and the presence of sibling tools for related data, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates by explaining symbol as ticker and port with specific values for live/paper. This adds meaning beyond the schema's bare property definitions, though it could also clarify the port default more explicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists available option expiration dates from Interactive Brokers, using a specific verb and resource. This distinguishes it from the sibling 'option_expiries' tool, implying a dedicated IB integration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by requiring TWS or IB Gateway running locally and explains the port distinction for live/paper trading. It doesn't explicitly mention alternatives or when not to use, but the IB-specific context is sufficient for basic usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_pmcc_advisorA
Analyze PMCC (diagonal call spread) positions and recommend roll actions.
For each spread: reports assignment probability, P&L projections, roll candidates ranked by delta improvement and credit, and a comparison table. Requires TWS or IB Gateway running locally.
Args: port: IB port (7496 for live, 7497 for paper) account: Specific account ID (optional) symbols: Comma-separated symbols to filter (optional, e.g. 'NVDA,WMT') min_roll_dte: Minimum DTE for roll candidates (default 7) price_mode: Option price source — 'mid' (bid+ask)/2 or 'last'
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| account | No | ||
| symbols | No | ||
| price_mode | No | mid | |
| min_roll_dte | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It does disclose key output behaviors (assignment probability, P&L projections, roll candidates, comparison table) and the local TWS/IB Gateway requirement. However, it does not explicitly state whether the tool is read-only or may place trades, and it omits potential failure modes or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a one-line purpose, followed by output highlights, a prerequisite, and a concise parameter list. There is no filler or redundant repetition of the schema; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for the tool's complexity: all parameters are documented, outputs are enumerated, and important context (local gateway requirement) is provided. It lacks only minor details such as error conditions or market data subscription requirements, but these are not critical for basic tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides no descriptions (0% coverage), so the description's Args section is essential. It explains all five parameters: port with live/paper examples, account as optional, symbols as comma-separated filter, min_roll_dte with default, and price_mode with 'mid'/'last' semantics. This fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Analyze PMCC (diagonal call spread) positions and recommend roll actions,' which clearly identifies the tool's verb and resource. It further details the outputs (assignment probability, P&L projections, roll candidates) but does not explicitly differentiate from sibling tools such as spread_diagonal or ib_find_short_roll.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear prerequisite context: 'Requires TWS or IB Gateway running locally.' It also explains optional filtering by symbols and account, which helps the agent understand when these options are relevant. However, it does not explicitly state when to prefer this tool over alternatives or 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.
ib_portfolioA
Get portfolio positions from Interactive Brokers.
Returns all positions including stocks and options with market prices. Requires TWS or IB Gateway running locally.
Args: port: IB port (7496 for live, 7497 for paper) account: Specific account ID (optional, uses first if not specified)
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| account | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses a key prerequisite (TWS/IB Gateway running locally) and explains the account selection behavior ('uses first if not specified'). It also states the return includes market prices, giving insight into output. No contradiction with annotations exists since none are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the tool's purpose, followed by a short return summary, a prerequisite, and an Args section. Every sentence provides useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, return content, prerequisite, and parameters, but since there is no output schema, it does not detail the exact return shape or error conditions. For a read-only position-getter, this is adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema by explaining the port values ('7496 for live, 7497 for paper') and the optionality/behavior of the account parameter. This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' with resource 'portfolio positions' from Interactive Brokers, and clarifies it returns all positions with stocks/options and market prices. This clearly differentiates from siblings like ib_portfolio_action_report, which concerns action reports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context: it returns portfolio positions and requires TWS or IB Gateway running locally. It does not explicitly mention alternatives, but the description of the tool is sufficient to infer when to use it. The optional account parameter is also clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_portfolio_action_reportA
Analyze portfolio positions with earnings dates and risk assessment.
Fetches positions, groups into spreads, categorizes by urgency, and returns structured analysis with recommendations. Requires TWS or IB Gateway running locally.
Args: port: IB port (7496 for live, 7497 for paper) account: Specific account ID (optional)
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| account | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It describes the process (fetches, groups, categorizes, returns) and the local gateway requirement, but does not explain error handling, side effects, or detailed behavior beyond the high-level steps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose. It then adds process details, a prerequisite, and parameter guidance, with no wasted words. The structure is clean and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description gives a reasonable overview but lacks specific details about the output format or content beyond 'structured analysis with recommendations.' This may be sufficient for basic understanding but leaves gaps for an agent needing to invoke or interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description's parameter explanations are critical. It adds valuable meaning by specifying port values (7496 live, 7497 paper) and clarifying account as optional. This goes well beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Analyze') and resource ('portfolio positions'), and further details the pipeline (fetches, groups, categorizes) and output (structured analysis with recommendations). This distinguishes it from sibling tools like ib_portfolio or risk_assessment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a clear prerequisite ('Requires TWS or IB Gateway running locally') but does not explicitly state when to use this tool versus alternatives or when not to use it. Usage is implied by the purpose but not explicitly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_stop_lossA
Analyze and manage downside stop-loss orders for PMCC, naked LEAPS, and stock positions.
Default mode is dry-run — no orders are placed unless execute=True. Stop price = basis × (1 - stop_pct/100). Basis is max(current_mid, avg_cost) normally; current_mid only when forced=True (can lower existing stops). In execute mode: orphan SL_FALL_ orders are cancelled, then new conditional stop orders are placed. PMCC stops use combo BAG orders (atomic LEAPS + shorts). Requires TWS or IB Gateway running locally.
Args: port: IB port (7496 for live, 7497 for paper) account: Specific account ID (optional) symbols: Comma-separated symbols to filter (optional, e.g. 'NVDA,QQQ') stop_pct: Loss % that triggers exit (default 40) short_near_strike_pct: Alert when spot is within this % of short strike (default 5) price_mode: Option pricing — 'mid' (bid+ask)/2 or 'last' execute: Place conditional stop-loss orders (default False = dry-run) forced: Use current mid as basis, can lower existing stops (requires execute=True)
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| forced | No | ||
| account | No | ||
| execute | No | ||
| symbols | No | ||
| stop_pct | No | ||
| price_mode | No | mid | |
| short_near_strike_pct | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses dry-run default, stop price formula, basis choice, forced behavior, cancellation of orphan orders, combo BAG orders, and prerequisite. This is rich behavioral context beyond just 'places stop-loss orders.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but well-structured; the formula and arg list are efficient. No filler sentences; each sentence adds operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 params and no annotations, the description covers purpose, behavior, formula, prerequisites, and all args. It doesn't detail return values, but no output schema exists and the behavior is sufficiently described for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, so description compensates fully. It explains each parameter's purpose, format, defaults, and relationships (e.g., forced requires execute=True). This adds significant meaning beyond the schema's titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Analyze and manage downside stop-loss orders for PMCC, naked LEAPS, and stock positions' — a specific verb+resource+scope. It clearly differentiates from sibling tools like ib_trailing_stop by specifying position types and downside protection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states default dry-run mode and when execute=True is required, and mentions prerequisites (TWS running). It doesn't explicitly name alternative tools, but the context makes usage clear for downside stop-loss management. It lacks explicit exclusions but provides sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_trades_historyA
Fetch trade executions from Interactive Brokers.
Returns individual trade executions with fills, commissions, and realized P&L, plus aggregated summary by symbol. Uses live API (~7 days history) by default, or FlexReport for full history when token and query ID are provided. Requires TWS or IB Gateway running locally.
Args: port: IB port (7496 for live, 7497 for paper) account: Specific account ID (optional, fetches all if not specified) symbol: Filter trades by symbol (e.g., AAPL) start_date: Start date in YYYY-MM-DD format (default: Jan 1 of current year) end_date: End date in YYYY-MM-DD format (default: today) flex_token: FlexReport token for extended history beyond ~7 days flex_query_id: FlexReport query ID (required with flex_token). Pass a list of IDs to merge and deduplicate results from multiple queries — useful for spans exceeding the FlexReport 365-day per-query limit.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| symbol | No | ||
| account | No | ||
| end_date | No | ||
| flex_token | No | ||
| start_date | No | ||
| flex_query_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full weight for behavioral disclosure. It covers key behaviors: the 7-day default limit, the FlexReport fallback, the local gateway requirement, and the merging/deduplication of multiple query IDs. However, it doesn't mention error conditions or authentication details, though 'Fetch' implies a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-sentence purpose, a brief summary of return content, a concise explanation of data sources, and a clear Args block. It is front-loaded with the action and avoids fluff, with each sentence providing necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, no annotations, and 7 parameters, the description is remarkably complete. It explains the two modes, all parameter defaults and formats, the local gateway prerequisite, and the edge case of 365-day limits per FlexReport query. Missing pieces like exact return structure are not critical given the absence of an output schema, and the description provides enough context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description's Args section fully compensates by explaining every parameter: port numbers for live/paper, account behavior when omitted, symbol filtering with example, date formats with defaults, and flex_token/flex_query_id semantics including list merging for 365-day limits. This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Fetch trade executions from Interactive Brokers,' clearly stating a specific verb and resource. It further distinguishes itself by detailing the return content (fills, commissions, realized P&L, aggregated summary) and the two data-source modes (live API vs FlexReport), making it distinct from sibling tools like ib_portfolio_action_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the live API (~7 days history) versus FlexReport (full history) with token and query ID. It also notes the prerequisite of TWS/IB Gateway running locally. While it doesn't explicitly exclude alternatives or compare to siblings, it gives clear context for choosing the appropriate execution path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ib_trailing_stopA
Manage IB native TRAIL orders for stocks and naked LEAPS positions.
Default mode is dry-run — no orders are placed unless execute=True. PMCC positions are excluded; use ib_stop_loss for those. Requires TWS or IB Gateway running locally.
Args: port: IB port (7496 for live, 7497 for paper) account: Specific account ID (optional) symbols: Comma-separated symbols to filter (optional, e.g. 'JOBY,TSLA') trail_pct: Trail amount as % of reference price (default 20, mutually exclusive with trail_amt) trail_amt: Trail amount in dollars (mutually exclusive with trail_pct) price_mode: Option pricing — 'mid' (bid+ask)/2 or 'last' (LEAPS only) execute: Cancel orphan TS_ orders and place new TRAIL orders (default False = dry-run) forced: Cancel and replace existing TS_ orders with current parameters (requires execute=True)
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| forced | No | ||
| account | No | ||
| execute | No | ||
| symbols | No | ||
| trail_amt | No | ||
| trail_pct | No | ||
| price_mode | No | mid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the dry-run default, the effect of execute=True ('Cancel orphan TS_ orders and place new TRAIL orders'), and forced behavior ('Cancel and replace existing TS_ orders with current parameters'). However, it does not describe the return value or what happens to previously placed orders when not forced, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a purpose statement, critical safety note, exclusion/alternative, and a concise parameter list. Every sentence earns its place, and the parameter list is formatted as easy-to-scan items. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter trading tool with no annotations or output schema, the description covers purpose, usage, prerequisites, and parameter semantics thoroughly. It lacks a description of the return value or output format (e.g., what happens after execution), which would make it fully complete. Given the tool's complexity, this is a minor but noticeable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description provides detailed semantic meaning for all 8 parameters, including defaults, examples, mutual exclusivity (trail_pct vs trail_amt), and mode-specific behavior (price_mode 'last' for LEAPS only). This fully compensates for the missing schema descriptions and goes beyond listing names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Manage IB native TRAIL orders for stocks and naked LEAPS positions.' It clearly distinguishes from the sibling tool ib_stop_loss by scoping to stocks/naked LEAPS and explicitly excluding PMCC positions, which is a strong differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Default mode is dry-run — no orders are placed unless execute=True' covers safe invocation, and 'PMCC positions are excluded; use ib_stop_loss for those' names an alternative tool for the excluded case. It also states a prerequisite (TWS or IB Gateway running locally), which is actionable context for when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insider_tradingA
Get insider trading activity (SEC Form 4) for one or more stocks.
Returns transactions with insider name, role, transaction type, shares, price, value, date, and net buying/selling sentiment summary.
Args: symbols: Single ticker or comma-separated list (e.g., 'NVDA' or 'NVDA,PLTR,GOOG') days_back: Trailing days to look back (default 90)
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | ||
| days_back | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It discloses the output content (insider name, role, transaction type, shares, etc.) and the SEC Form 4 source, but does not mention potential limitations like data freshness, rate limits, or geographic scope. The 'Get' verb implies read-only, but it does not explicitly confirm safety or behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose statement, then lists return fields and parameters in a compact, scannable format. Every sentence earns its place with no unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description adequately covers return values (transactions with fields and sentiment summary) and parameter usage. It lacks some contextual details like error handling or data limitations, but for this complexity level, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero schema coverage, the description fully documents both parameters. It explains symbols format ('Single ticker or comma-separated list') and days_back meaning ('Trailing days to look back (default 90)'). This adds significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get insider trading activity (SEC Form 4) for one or more stocks.' It uses a specific verb (Get), names the resource (SEC Form 4 insider trading activity), and distinguishes it from sibling tools like stock_quote or fundamentals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying what data it returns, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. It lacks direct guidance on when to choose this over sibling tools like news_sentiment or fundamentals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_sentimentA
Get recent news headlines for a stock.
Args: symbol: Ticker symbol limit: Number of articles to return (default 10)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it gets headlines but doesn't clarify whether sentiment scores are included despite the tool name 'news_sentiment'. There is no mention of return format, ordering, pagination, or data source, which could mislead an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured: a single purpose sentence followed by a compact, readable argument list. Every word contributes value, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool, the description is mostly adequate, but the mismatch between the tool name ('news_sentiment') and the description ('headlines') leaves a gap about whether sentiment analysis is actually included. Without an output schema, more detail on the response structure and ordering would be valuable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description explains each parameter precisely: 'symbol: Ticker symbol' and 'limit: Number of articles to return (default 10)'. This adds essential meaning beyond the raw type information in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a resource 'recent news headlines' and a clear target 'for a stock'. This distinctly identifies the tool's purpose and differentiates it from sibling tools like stock_quote and fundamentals, which focus on price and financial data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. It simply states what the tool does, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
option_chainA
Get option chain data (calls and puts) for a specific expiration.
Args: symbol: Ticker symbol expiry: Expiration date (YYYY-MM-DD)
| Name | Required | Description | Default |
|---|---|---|---|
| expiry | Yes | ||
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It merely says 'Get option chain data' without describing return format, pagination, error handling, or whether data includes strikes, bid/ask, etc. This adds little beyond the tool name and offers no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: one sentence plus an Args list. Every word earns its place, and the format is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two simple parameters and no output schema, so minimal detail could suffice. However, the description omits any mention of return fields and does not differentiate among many option-related siblings (e.g., ib_option_chain, option_greeks). This leaves the agent with incomplete context for selecting and invoking the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates with an Args section: symbol: Ticker symbol and expiry: Expiration date (YYYY-MM-DD). This adds meaning beyond the schema titles, particularly the date format for expiry. Both parameters are covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get option chain data (calls and puts) for a specific expiration.' This uses a specific verb ('Get'), names the resource ('option chain data'), and scopes it to calls/puts and a specific expiration. It distinguishes from sibling tools like option_expiries (which likely fetches expiration dates) and option_greeks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or when to prefer other siblings like ib_option_chain or spread tools. For an AI agent, this lack of differentiation makes selection ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
option_expiriesB
List available option expiration dates for a symbol.
Args: symbol: Ticker symbol
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'List', which implies a read operation, but does not specify return format, sorting, limitations, or whether any special conditions apply. This minimal disclosure leaves significant behavioral aspects undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, with two clear sentences that cover the tool's purpose and parameter. Every word earns its place, and there is no unnecessary detail or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose and parameter but lacks information about the return format and does not address the existence of similar tools like 'ib_option_expiries'. Given the tool's simplicity and the presence of sibling tools, it is minimally adequate but not fully complete for an agent to make a confident choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's 'symbol' parameter has no description, but the description's 'Args' section clarifies it as 'Ticker symbol'. This adds essential meaning, though it could be more specific about the expected format (e.g., uppercase, exchange suffix), making it clear but slightly incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists option expiration dates for a symbol, with a specific verb and resource. However, it does not differentiate from the sibling tool 'ib_option_expiries', which appears functionally similar, so it loses a point for lack of sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over alternatives like 'ib_option_expiries' or 'option_chain'. There is no mention of context, prerequisites, or exclusions, leaving the agent without direction on choosing between similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
option_greeksA
Calculate option Greeks (delta, gamma, theta, vega) using Black-Scholes.
Computes implied volatility from market price if provided.
Args: spot: Current underlying price strike: Option strike price option_type: 'call' or 'put' expiry: Expiration date (YYYY-MM-DD) - use this OR dte dte: Days to expiration (alternative to expiry) market_price: Option market price (for IV calculation) volatility: Override volatility (decimal, e.g., 0.30) rate: Risk-free rate (default 0.05)
| Name | Required | Description | Default |
|---|---|---|---|
| dte | No | ||
| rate | No | ||
| spot | Yes | ||
| expiry | No | ||
| strike | Yes | ||
| volatility | No | ||
| option_type | Yes | ||
| market_price | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior, and it does provide useful context: computes IV from market_price, allows expiry OR dte, and supports volatility override. However, it omits details about the output format, what happens when both or neither time inputs are provided, and any model assumptions/limitations. This partial disclosure warrants a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a lead sentence, a clarifying note about IV, and a single-line-per-parameter list. It avoids unnecessary fluff, though the Args list is somewhat lengthy—still, each line earns its place given the schema lacks descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 8 parameters, no output schema, and no annotations, so the description bears a heavy burden. It covers inputs well and notes IV computation, but it does not explain the return structure or error/edge cases (e.g., missing both time inputs, conflicting inputs). Given the complexity, a 3 is fair.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no property descriptions (0% coverage), but the description's Args section thoroughly explains every parameter: spot, strike, option_type, expiry vs dte relationship, market_price for IV, volatility format, and rate default. This adds significant meaning beyond the schema, so a 5 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear statement: 'Calculate option Greeks (delta, gamma, theta, vega) using Black-Scholes.' This is a specific verb+resource and distinguishes it from sibling tools like option_chain or spread_* by specifying the exact Greeks and the model. The addition of IV computation further clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not reference any sibling tools or conditions that would favor this tool over option_chain or others beyond the intrinsic purpose. The only conditional language ('if provided') relates to an optional input, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piotroski_scoreA
Calculate Piotroski F-Score (0-9) evaluating financial strength.
Scores 9 fundamental criteria including profitability, leverage, liquidity, and operating efficiency.
Args: symbol: Ticker symbol
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explains the output and criteria, but doesn't disclose whether it requires authentication, how it handles invalid symbols, or any data-source dependencies. It is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core purpose, and uses a clear Args section. Every sentence adds value without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers the essential aspects: what the score measures, the range, and the input. It doesn't detail the return format or error behavior, but it is sufficiently complete for a simple financial calculator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides the title 'Symbol' with no description, but the tool description adds 'Ticker symbol', clarifying the expected value. This is a meaningful improvement over the schema, though it could give examples or formatting hints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Calculate') and resource ('Piotroski F-Score'), clearly stating the metric's range (0-9). It distinguishes itself from sibling tools like fundamentals or stock_quote by naming the unique scoring methodology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the tool evaluates financial strength, which implies its use case. However, it doesn't explicitly mention alternatives or when not to use it, lacking exclusions that would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_correlationA
Compute price correlation matrix between multiple symbols.
Useful for portfolio diversification analysis.
Args: symbols: Comma-separated ticker symbols (minimum 2) period: Historical period (1mo, 3mo, 6mo, 1y)
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 3mo | |
| symbols | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It states the core computation ('compute price correlation matrix') and implies a return value (the matrix), but does not explicitly mention side effects, data source, or error handling. For a simple calculation tool, this is adequate but not rich in behavior detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two clear sentences and a terse Args list. It front-loads the main purpose, then adds supporting detail without redundancy. Every sentence earns its place, and the structure is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being a simple tool, the description covers the core functionality, output type (correlation matrix), and parameter details. It does not mention edge cases or return format nuances, but given the absence of an output schema and the tool's simplicity, the description is sufficiently complete for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions for the two parameters, but the description compensates by specifying the format for symbols ('comma-separated ticker symbols'), the minimum count ('minimum 2'), and the allowed values for period ('1mo, 3mo, 6mo, 1y'). This goes beyond the schema's structural details and gives the agent the information needed to invoke the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Compute price correlation matrix between multiple symbols,' which is a specific verb+resource pair that clearly distinguishes it from sibling tools like price_history or risk_assessment. The mention of 'multiple symbols' further clarifies its scope and differentiates it from single-symbol tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Useful for portfolio diversification analysis' provides clear contextual guidance for when to use the tool. However, it does not explicitly state when not to use it or name alternative tools, though the context is sufficient to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_historyB
Get historical OHLCV price data.
Args: symbol: Ticker symbol period: Time period (1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max) interval: Data interval (1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo)
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 1mo | |
| symbol | Yes | ||
| interval | No | 1d |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description alone must disclose behavioral traits. It only states the basic function and provides parameter examples, failing to mention data source, return format, pagination, or limitations. This is a minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. It uses a clear Args structure to enumerate parameters, with no extraneous words. It could be considered under-specified but is efficient for the information it contains.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should compensate by explaining return values or data quirks. It does neither. The tool has three parameters and potential interval constraints (e.g., not all intervals available for all periods) that are omitted, leaving the agent with incomplete context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite a schema coverage of 0%, the description adds significant meaning by listing concrete allowed values for 'period' and 'interval' (e.g., '1d', '5d', '1mo'), which the schema lacks. It provides useful enumeration for all three parameters, though it does not explain the relationship between period and interval.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Get historical OHLCV price data') with a specific resource (price data). It distinguishes itself from real-time quote tools like stock_quote by emphasizing 'historical', though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its many siblings (e.g., stock_quote, technical_indicators, price_correlation). There is no context for selecting among them, nor any mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_stockA
Generate comprehensive stock analysis data with trend, PMCC, and fundamental analysis.
Returns detailed data including bullish score, PMCC viability, fundamentals, Piotroski F-Score, spread strategies, and an overall recommendation.
Args: symbol: Ticker symbol (e.g., AAPL, MSFT)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of explaining behavior. It describes the return data in detail (bullish score, PMCC viability, etc.), which clarifies that this is an analysis/report tool. However, it does not mention whether any state changes occur, whether it places orders, authentication requirements, or potential side effects. The description is not misleading but leaves behavioral edges unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and well-structured. It opens with the primary purpose, follows with a bulleted-like list of returned data (though not literally bullets), and ends with parameter documentation. Every sentence adds value, and the length is appropriate for the tool's complexity. It could be slightly more polished by using bullet points, but it is concise and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's broad scope and lack of output schema, the description lists the key return components, which gives a good sense of what to expect. However, it does not mention input validation, error conditions, or any prerequisites (e.g., data availability). The sibling set is large, and while the description clearly positions this as the comprehensive report, it does not explicitly link to alternative tools. Overall, the description is adequate for a 1-parameter tool but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% in the input schema, so the description must document parameters. It does so effectively: 'symbol: Ticker symbol (e.g., AAPL, MSFT)' provides both meaning and an example. For a single-parameter tool, this fully compensates for the schema's lack of description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates comprehensive stock analysis data including trend, PMCC, and fundamental analysis. It lists specific output components (bullish score, PMCC viability, fundamentals, Piotroski F-Score, spread strategies, overall recommendation), which gives a precise sense of the tool's scope and differentiates it from sibling tools like fundamentals or piotroski_score that cover single aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is a one-stop report tool ('Generate comprehensive stock analysis data'), suggesting use when a broad overview is needed. However, it does not explicitly state when to prefer this over the specialized sibling tools (e.g., use fundamentals for just fundamentals) or provide any exclusion criteria. The guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
risk_assessmentA
Assess risk metrics including volatility, beta, VaR, and drawdown.
Args: symbol: Ticker symbol period: Analysis period (default 1y) position_size: Optional position size in dollars for position-specific metrics
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 1y | |
| symbol | Yes | ||
| position_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description should disclose behavioral traits. It does add context like position_size for 'position-specific metrics' and lists computed outputs, but it doesn't state read-only nature, data sources, potential errors, or any side effects. This is average disclosure for a read-only analytics tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single purposeful sentence plus a clean Args list. No redundant or filler text; every sentence earns its place and is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite missing output schema, the description names the key metrics returned, giving a reasonable expectation of output contents. It covers all parameters and their purpose, but lacks detail on output format, units, or edge cases. For a straightforward analysis tool, this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. The Args section clarifies each parameter: symbol as ticker, period with default, and position_size as optional dollars for position-specific metrics. This adds meaning beyond the bare schema, though it could specify period format options or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Assess risk metrics including volatility, beta, VaR, and drawdown', which uses a specific verb and resource, and enumerates distinctive output metrics. This clearly differentiates it from siblings like price_history, fundamentals, and option chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or alternative guidance. The context 'risk metrics' implies use for risk analysis, but no exclusions or comparisons to sibling tools are provided. It is a clear but implicit usage cue, not a strong guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_bullishA
Scan symbols for bullish trends using SMA, RSI, MACD, ADX.
Returns top N symbols ranked by composite bullish score.
Args: symbols: Comma-separated ticker symbols top_n: Number of top symbols to return (default 30) period: Historical period (1mo, 3mo, 6mo)
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | ||
| period | No | 3mo | |
| symbols | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses that it returns top N ranked symbols and lists the technical indicators used, but it does not cover error handling, data source caveats, or explicitly confirm it is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence gives the core purpose, the second summarizes the output, and the Args block provides structured parameter details. Every sentence earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's straightforward nature (3 flat parameters, no nested schemas, no output schema), the description covers the essential inputs, output, and methodology. However, the lack of annotations and absence of a detailed return-value format (e.g., whether scores are included alongside symbols) leave minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% property description coverage, leaving the description's Args section as the only source of parameter meaning. It fully compensates by explaining that symbols are comma-separated, top_n controls the count, and period supports 1mo/3mo/6mo, giving clear semantic context for each field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Scan symbols for bullish trends') with the methodology (SMA, RSI, MACD, ADX) and the output (top N by composite score). This clearly distinguishes it from sibling scanners like scan_pmcc and whale_hunting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage for scanning symbols to find bullish trends, but it does not explicitly state when to choose this over alternatives like technical_indicators or scan_pmcc. No alternatives are mentioned and no exclusions are given, so the guidance remains at an implied level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_pmccA
Scan symbols for Poor Man's Covered Call suitability.
Analyzes LEAPS and short call options for delta, liquidity, spread tightness, IV, and yield.
Args: symbols: Comma-separated ticker symbols min_leaps_days: Minimum days for LEAPS expiry (default 270) leaps_delta: Target delta for LEAPS (default 0.80) short_delta: Target delta for short call (default 0.20)
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | ||
| leaps_delta | No | ||
| short_delta | No | ||
| min_leaps_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool 'scans' and 'analyzes' but does not disclose whether it is read-only, requires authentication, has rate limits, or what side effects (if any) exist. While scanning is implicitly non-destructive, this is not stated explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: a one-sentence summary, a brief analysis-criteria list, and an Arg list. Every sentence adds value, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately complex tool with 4 parameters and no output schema, the description covers purpose, analysis criteria, and parameter semantics. It does not describe the return format or what a 'suitable' result looks like, but the absence of an output schema and the clear functional scope make this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates thoroughly with an Args block. It explains that symbols are comma-separated, defines each delta/days parameter with defaults, and adds meaning beyond the schema's bare property names and default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Scan symbols for Poor Man's Covered Call suitability.' It clearly names the strategy (PMCC) and the criteria analyzed (delta, liquidity, spread tightness, IV, yield), which distinguishes it from sibling scan tools like scan_bullish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on what the tool does (suitability scan for PMCC) but does not explicitly state when to use it over alternative scanning tools or mention any exclusions. The criteria imply usage, but no alternatives or when-not scenarios are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spread_diagonalA
Analyze diagonal spread (different expiries and strikes).
Includes Poor Man's Covered Call/Put analysis.
Args: symbol: Ticker symbol option_type: 'call' or 'put' long_expiry: Long leg expiration (YYYY-MM-DD) long_strike: Long leg strike short_expiry: Short leg expiration (YYYY-MM-DD) short_strike: Short leg strike
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| long_expiry | Yes | ||
| long_strike | Yes | ||
| option_type | Yes | ||
| short_expiry | Yes | ||
| short_strike | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the tool 'analyzes' but does not describe what the output contains, whether it calculates profit/loss, Greeks, or other metrics, or any side effects. The inclusion of PMCC adds context but not behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear introductory sentence followed by a structured argument list. Every sentence is purposeful with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately complex options analysis tool with no output schema or annotations, the description is incomplete. It lacks details about what the analysis returns (e.g., profit/loss scenarios, Greeks, breakeven points), which would be essential for an agent to invoke it correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates by listing all six parameters with brief explanations. It adds valuable details like option_type being 'call' or 'put' and date format YYYY-MM-DD. However, it does not clarify the relationship between long/short legs beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes diagonal spreads with different expiries and strikes, and explicitly mentions Poor Man's Covered Call/Put analysis. This distinguishes it from sibling spread tools like spread_vertical or spread_strangle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for diagonal spreads and PMCC analysis, giving clear context for when to select this tool. It does not explicitly state when not to use it or contrast with alternatives, but the mention of specific spread types provides adequate situational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spread_iron_condorA
Analyze iron condor (sell strangle + buy protective wings).
Args: symbol: Ticker symbol expiry: Expiration date (YYYY-MM-DD) put_long: Long put strike (lowest) put_short: Short put strike call_short: Short call strike call_long: Long call strike (highest)
| Name | Required | Description | Default |
|---|---|---|---|
| expiry | Yes | ||
| symbol | Yes | ||
| put_long | Yes | ||
| call_long | Yes | ||
| put_short | Yes | ||
| call_short | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden. It only says 'Analyze' without revealing what the analysis produces (e.g., max profit/loss, breakevens, greeks), whether it uses market data, or any side effects. This is a significant gap for a financial analysis tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single defining sentence followed by a clean argument list with one-line meanings. Every element is useful and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a complex options strategy analysis with 6 parameters, no output schema, and no annotations, yet the description offers no explanation of the analysis results, return format, or use case context. It is too minimal for an agent to know what to expect as output or how to validate the trade.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the parameter descriptions in the Args section add meaning: symbol, expiry format, and strike order (lowest to highest) for the four strikes. This compensates for the bare schema, though it could include more detail like units or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Analyze' with a clear resource 'iron condor' and even defines the structure ('sell strangle + buy protective wings'), which distinguishes it from sibling tools like spread_strangle and spread_vertical.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing iron condor spreads by naming the strategy and parameters, but it does not explicitly state when to prefer this tool over alternatives or provide exclusion criteria. There is no guidance on comparing to similar spread tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spread_straddleC
Analyze long straddle (buy call + put at same strike).
Args: symbol: Ticker symbol expiry: Expiration date (YYYY-MM-DD) strike: Strike price for both legs
| Name | Required | Description | Default |
|---|---|---|---|
| expiry | Yes | ||
| strike | Yes | ||
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. The term 'Analyze' is vague and does not state whether the tool is read-only, what outputs are produced, or any side effects. There is no information about return format, data source, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences plus an argument list. It is front-loaded with the core purpose and includes necessary parameter type hints (date format). Every word earns its place, though the brevity leaves out behavioral details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and only 3 basic parameters, the description is incomplete. It does not explain what 'Analyze' returns (e.g., profit/loss, risk metrics), nor does it state any prerequisites or limitations. A user would have no idea what data or results to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description compensates by providing brief explanations for all three parameters: 'Ticker symbol', 'Expiration date (YYYY-MM-DD)', and 'Strike price for both legs'. The strike description adds value by clarifying it applies to both legs, though the explanations are otherwise minimal and match the obvious schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it analyzes a long straddle (buy call + put at same strike), which is a specific verb+resource. It distinguishes itself from sibling spread tools by specifying the long straddle strategy and the same-strike requirement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternative spread tools (e.g., spread_strangle, spread_vertical). The description only implies usage for long straddle analysis, with no exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spread_strangleA
Analyze long strangle (buy OTM call + OTM put).
Args: symbol: Ticker symbol expiry: Expiration date (YYYY-MM-DD) put_strike: Put strike (below current price) call_strike: Call strike (above current price)
| Name | Required | Description | Default |
|---|---|---|---|
| expiry | Yes | ||
| symbol | Yes | ||
| put_strike | Yes | ||
| call_strike | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only states 'Analyze long strangle' without disclosing what the analysis includes, return format, or side effects. It provides no behavioral context beyond the tool's name, such as whether it uses current market data or outputs risk metrics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a one-sentence purpose and a well-formatted args list. Every line serves a purpose; the parameter details are included because the schema lacks them, so the length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and parameter semantics but omits any description of the output or return value, which is critical given there is no output schema. It also lacks usage exclusions or comparisons to siblings, leaving the overall context incomplete for selecting this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (0% coverage), but the description compensates by explaining each parameter: symbol as ticker, expiry in YYYY-MM-DD, and strikes relative to current price (put below, call above). These details add meaning beyond the schema's bare types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Analyze long strangle (buy OTM call + OTM put)', providing a specific verb and resource. This distinguishes it from sibling tools like spread_straddle and spread_vertical, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage for long strangle analysis, giving clear context. However, it does not explicitly mention when not to use or compare to alternatives, stopping just short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spread_verticalB
Analyze vertical spread (bull/bear call/put spread).
Args: symbol: Ticker symbol expiry: Expiration date (YYYY-MM-DD) option_type: 'call' or 'put' long_strike: Strike price for long leg short_strike: Strike price for short leg
| Name | Required | Description | Default |
|---|---|---|---|
| expiry | Yes | ||
| symbol | Yes | ||
| long_strike | Yes | ||
| option_type | Yes | ||
| short_strike | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden for behavioral disclosure. It only says 'Analyze' implying a read-only operation, but lacks details on return format, potential side effects, rate limits, or any special requirements. The parameter list touches on argument semantics but does not cover behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose, followed by a structured argument list. It is appropriately sized for the tool, with no redundant fluff, though the argument list could be formatted with a table or bullet points for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters and no output schema, so the description should explain what analysis results are returned, how to interpret them, and when to use it relative to other spread tools. None of that is present, making the description barely minimally viable for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description's parameter list is essential. It provides brief but clear meanings for all 5 parameters, including format for expiry and enum for option_type. This adds value beyond the bare schema, though it could enrich strike price descriptions with ordering relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Analyze vertical spread' which clearly identifies the operation and resource. It distinguishes from sibling tools by specifying the spread type (vertical vs diagonal, straddle, etc.), though it could be more explicit about the analysis output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. With over 30 sibling tools including other spread strategies, the description provides no decision context or exclusions, leaving the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_quoteB
Get real-time stock quote with price, volume, change, and key metrics.
Args: symbol: Ticker symbol (e.g., AAPL, MSFT)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It mentions 'real-time' and lists metrics but does not disclose data freshness, rate limits, error behavior for invalid symbols, or return structure. As a read-only tool, it lacks any caution about response nuances or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary purpose and uses a compact structure. The Args block is slightly redundant with the schema but adds examples, so it earns its place. Zero filler words, though it could be expanded with behavioral details without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), and the description covers the core functionality and return content (price, volume, change, key metrics). However, without an output schema, it doesn't specify the response format or field types, and there's no mention of edge cases or data source. This is adequate for a basic tool but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only 'Symbol' as a title with 0% description coverage. The description adds meaning with 'Ticker symbol (e.g., AAPL, MSFT)' — clarifying it's a ticker and giving concrete examples. While minimal, this fully compensates for the single parameter's schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Get real-time stock quote with price, volume, change, and key metrics.' It distinguishes from siblings like price_history (historical data) and fundamentals (deep dive), positioning itself as the real-time snapshot tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention exclusions (e.g., for historical data use price_history) or conditions like needing a valid symbol. The description implies usage ('get quote') without context on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
technical_indicatorsA
Compute technical indicators for a stock.
Args: symbol: Ticker symbol or comma-separated list period: Historical period (1mo, 3mo, 6mo, 1y) indicators: Comma-separated indicators (rsi, macd, bb, sma, ema, atr, adx) include_earnings: Include earnings data
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 3mo | |
| symbol | Yes | ||
| indicators | No | rsi,macd,bb,sma,ema,atr,adx | |
| include_earnings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the action and parameters, without revealing what the output looks like, whether it returns structured data, or any limitations (e.g., data source, latency). This is a significant gap for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a well-structured docstring with a one-sentence purpose followed by a compact Args list. Every line adds value, with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers how to invoke the tool with all parameters, but lacks information about the return format or output structure. Since there is no output schema and no annotations, this is a notable omission for an agent that needs to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates thoroughly by explaining each parameter's meaning and providing allowed values (e.g., period options '1mo, 3mo, 6mo, 1y' and indicator list). This goes well beyond the bare schema properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Compute technical indicators for a stock.' This is a specific verb+resource combination that distinguishes it from sibling tools like stock_quote or price_history, which serve different data retrieval purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or specific use cases, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whale_huntingA
Detect institutional whale option activity for a given underlying.
Uses a two-step approach:
Crude scan via Yahoo Finance — finds contracts with anomalous daily investment.
Precise drill-down via Massive API — per-second bars for each candidate.
Requires MASSIVE_API_KEY environment variable for per-second data. Falls back to Yahoo-only daily data if unavailable.
Args: symbol: Underlying ticker (e.g. AAPL, NVDA, SPY) max_months: Max months until expiration to consider (default 2) trading_date: Date to analyze YYYY-MM-DD (default: latest trading day) sigma_z: Modified Z-Score threshold for outlier detection (default 3.5) summary: If True, include per-ticker aggregate summary in result
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| sigma_z | No | ||
| summary | No | ||
| max_months | No | ||
| trading_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the underlying mechanism (Yahoo Finance scan followed by Massive API drill-down), environment variable requirement, and fallback to daily data if the API key is unavailable. This gives a good sense of the tool's safety and dependency profile, though it stops short of describing the output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a clear one-liner, a brief process explanation, a requirement note, and a parameter list. Every sentence adds value and is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex analysis tool with no annotations or output schema, the description covers the operation flow, dependencies, and all parameters, but it doesn't explain the return value format beyond the optional summary flag. This is a notable omission but the overall context is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions, but the description includes an 'Args' section that explains every parameter: symbol, max_months, trading_date, sigma_z, and summary, including defaults and formats. This fully compensates for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Detect institutional whale option activity for a given underlying,' providing a specific verb and resource. The two-step approach further distinguishes it from sibling option tools like option_chain and option_greeks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies its usage context: identifying unusual institutional option activity, and it specifies prerequisites (MASSIVE_API_KEY) and fallback behavior. However, it doesn't explicitly compare with alternative tools or state 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
35 tool updates
v0.17.1- First observed
earnings_calendar - First observed
fundamentals - First observed
get_version - First observed
ib_account - First observed
ib_collar - First observed
ib_delta_exposure - First observed
ib_find_short_roll - First observed
ib_option_chain - First observed
ib_option_expiries - First observed
ib_pmcc_advisor - First observed
ib_portfolio - First observed
ib_portfolio_action_report - First observed
ib_stop_loss - First observed
ib_trades_history - First observed
ib_trailing_stop - First observed
insider_trading - First observed
news_sentiment - First observed
option_chain - First observed
option_expiries - First observed
option_greeks - First observed
piotroski_score - First observed
price_correlation - First observed
price_history - First observed
report_stock - First observed
risk_assessment - First observed
scan_bullish - First observed
scan_pmcc - First observed
spread_diagonal - First observed
spread_iron_condor - First observed
spread_straddle - First observed
spread_strangle - First observed
spread_vertical - First observed
stock_quote - First observed
technical_indicators - First observed
whale_hunting
TDQS
Most tools have distinct purposes, with clear separation between Yahoo-based data tools and IB-specific tools via the ib_ prefix. Spread strategies are individually named, reducing confusion, though pairs like option_expiries and ib_option_expiries require attention to the source.
Naming is mixed: some tools use noun-style (stock_quote, price_history), others verb-style (get_version, scan_bullish), and IB tools consistently use the ib_ prefix. While readable, there is no uniform verb_noun or noun_verb pattern across the entire set.
At 35 tools, the surface is quite large. Several highly specialized tools (e.g., each spread type as a separate tool) could be consolidated, making the set feel bloated for agent navigation, even for a broad trading domain.
The server covers market data, fundamentals, technicals, options strategies, portfolio analysis, and IB account management well. Minor gaps exist, such as generic trade execution, but the analysis and risk management workflows are largely complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Global stock research, ML forecasts, valuation signals, screeners & portfolio tracking in Claude
Connect your portfolio to Claude, ChatGPT, or Codex to analyze it and make smarter investments.
90+ free tools, Claude & ChatGPT: prices, options, SEC filings, 13F, insider, congress, transcripts.
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides a comprehensive suite of 20 tools for cryptocurrency trading and technical analysis across 100+ exchanges like Binance and MEXC via CCXT. It enables users to execute orders, track positions, and scan for market opportunities through Claude Desktop using natural language.2021MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude AI to Interactive Brokers accounts to enable real-time portfolio tracking, position management, and historical market data retrieval. It also integrates financial news and sentiment analysis from multiple sources, including Finnhub and IB native feeds.MIT
- AlicenseAqualityDmaintenanceReal-time financial superpowers for Claude. Live crypto prices, US and Indian NSE stock quotes, full portfolio P\&L, Bittensor/TAO network stats, Fear & Greed index with 7-day history, top movers and global market overview. 8 tools. Zero API keys needed. Free to install.8MIT
- AlicenseNot gradedqualityCmaintenanceConnects your TastyTrade trading account to AI assistants like Claude Desktop and ChatGPT for conversational trading and portfolio management.5MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/staskh/trading_skills'
If you have feedback or need assistance with the MCP directory API, please join our Discord server