Crypto Options Desk MCP
This server is an MCP tool surface for quant crypto-options analytics, letting AI agents pull live Bybit market data and portfolio insights to produce desk-style research and trade memos.
Options flow analytics: gamma exposure (GEX), vanna, flow/put-call ratios, volatility skew, and vol surface diagnostics.
Technical and market data: indicators (RSI, MACD, ATR, Bollinger), historical klines, and full options chain data.
Sentiment and positioning: long/short ratios, open interest trends, and funding rate analysis.
Portfolio analytics: aggregate Greeks, scenario P&L, and existing multi-leg strategy classification.
Vol-selling signals: IV-RV spread and covered-call go/no-go evaluation with recommended strikes.
Strategy analysis: ranked straddles, strangles, and vertical spreads.
User positions (API-key gated): live option/all positions with PnL, plus read-only deterministic position monitoring (CLOSE/HOLD/REVIEW) and monitoring history.
Meta: server info with tool count and categories.
Read-only by default: analytics only; no order placement or modification.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Crypto Options Desk MCPGive me a BTC options market memo for today."
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.
Crypto Options Desk MCP
A Model Context Protocol (MCP) server that gives an LLM agent one typed, audited, read-only-by-default tool surface over a quant crypto-options desk's analytics: gamma exposure, vanna, skew, vol surface, options flow, technicals, portfolio greeks, scenario analysis, vol-selling signals, and live positions.
Point Claude (Desktop or Code) at it and ask "give me a BTC options market memo" — the agent calls the tools itself and reasons over real Bybit data.
What it actually does, end to end: the LLM drives the whole desk. It calls the flow tools (GEX, vanna, skew, vol surface) to read dealer positioning, the sentiment/funding/OI tools to read the crowd, the technicals for trend, and the IV-RV / vol-selling / strategy tools to find an edge — then it cross-checks those numbers against each other and writes a trader-grade memo: regime call, the structural shifts that matter, defined-risk trade ideas with strikes/breakevens, an allocation, and a risk checklist. With a read-only API key it also pulls your live book and folds current positions into the same analysis. The math is identical to what the (private) strategy bots run — the agent just narrates and reasons over it.
See the examples/ folder for real outputs: full market memos from both Claude and Codex
(*_market_analysis_2026-06-07.md) and the delta updates they produced ~11h later
(*_market_analysis_2026-06-08.md) — each diffs the new snapshot against the prior one (spot, IV, GEX,
funding, OI) and tells you what changed and why it matters, not just where the market is.
Extracted from a private multi-strategy trading desk. This is the analytics surface only — no strategy signals, thresholds, or alpha. The server is a thin facade; all math lives in the bundled libraries (
options_lib,indicators_lib,portfolio_lib,bybit_api) — the same code the (private) strategy bots import directly. One implementation, surfaced two ways.
Contents
Use with Claude (Desktop & Code)
API key setup (optional)
Related MCP server: Crypto Options Desk MCP
Install
Requires Python ≥ 3.11.
# with uv (recommended)
uv venv && uv pip install -e .
# or plain pip
pip install -e .This installs the trading-mcp console command (it speaks MCP over stdio).
Multi-asset scanner
The read-only web scanner is a separate research interface. It discovers active Bybit option assets, builds an observed/interpolated volatility surface, prices defined-risk long call/put candidates, and shows market-versus-model edge after configurable costs.
The read-only API also exposes GET /api/v1/surfaces/{asset} for a surface
summary and POST /api/v1/scenarios for price/IV/time P&L scenarios. The API
keeps model-status metadata for programmatic consumers; the scanner UI focuses
on candidates with positive model edge after costs.
uvicorn options_app.api:create_app --factory --reloadOpen http://127.0.0.1:8000/. The screen focuses on candidates with positive
model edge after costs and has no order buttons. Historical EV validation is
available separately through options_lib.ev_validation.validate_backtest.
The evidence helper can be used on timestamped outcomes with
options_lib.ev_validation.validate_backtest.
The web app also includes historical options backtesting with explicit exit
rules, top-of-book execution costs, trade-level results, unresolved signals,
and train/holdout evidence. Configure OPTIONS_BACKTEST_ARCHIVE with a
prospectively captured JSONL archive before calling POST /api/v1/backtests.
See docs/options-backtest.md for setup and the
optional NautilusTrader catalog bridge.
The Position Monitoring workspace is available from the sidebar at
#monitoring. Its primary choices are dropdowns for asset, category, observed
symbol, and policy preset. The workspace first bootstraps from REST and then
uses the server-owned Bybit private WebSocket to track positions, orders, and
executions live. It displays deterministic CLOSE, HOLD, or REVIEW
decisions and stores immutable reports in SQLite. The WebSocket endpoint is
/api/v1/positions/stream; the existing POST /api/v1/positions/monitor
endpoint remains available for one-shot API clients. Both paths are read-only:
they never submit or close an order; a CLOSE result is a manual instruction
that requires human confirmation. Private Bybit credentials are required for
live monitoring.
Historical option data is intentionally split by data quality. The
BybitPublicClient.get_option_mark_price_history() method downloads historical
mark-price candles per option symbol. For complete bid/ask, IV, Greeks, OI, and
volume, use BybitOptionSnapshotCollector to capture ticker snapshots
prospectively and JsonlOptionSnapshotArchive to persist/replay them. Bybit's
public ticker API is latest-only, so the project does not fabricate a
historical full-chain snapshot from current data. See
docs/option-history.md.
During a scan, the Terminal prints [OPTIONS] progress lines for instrument
discovery, ticker loading, market-data normalization, scanner execution, and
the final result. Use --log-level info if your Uvicorn configuration hides
informational logs.
The same progress is shown in the UI's Terminal tiến trình panel while a
scan is running.
The API allows local frontend origins (localhost and 127.0.0.1) by default.
If the UI is hosted on another origin, configure it as a comma-separated list:
OPTIONS_APP_CORS_ORIGINS=https://your-frontend.example.com uvicorn options_app.api:create_app --factorySmoke-test it:
trading-mcp # starts the server (Ctrl-C to stop) — no output is normal; logs go to a file
pytest # after: pip install -e ".[dev]"Use with Claude
The server communicates over stdio, so any MCP client launches it as a subprocess.
Claude Desktop
Edit your MCP config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"trading-mcp": {
"command": "trading-mcp"
}
}
}If trading-mcp isn't on Claude's PATH, use the venv's absolute path instead:
{
"mcpServers": {
"trading-mcp": {
"command": "/abs/path/to/trading-mcp/.venv/bin/trading-mcp"
}
}
}Or run it as a module (no console script needed):
{
"mcpServers": {
"trading-mcp": {
"command": "/abs/path/to/.venv/bin/python",
"args": ["-m", "mcp_trading"]
}
}
}Restart Claude Desktop — you'll see the 🔌 tools appear. Try: "Use trading-mcp to analyze BTC gamma exposure and the vol surface, then summarize the regime."
Claude Code (CLI)
# from anywhere, register the installed command
claude mcp add trading-mcp -- trading-mcp
# or pin to a specific venv / module form
claude mcp add trading-mcp -- /abs/path/to/.venv/bin/python -m mcp_trading
# with an API key for the position tools (see below)
claude mcp add trading-mcp --env BYBIT_API_KEY=xxx --env BYBIT_API_SECRET=yyy -- trading-mcp
claude mcp list # verify it's connectedThen in a Claude Code session: "call get_gex_analysis for ETH and explain the key levels."
Keep the session rolling
The single biggest win: don't treat each query as one-shot. Keep one long-lived chat and let market data accumulate in it over time. A single snapshot tells the model where the market is; a session that has seen several snapshots tells it where the market is going — and that's where the analysis gets sharp.
Why it works:
Deltas beat levels. "IV is 93%" is noise; "ETH IV went +6.6 pts into an up-move while GEX short gamma halved" is a tradable signal. The model can only compute that second sentence if the earlier snapshot is still in context. See the
2026-06-08example memos — they're entirely a diff against the2026-06-07snapshot taken ~11h earlier.Positions get tracked in time. Re-run the position tools (or paste your book) into the same session and the agent follows each leg across snapshots — PnL drift, greeks decay, whether the original thesis still holds, when premium has bled enough to exit. It remembers what it recommended and grades it.
Theses carry forward. The trade ideas, strikes, and risk levels from the first memo become the reference frame for the next one ("the ETH put-spread thesis is stronger now — wider premium, less short gamma, price lifted off support"), instead of starting cold every time.
Practical loop:
Start a memo: "pull BTC + ETH flow, sentiment, technicals, IV-RV and write a market memo."
Hours/days later, in the same chat: "re-pull everything and give me a delta update vs the last snapshot — what changed, and does it change the trade?"
With an API key add: "also pull my positions and track them against the thesis."
A real multi-day position-tracking history (Claude following a book across snapshots) is published here:
→ https://claude.ai/share/cdb4169c-2656-42b9-99e1-6b6b23469ace
Example outputs
The examples/ folder holds real, unedited memos generated through this server:
File | What it is |
Full BTC/ETH options memo — snapshot, IV-RV edge, GEX structure, ranked trade ideas | |
Same day via Codex — straddle/strangle picks with strikes, breakevens, allocation | |
Delta update ~11h later — a | |
Codex delta update — re-ranked trades, updated allocation, risk controls |
The 06-08 files only exist because the 06-07 snapshot was still in the session — that's the rolling
workflow above, captured on disk.
API key setup (optional)
Most tools need no credentials — GEX, vanna, skew, flow, vol surface, indicators, klines, funding, OI, options chain, IV-RV, and all strategy-analysis tools use Bybit public market data.
The user-position tools and the read-only monitor_positions tool require a
Bybit API key. A read-only key is enough and recommended.
Provide the key by env var (BYBIT_API_KEY, BYBIT_API_SECRET) any of these ways:
# 1) .env file (copy the template, fill in)
cp .env.example .env
# 2) inline in the Claude Desktop config
# "trading-mcp": { "command": "trading-mcp",
# "env": { "BYBIT_API_KEY": "xxx", "BYBIT_API_SECRET": "yyy" } }
# 3) Claude Code flags
claude mcp add trading-mcp --env BYBIT_API_KEY=xxx --env BYBIT_API_SECRET=yyy -- trading-mcpWithout a key the position tools return a structured error; everything else works.
The 24 tools
Every tool returns a uniform envelope — { "success": bool, "data": …, "timestamp": … } (or a
tool-specific structured object). Defaults shown in ().
Options flow (5)
Tool | Params | Returns |
|
| Gamma-exposure profile: net GEX, gamma walls, flip level, dealer-positioning market impact |
|
| Vanna exposure and the implied-vol impact of a given % price move |
|
| Options flow: volume, put/call ratios, unusual-activity flags |
|
| Volatility skew + term structure across strikes and expiries |
|
| Surface diagnostics: 25Δ risk-reversal, 10Δ skew, vol-of-vol, variance-risk premium |
Technical analysis (1)
Tool | Params | Returns |
|
| EMA stack, RSI, MACD, ATR, Bollinger, ADX, Hurst exponent, Z-score |
Market data (2)
Tool | Params | Returns |
|
| Kline count, latest price, last 10 OHLCV candles |
|
| Live options chain, OI-filtered, with a sample slice |
Sentiment & positioning (3)
Tool | Params | Returns |
|
| Long/short ratios, positioning bias, sentiment extremes |
|
| Open-interest level + trend |
|
| Funding rate, carry cost, funding extremes |
Portfolio (2)
Tool | Params | Returns |
|
| Aggregate Δ/Γ/Θ/Vega + risk metrics for a set of option positions |
|
| Portfolio PnL across supplied price/vol scenarios |
Vol selling (2)
Tool | Params | Returns |
|
| ATM implied vol vs Garman-Klass realized vol spread — the vol-selling edge metric |
|
| Covered-call go/no-go: IV-RV check, vol regime, term structure, skew, recommended OTM strike |
Strategy analysis (4)
Tool | Params | Returns |
|
| Straddle candidates ranked by profitability |
|
| Strangle optimization |
|
| Vertical call/put spread analysis |
|
| Classifies existing multi-leg strategies in a portfolio (legs, confidence, net cost, breakevens) |
User positions (2) — API-key gated
Tool | Params | Returns |
|
| Live option positions + total unrealised PnL |
|
| All positions, per-category breakdown + summary |
Position monitoring (2) — API-key gated, read-only
Tool | Params | Returns |
|
| Positions, open orders, order history, and deterministic |
|
| Local append-only monitoring snapshots and the latest PnL/mark/order/decision diff |
Meta (1)
Tool | Params | Returns |
| — | Server name, version, tool count, categories |
Bonus: the research prompt
The server also ships one MCP prompt, quant_research_prompt(asset), that primes Claude with a
senior-quant options-research workflow — it tells the model which tools to call and how to structure a
market memo (snapshot → sentiment/flow → microstructure → strategy proposals → risk checklist). In Claude
Desktop it appears in the prompt picker; just pass an asset like BTC.
Configuration
Env var | Default | Purpose |
| — | Required for user-position and live monitoring tools (read-only key recommended) |
| unset | Optional legacy JSONL history path; setting it keeps JSONL compatibility |
|
| SQLite snapshots and raw private-stream events for live monitoring |
|
| Where the server logs (never stdout — stdio is the JSON-RPC channel) |
| unset | Set to |
Safety model
Uniform envelope — every tool returns structured
{success, data, timestamp}; failures are never free text.Read-first — the analytics surface has no side effects; nothing places or modifies orders.
Key-gated — only the position and monitoring tools touch authenticated endpoints; an unconfigured agent physically can't read your book, let alone move money. Use a read-only key.
Logs off the wire — MCP uses stdio for JSON-RPC, so all logging is file-only by design.
Architecture
mcp_trading/ thin MCP facade — server.py = 24 @mcp.tool wrappers + 1 prompt
├─ orchestrator.py routes tool calls to the libs; holds the Bybit client + vol analyzer
├─ options_lib/ GEX · vanna · skew · flow · vol surface · strategy classification · pricing
├─ indicators_lib/ technicals + sentiment
├─ portfolio_lib/ portfolio engine · greeks · scenario analysis
├─ position_monitoring/ read-only snapshots · risk monitor · manual exit decisions
└─ bybit_api/ exchange client (klines, options chain, funding, OI, positions)The facade holds no business logic — it validates inputs (Pydantic models) and delegates. That's why the agent and the bots compute identical numbers from identical code.
License
MIT — see LICENSE.
Available Tools
22 toolsanalyze_portfolio_greeksAnalyze Portfolio GreeksC
Analyze portfolio Greeks and risk metrics for options positions
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 the tool 'analyzes' risk metrics, without explaining whether it executes trades, reads existing positions, aggregates multiple positions, or what side effects (if any) it has. This is too thin for safe invocation.
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 sentence with no filler or redundant elaboration. It is front-loaded and appropriately brief, though the brevity contributes to the lack of necessary detail elsewhere.
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 one required nested parameter at 0% schema coverage and no annotations, the description is far too thin. Although an output schema exists, the agent still lacks essential input-construction guidance and cannot confidently call the tool. This is materially incomplete for a portfolio-analysis 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?
Schema description coverage is 0%, and the description adds no meaning about the portfolio_data parameter. The schema only says 'Portfolio positions data' with additionalProperties allowed, and the description does not clarify the expected structure, required fields, or data format. An agent cannot reliably construct a valid portfolio_data object.
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') and identifies a clear resource ('portfolio Greeks and risk metrics for options positions'). It is clear enough to be distinguished from sibling tools focused on individual strategies like analyze_straddles or analyze_spreads, though it does not explicitly differentiate itself from analyze_portfolio_strategies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not state conditions such as 'use this for portfolio-level risk, not single-position strategies' or mention any exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_portfolio_strategiesAnalyze Portfolio StrategiesC
Identify and analyze existing option strategies in portfolio
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavioral disclosure. It states that the tool 'identifies' and 'analyzes', which implies a read-only operation, but it does not disclose whether it modifies anything, what inputs are required beyond the schema, or what the analysis consists of. This is a meaningful gap for a portfolio-level 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 concise, front-loaded sentence with no wasted words. While it is under-specified overall, the structure itself is clean and readable.
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?
Even though an output schema exists supposedly covering return values, the description leaves key questions unanswered: what portfolio_positions must contain, how strategies are identified, and how this tool differs from the specialized strategy analyzers. An agent could attempt a call but would likely produce incomplete or malformed input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining the expected structure of portfolio_positions. It does not: it only repeats the idea of portfolio positions without describing required fields, nesting, or format. The single parameter is effectively undocumented beyond its name.
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 clear verb ('Identify and analyze') and names the resource ('existing option strategies in portfolio'). It provides enough general meaning to distinguish this from sibling tools focused on individual strategies, though it does not explicitly enumerate which strategies are detected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like analyze_straddles, analyze_strangles, or analyze_spreads. The phrase 'in portfolio' implies it operates on portfolio positions, but there are no explicit when-to-use or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_spreadsAnalyze SpreadsC
Vertical spread analysis (call and put spreads)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden for behavioral disclosure, and it says nothing beyond the bare verb 'analysis.' There is no mention of what data the analysis consumes, whether it is read-only, how long it takes, or any side effects. The description neither misleads nor informs, so it fails to carry that burden without being contradictory.
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?
Seven words with no filler, and the key scope ('vertical', 'call and put') is front-loaded. Every word earns its place, though it errs on the side of being a fragment rather than a complete sentence stating an action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return shape, but everything else an agent needs to invoke correctly is missing: no usage context among 21 siblings, no behavioral or side-effect information (with no annotations to fall back on), and no explanation of the three nested parameters. For a tool in a crowded analysis family, a 7-word description is inadequate.
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% at the top level, so the description must compensate; it adds only the phrase 'call and put spreads,' which loosely mirrors the spread_types default. The meanings of min_oi, base_coin, the params wrapper, and valid spread_types values are left entirely to terse property labels. Coverage is low and compensation is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource — vertical spreads of calls and puts — which partially differentiates it from siblings that analyze straddles, strangles, or portfolio strategies. However, the verb 'analysis' is generic: it never states what the analysis produces (metrics, signals, P&L, recommendations), so an agent knows the subject matter but not the actual function. This is directional but vague, not a tight verb+resource statement.
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?
Zero guidance on when to choose this tool. The description does not reference any sibling (analyze_straddles, analyze_strangles, get_skew_analysis, etc.), nor mention use cases, prerequisites, or exclusions. With 21 overlapping sibling tools in the options-analysis space, an agent has no routing signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_straddlesAnalyze StraddlesC
Comprehensive straddle analysis with profitability ranking
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 reveals profitability ranking, but does not state whether the operation is read-only, how the analysis is computed, what universe it covers, or what assumptions it makes. 'Comprehensive' is an unsupported superlative.
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-loads purpose, but it relies on vague filler words like 'comprehensive' and 'analysis' while omitting operational content. It is short, but not necessarily well-structured enough to help an agent act.
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 having an output schema, the tool has no annotations and a nested params schema, so an agent still needs usage boundaries, parameter guidance, and routing conditions to call it correctly. The description provides only a high-level purpose and leaves critical context to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description does not mention min_oi, base_coin, or spread_types. An agent cannot infer how these parameters interact, what sensible values are, or how spread_types affects ranking, so the description adds no parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific strategy (straddles) and a concrete output (profitability ranking), which distinguishes it from siblings like analyze_strangles at a surface level. The verb 'analysis' is generic, but the resource and ranking intent are clear enough.
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 about when to use this tool versus analyze_strangles, analyze_spreads, or analyze_portfolio_strategies. The only implicit routing signal is the word 'straddle', so an agent cannot tell when this tool is preferred or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_stranglesAnalyze StranglesC
Comprehensive strangle analysis with optimization
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 does not state whether this is a read-only analysis, whether optimization mutates anything, what filters apply, or what side effects or computational characteristics to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence and is front-loaded with the strategy name. 'Comprehensive' is mild fluff, but there is no redundancy or excessive length.
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 lack of annotations, the minimal description, and the large set of sibling analysis tools, this definition is incomplete. The presence of an output schema helps with return values, but an agent still lacks guidance on invocation context, parameter behavior, and tool selection.
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 no meaning to the input schema. Schema coverage is 0%, and while the nested schema provides some labels like 'Minimum open interest' and 'Base cryptocurrency', the description does not clarify how these parameters relate to optimization or what valid spread_types are.
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 identifies strangles as the subject and analysis with optimization as the action, but 'comprehensive' and 'optimization' are vague. It does not clearly specify what the analysis produces or how it differs from sibling tools beyond the strategy name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus analyze_straddles, analyze_spreads, or other analysis tools. The term 'comprehensive' implies broad applicability but no explicit context, exclusions, or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_covered_call_signalGet Covered Call SignalA
Evaluate covered call entry signal: go/no-go with IV-RV spread, vol regime, term structure, skew check, and recommended OTM strike
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the analytical components it uses (IV-RV spread, vol regime, term structure, skew check) and frames the result as a signal/recommendation, implying a non-executing analysis tool. It does not spell out side effects or data prerequisites, but no contradiction or hidden mutation is suggested.
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 a colon-separated list communicates the full analytical scope with no filler. The primary action and output type are front-loaded, followed by the contributing checks.
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 core signal components and output shape, while an output schema exists to document return details. It lacks explicit usage exclusions and parameter-level guidance, but for a focused signal tool it is largely sufficient for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, and the tool description does not compensate by explaining individual parameters such as max_dte, base_coin, target_delta, or iv_rv_threshold. It hints at IV-RV and OTM strike selection, but an agent must infer how the parameters map to the go/no-go logic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Evaluate covered call entry signal') and a concrete output ('go/no-go... recommended OTM strike'). It clearly differentiates this from sibling raw-metric tools like get_iv_rv_spread and get_skew_analysis by packaging those inputs into one decision-oriented signal.
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 intended use case is stated directly: evaluating a covered call entry signal. This provides clear context for tool selection, but the description does not explicitly mention when not to use it or point to alternatives for standalone metrics, so it misses the top tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_flow_analysisGet Flow AnalysisC
Analyze options flow including volume, put/call ratios, and unusual activity
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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, but it only says 'Analyze,' which weakly implies read-only behavior. It does not disclose whether data is live or historical, how 'unusual activity' is determined, or whether any side effects or access constraints exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the verb and object, and contains no filler or repetition. Each phrase adds meaningful information about what the analysis covers.
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 presence of an output schema covers return-value details, but the definition still lacks usage guidance, behavioral transparency, and parameter context. Given the large sibling set and absence of annotations, the description is not complete enough for an agent to select and invoke 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?
The description mentions analysis dimensions but says nothing about the `params` container or its fields `min_oi` and `base_coin`. With context signals reporting 0% schema description coverage, the description should compensate for this gap but does not; an agent must rely on defaults and inferred meaning.
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') and resource ('options flow') and lists concrete outputs (volume, put/call ratios, unusual activity), so the core function is clear. However, it does not explicitly differentiate itself from siblings like get_open_interest_analysis or get_market_sentiment_analysis, so it falls short of full distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool over the many sibling analysis tools, and it never mentions alternatives or exclusion criteria. An agent is left to infer the use case from domain knowledge rather than explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_rate_analysisGet Funding Rate AnalysisC
Get funding rate analysis and extremes
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 does not state whether the tool returns current funding rates, historical extremes, normalized scores, or whether it requires any permissions. 'Get' implies read-only behavior, but nothing else is disclosed.
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 short and front-loaded, with no wasted words. It is under-specified rather than concisely complete, so it earns only a middling score: economical but not adequately informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there are no annotations and the schema is minimal, the description is too sparse to fully prepare an agent. It does not clarify what 'extremes' means, what kind of analysis is performed, or how the output should be interpreted. The presence of an output schema reduces some return-value burden, but core behavior remains ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, and the description does not mention the only parameter 'symbol' at all. The parameter is simple and self-explanatory from its name and default, but the description adds no meaning about formatting, supported values, or interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('funding rate analysis') and the action ('get'), which lets an agent identify it among many sibling analysis tools. However, 'extremes' is vague and the description does not explicitly contrast it with related 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?
There is no guidance about when to use this tool instead of alternatives, no mention of prerequisites, and no indication of whether it is for perpetual swaps, spot, or general market analysis. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gex_analysisGet Gex AnalysisC
Analyze Gamma Exposure (GEX) levels and market impact
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 only says 'Analyze,' which implies a read-only operation, but it does not state whether it requires authentication, has rate limits, returns real-time/historical data, or any other behavioral trait. No side effects or limitations are mentioned.
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, focused sentence with no filler. 'Analyze Gamma Exposure (GEX) levels and market impact' is front-loaded with the core purpose and is immediately scannable, making it efficient for an agent parsing many tool definitions.
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 existence of an output schema and the tool's moderate complexity (nested params, no annotations), the description is far too thin. It omits parameter behavior, usage context, and any clarifiers that would help an agent invoke it correctly. While the output schema covers return values, the input side and selection criteria remain undocumented enough to be risky.
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% (the critical 'params' object has no schema description), and the tool description does not mention min_oi or base_coin at all. The agent gets no explanation of what these parameters do or how they influence the analysis, so the description fails to compensate 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 clearly identifies the resource (Gamma Exposure/GEX) and the action (analyze levels and market impact), which distinguishes it from sibling tools like vanna, flow, and skew analysis. It is not a tautology and gives a specific enough purpose, though it could be more precise about what 'levels' and 'market impact' mean.
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 instead of its many siblings (e.g., get_vanna_analysis, get_flow_analysis). It does not mention contexts, exclusions, or alternatives, leaving the agent to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historical_dataGet Historical DataC
Get historical price data with basic metrics
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 does not state whether the data is raw OHLCV, whether it is adjusted, what timezone the timestamps use, whether pagination or limits apply, or whether the call is read-only. 'Basic metrics' is too vague to convey meaningful 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 short and front-loaded, but it is under-specified rather than efficiently concise. 'With basic metrics' adds little and could mislead an agent into thinking this returns derived metrics rather than raw price data.
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 nested params object, 0% schema coverage, and no annotations, the description is incomplete. It does not explain what 'basic metrics' are, what the output contains, or how this relates to sibling analysis tools. An agent would need to guess at the return shape and parameter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only says 'basic metrics' and does not explain the params object, symbol, interval, or hours_back. The schema itself has minimal descriptions ('Timeframe', 'Hours of history'), so the agent gets little help understanding valid values or semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Get historical price data') but is vague about what 'basic metrics' means. It does not distinguish itself from siblings like get_technical_indicators or get_vol_surface_metrics, which also sound like data retrieval 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?
No guidance is given on when to use this tool versus alternatives. The description does not mention any exclusions, prerequisites, or context such as 'use for OHLCV data' or 'use get_technical_indicators for derived indicators.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_iv_rv_spreadGet Iv Rv SpreadA
Compute IV-RV spread (ATM implied vol vs Garman-Klass realized vol) — key metric for vol-selling strategies
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses the computation method (ATM implied vs Garman-Klass realized) which conveys the core behavior, but it does not mention data sources, assumptions, edge cases, or that this is a read-only calculation.
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 that front-loads the action and resource, then adds definitional detail and practical context. Every part earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is conceptually simple, has an output schema, and the input schema provides parameter descriptions. The description gives the formula and strategic use case, so an agent has enough context to invoke it correctly; only explicit alternative routing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate for parameter meaning, but it does not mention base_coin or rv_window at all. The nested schema does describe the parameters, yet the tool description itself adds no value for parameter selection or impact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Compute') and an unambiguous resource ('IV-RV spread'), and defines the metric as ATM implied vol vs Garman-Klass realized vol. This clearly distinguishes it from sibling tools like get_skew_analysis or get_vol_surface_metrics.
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?
Identifies a clear use case: it is a key metric for vol-selling strategies. However, it does not explicitly state when to prefer this over alternatives such as get_vol_surface_metrics 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.
get_market_sentiment_analysisGet Market Sentiment AnalysisC
Get comprehensive market sentiment analysis including long-short ratios
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 'get comprehensive market sentiment analysis' without explaining data sources, update frequency, aggregation method, or any limitations. The read-only nature is implied by the verb but not substantively disclosed.
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, direct sentence with no filler. It is appropriately brief for a simple one-parameter tool, though it could have used the existing space to add more semantic 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?
The tool has an output schema, so return values are presumably covered elsewhere, and the parameter count is low. However, the description omits any indication of intended use, interpretation, or relationship to the sibling sentiment-related tools, leaving the agent without enough context to invoke it optimally.
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 does not mention the symbol parameter at all, and schema description coverage is reported as 0%. The schema has only a default value and 'Trading symbol' label, so the description fails to add meaningful context or compensate for the coverage 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 states a clear verb ('Get') and resource ('market sentiment analysis'), and specifies one concrete component (long-short ratios). It does not explicitly differentiate from sibling analytics tools like get_flow_analysis or get_skew_analysis, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description gives no context about scenarios, exclusions, or criteria for choosing market sentiment analysis over the many related analytics siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_open_interest_analysisGet Open Interest AnalysisC
Get open interest analysis and trends
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 does not state whether the operation is read-only, what data is returned (beyond what the output schema may imply), whether it reflects current or historical values, or any limitations such as rate limits or data freshness. The 'get' verb implies read-only, but this is not 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 a single, front-loaded sentence with no wasted words. It follows a clear verb+resource pattern. However, the extreme brevity borders on under-specification, but conciseness itself is not penalized when the content is clear.
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 presence of an output schema covers return values, but the tool has no annotations and no usage guidance. For an analysis tool among many similar siblings, the description is too sparse to help an agent decide when to call it or what behavior to expect. It is minimally adequate for a one-parameter read-only tool but leaves significant 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 description for 'symbol' is minimal ('Trading symbol'), and context indicates schema description coverage is 0%. The tool description adds no meaning to the single parameter—it does not explain what 'symbol' refers to, how it influences the analysis, or any format expectations. With low schema coverage, the description should compensate, but it does not.
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 'Get open interest analysis and trends' clearly identifies the specific resource (open interest) and the action (get). This distinguishes it from sibling tools like get_gex_analysis or get_vanna_analysis, which target different market metrics. However, the phrase 'analysis and trends' is somewhat generic and does not specify what kind of trends or analysis is included.
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 the many sibling analysis tools (e.g., get_flow_analysis, get_skew_analysis). There is no mention of preferred contexts, prerequisites, or conditions that would select this tool over alternatives. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_options_chainGet Options ChainC
Get current options chain data
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. 'Current' hints at data freshness, but nothing is said about scope, limitations, or what the returned chain contains. The description is not misleading, but it is behaviorally thin.
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 text is short and front-loaded with no wasted words. However, for a tool with parameters and many closely related siblings, the brevity crosses into under-description, so it is concise but not appropriately informative.
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?
An output schema exists, so return structure is covered, but the description leaves out critical context: what the options chain data contains, which asset it applies to, and when to use this instead of sibling tools. With no annotations and this minimal description, the package is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description mentions none of the available parameters like min_oi or base_coin. The description adds no semantic value beyond the schema, so an agent cannot understand parameter meaning from the tool definition description at all.
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 identifies the action ('Get') and the resource ('options chain data'), so an agent can tell this is a data retrieval tool. However, it does not distinguish it from sibling analysis tools like get_open_interest_analysis or get_vol_surface_metrics, which limits its clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many analysis siblings. The description is a bare statement of function with no mention of filters, base currency, or use cases, so the agent must infer when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_infoGet Server InfoA
Get server information and available tools
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It uses 'Get,' which signals read-only behavior, but it does not explicitly disclose that the operation has no side effects, requires no permissions, or is safe to call. For this simple, zero-parameter info tool, the implied read-only nature is minimal but not fully 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 a single sentence with no filler; the primary action and resource are front-loaded, and 'available tools' adds meaningful scope in a few words. It is appropriately sized for a simple introspection tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter interface and presence of an output schema, the description does not need to explain return values. It covers the tool's two functions, server information and tool discovery, sufficiently for an agent to know what this tool offers, though it leaves implicit how the returned data is structured.
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 description does not need to document inputs. The empty input schema fully covers the parameter surface, and this parameterless case earns the baseline of 4.
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') and names the resource ('server information') plus 'available tools,' which clearly distinguishes it from the sibling analysis and position tools. It is more than a restatement of the title because it adds the tool-listing capability.
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 retrieving server-level information and discovering available tools, but it does not explicitly state when to prefer it over alternatives or mention any prerequisite or context such as 'call this first.' Since siblings are all market/analysis tools, the usage context is mostly inferable rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skew_analysisGet Skew AnalysisC
Analyze volatility skew and term structure across strikes and expiries
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. 'Analyze' implies a non-mutating operation, but the description does not confirm whether this is a read-only computation, what data it uses, or how filters like minimum open interest affect results.
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 sentence with no filler, front-loading the core purpose. It is appropriately concise for what it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and minimal parameter guidance, the description is not sufficient for an agent to confidently invoke the tool. The presence of an output schema helps with return-value expectations, but usage context and parameter semantics remain missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description adds no parameter meaning, and context signals indicate 0% schema description coverage at the tool-parameter level. An agent cannot infer that base_coin selects the cryptocurrency or that min_oi filters by open interest from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb and resource: analyze volatility skew and term structure across strikes and expiries. It conveys what the tool computes, though it does not contrast itself with closely related siblings like get_vol_surface_metrics or get_gex_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus its siblings. The description only implies an analysis use case, leaving the agent to guess whether get_vol_surface_metrics or get_skew_analysis is the better fit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technical_indicatorsGet Technical IndicatorsB
Calculate technical indicators (RSI, MACD, ATR, Bollinger Bands)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the transparency burden. 'Calculate' makes the read-only, computational nature evident)Skip and listing the indicators discloses what the output contains. However, it does not say whether it fetches historical data internally, whether all listed indicators are always returned, or whether there are precision or limit behaviors.
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 compact sentence with the verb front-loaded and a parenthetical list of indicators. There is no filler, duplicate information, or boilerplate.
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 combination of description and schema is sufficient for basic invocation, but the description lacks usage context compared to the rich sibling setholiday. With no annotationscars, behavioral details such as data source or output aggregation are also implicit. The presence of an output schema softens the missing return-shape explanation.
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 itself adds no parameter meaning, but the nested schema already documents symbol, interval, and hours_back with defaults and example values. Although the context signal reports 0% coverage at the top-level 'params' property, the agent sees the nested descriptions, so the description need not repeat them.
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 ('Calculate') and resource ('technical indicators'), and lists concrete indicator names (RSI, MACD, ATR, Bollinger Bands). It is distinguishable from the sibling strategy and analysis tools, though it does not explicitly call out any sibling as an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus get_historical_data, get_vol_surface_metrics, or the options strategy tools. There are no exclusions, prerequisites, or context signals such as 'use for chart-based analysis' that would help an agent choose among the many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_all_positionsGet User All PositionsB
Get all user positions from Bybit (options, linear, inverse)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 states what is returned and from where; it does not mention whether data is historical or live, whether authentication is required, any pagination/limits, error behaviors, or how the categories interact with the position_type parameter.
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 front-loaded sentence with no wasted words. It states the action, the resource, and the scope categories directly. The title repetition is minor, but the description earns its place by adding the Bybit context and category list.
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 getter with a nested object parameter and an output schema present, this is minimally adequate: an agent can understand what data is returned and the basic categories. However, it lacks explicit sibling differentiation and behavioral context, which matters more because there are no annotations to fill those 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 description's parenthetical 'options, linear, inverse' reinforces the position_type values, but it adds no meaning beyond the input schema. The schema itself documents base_coin and position_type with defaults and value hints, so the prose does not need to repeat them, but it also does not clarify any edge cases like what 'all' means for each 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 uses a specific verb and resource: 'Get all user positions from Bybit', and enumerates the product categories 'options, linear, inverse'. This makes the tool's scope reasonably clear and hints at how it differs from the sibling get_user_options_positions, but it does not explicitly name or contrast that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'all user positions' and the listed categories imply the intended use: retrieve positions across multiple product types. However, there is no explicit guidance about when to choose this tool over get_user_options_positions or any other alternative, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_options_positionsGet User Options PositionsB
Get user's options positions from Bybit for any asset (BTC, ETH, SOL)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. The verb 'Get' implies a read operation, but the description does not explicitly state read-only behavior, authentication requirements, rate limits, data freshness, or any side effects. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose. Every word contributes to identifying the tool. It is not bloated, though it could afford a bit more detail without becoming verbose.
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 existence of an output schema and the simplicity of the tool, the description is minimally adequate. It lacks any mention of the position_type filter or the relationship to get_user_all_positions, but the output schema covers return structure. An agent would still need to infer some context to select it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the parameter level, so the description must compensate. It only hints at base_coin via the asset examples 'BTC, ETH, SOL' but completely omits position_type. The nested schema does contain descriptions, but the tool description itself adds minimal value for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get user's options positions from Bybit'. It also names the asset scope (BTC, ETH, SOL), which distinguishes it from sibling get_user_all_positions that covers all position types. An agent can clearly tell this tool apart from the alternatives without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention get_user_all_positions for all positions or any exclusions such as 'use this for options only' or 'use analyze_portfolio_strategies for strategy analysis'. The intended usage is only implied by the name, not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vanna_analysisGet Vanna AnalysisC
Analyze Vanna exposure and volatility impact from price moves
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 only says 'Analyze,' which implies a non-mutating read/computation but does not explicitly disclose side effects, data requirements, or behavioral caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It is front-loaded and scannable, though its brevity comes at the cost of useful contextual 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?
Despite having an output schema, the description does not explain how base_coin or price_move affect the analysis, what units price_move uses, or when this tool should be selected. The definition is too sparse for reliable 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?
With schema description coverage reported as 0%, the description needed to compensate, but it never names base_coin or price_move. It only hints at 'price moves,' leaving defaults and parameter meaning entirely to 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 states a clear verb ('Analyze') and resource ('Vanna exposure and volatility impact from price moves'). 'Vanna' distinguishes the tool from related siblings like GEX or skew analysis, though it does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as get_gex_analysis or get_skew_analysis. No exclusions, conditions, or recommended use cases are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vol_surface_metricsGet Vol Surface MetricsB
Get volatility surface diagnostics (RR, skew, vol-of-vol, VRP)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. It discloses the output type (diagnostics) but does not state return format, any data source caveats, or whether parameters beyond base_coin are supported. For a tool with nested output schema, more behavioral context is needed.
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 concise sentence that front-loads the main purpose and key metrics. It earns its place without unnecessary elaboration, though it could add a brief usage note without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a nested output schema and one parameter, the description is adequate for a simple diagnostic tool but not complete. It lacks detail on output structure or edge cases, but the presence of an output schema partially mitigates this.
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%, meaning the base_coin parameter's description only says 'Base cryptocurrency'. The tool description does not add any parameter-specific guidance, leaving the agent to infer the default and possible values. This is a missed opportunity to compensate for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('volatility surface diagnostics') and lists specific metrics (RR, skew, vol-of-vol, VRP). This distinguishes it from sibling tools like get_skew_analysis or get_iv_rv_spread, though it does not explicitly name them.
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 volatility surface diagnostics, but provides no explicit guidance on when to use this tool versus alternatives like get_skew_analysis or get_iv_rv_spread. The context is clear enough for an expert but lacks exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_scenario_analysisRun Scenario AnalysisC
Run scenario analysis for portfolio PnL across price and volatility moves
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 states that the tool 'runs' an analysis, suggesting a computation with no side effects, but it does not disclose whether data is modified, whether specific inputs are required, or any constraints. The existence of an output schema reduces the need to describe return values, but other behavioral traits remain opaque.
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, front-loaded sentence with no filler or repetition. It earns its place by adding the portfolio PnL and price/volatility scope beyond the tool name. It is arguably too sparse for the nested parameter complexity, but as a concise statement it is well-structured.
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 an output schema being present, the description lacks essential context for correct invocation: no parameter guidance, no usage boundaries, and no behavioral caveats. Given the nested required objects and zero schema description coverage, an agent would need to infer too much about how to construct scenarios and portfolio_data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining the parameters. It indirectly alludes to 'scenarios' via price/volatility moves and to 'portfolio' via portfolio PnL, but it does not explain the nested structure, the required 'params' wrapper, or the expected shape of portfolio_data and scenarios. This is insufficient for an agent to construct valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('Run scenario analysis') and a concrete resource/target ('portfolio PnL across price and volatility moves'), which distinguishes it from sibling analysis tools. It is clear but somewhat generic, as it does not specify what a 'scenario' consists of or what the analysis output encompasses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when testing portfolio PnL under price and volatility moves. However, it provides no explicit guidance about when not to use it or how it compares with sibling tools such as analyze_portfolio_greeks or analyze_portfolio_strategies, 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
22 tool updates
v1.0.0- First observed
analyze_portfolio_greeks - First observed
analyze_portfolio_strategies - First observed
analyze_spreads - First observed
analyze_straddles - First observed
analyze_strangles - First observed
get_covered_call_signal - First observed
get_flow_analysis - First observed
get_funding_rate_analysis - First observed
get_gex_analysis - First observed
get_historical_data - First observed
get_iv_rv_spread - First observed
get_market_sentiment_analysis - First observed
get_open_interest_analysis - First observed
get_options_chain - First observed
get_server_info - First observed
get_skew_analysis - First observed
get_technical_indicators - First observed
get_user_all_positions - First observed
get_user_options_positions - First observed
get_vanna_analysis - First observed
get_vol_surface_metrics - First observed
run_scenario_analysis
TDQS
Scored across 22 tools
Most tools map to distinct analytics (straddles vs strangles vs spreads), but two pairs overlap: get_user_options_positions vs get_user_all_positions, and get_skew_analysis vs get_vol_surface_metrics. These could cause misselection, though descriptions clarify the scope.
All tool names follow a consistent lowercase snake_case verb_noun pattern (get_*, analyze_*, run_*). The prefixes are semantically meaningful and predictable, making it easy to infer tool purpose from the name.
22 tools is on the heavier side of typical, but the domain—crypto options analysis with market data, portfolio risk, and strategy tools—can justify the breadth. Still, several tools could be consolidated (e.g., skew/vol-surface overlap), making the set feel slightly over-scoped.
The set covers the core analysis lifecycle: data retrieval (chain, historical, funding, IV-RV), market analytics (GEX, Vanna, flow, OI), strategy analysis (straddles, strangles, spreads, covered calls), and portfolio risk (Greeks, scenario). It lacks execution/hedging tools, but for an analytics-focused desk that is acceptable; minor gaps like backtesting or strategy comparison remain.
Maintenance
Related MCP Connectors
Market analyst tools + AI agent: crypto, US equities, options, Korea, fundamentals, macro, backtests
Calibrated world model for AI agents. 40 tools: world state, markets, trading. Kalshi + Polymarket.
Options analytics for AI assistants: chains, IV rank, VRP, Greeks, GEX, expected moves, screeners.
Agent-native crypto market-data over MCP+REST: order flow, whales, liquidations, calibrated scores
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to perform cryptocurrency trading analysis and execution with 38+ tools including real-time market data, technical indicators, risk management, and support for both paper trading and live execution on Hyperliquid.7MIT
- AlicenseBqualityCmaintenanceAn MCP server that gives an LLM agent a typed, audited tool surface over quant crypto-options desk analytics: gamma exposure, vanna, skew, vol surface, options flow, technicals, portfolio greeks, scenario analysis, and live positions.221MIT
- AlicenseAqualityCmaintenanceEnables AI agents to discover and retrieve options market-structure data (GEX, gamma flip levels, dealer positioning, skew, max pain, expected-move levels, options flow, and ranked trade setups) from Trading Volatility's public API via natural language.171MIT
- AlicenseCqualityDmaintenanceEnables LLMs to interact with Bybit V5 API for market data, trading, account management, and position tracking.911 npmMIT