TradingCalc MCP — Crypto Futures Math
REMOTE · TRADINGCALC.IO · SCANNED AUG 3
Crypto futures math: PnL, liquidation, position sizing, carry trade. 19 tools. Not AI estimates.
Available components
Degraded
One or more channels of this server are currently unreachable; their trust score is decaying and will reach 0 if they stay down.
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the tool list to see what that exposes. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 4 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · tradingcalc.io
claude mcp add --transport http skalinin909-tradingcalc https://tradingcalc.io/api/mcp
[mcp_servers.skalinin909-tradingcalc] url = "https://tradingcalc.io/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"skalinin909-tradingcalc": {
"type": "remote",
"url": "https://tradingcalc.io/api/mcp",
"enabled": true
}
}
} openclaw mcp add skalinin909-tradingcalc --url https://tradingcalc.io/api/mcp --transport streamable-http
mcp_servers:
skalinin909-tradingcalc:
url: "https://tradingcalc.io/api/mcp" {
"mcpServers": {
"skalinin909-tradingcalc": {
"type": "http",
"url": "https://tradingcalc.io/api/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 −12
The score moved with no change recorded against any check. We would rather say so than guess.
- 1 Aug 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 56
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://tradingcalc.io/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=tradingcalc.io | CN=YR1,O=Let's Encrypt,C=US | 7 Jul 2026 | 5 Oct 2026 | RSA 2048 | SHA256-RSA | 5f2c88a7ad5adde3d3f44856b2553e7c5b7 |
| SANs: tradingcalc.io | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
DNSSEC insecure
Validation of tradingcalc.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 57355 | 8 | Verified |
| tradingcalc.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://tradingcalc.io/api/mcp | Unreachable | ||
| http (plaintext) | http://tradingcalc.io/api/mcp | HTTPS enforced | 308 | https://tradingcalc.io/api/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
primitive.average_entry ~89
Calculate the weighted average entry price from multiple buy/sell fills (DCA). Use when user has filled at multiple prices and asks "what's my average entry?" Returns: averagePrice, totalSize, totalCost.
| Name | Type | Req | Description |
|---|---|---|---|
| exchangeCode | string | — | Exchange identifier (optional) |
| input | object | yes | — |
| symbol | string | yes | Trading pair symbol, e.g. BTCUSDT |
No output schema declared.
No examples provided.
primitive.hedge_ratio ~159
Calculate the short perpetual futures position size needed to hedge a spot holding. Use when user asks "how much should I short to hedge my BTC?" or "what margin do I need for a 100% hedge?". Returns: hedgeNotional, requiredMargin, estimatedFundingCost.
| Name | Type | Req | Description |
|---|---|---|---|
| fundingRatePct | number | — | Current 8h funding rate as percentage, e.g. 0.01. Used for cost estimate. |
| hedgeRatio | number | — | Percentage of spot to hedge, e.g. 100 for full hedge, 50 for half. Default 100. |
| leverage | number | — | Leverage on the perp short. Default 1. |
| spotSize | number | yes | Spot position value in USDT |
No output schema declared.
No examples provided.
system.verify ~54
Run the full regression suite — 22 canonical test vectors across all 12 calculators — and return a pass/fail report with counts and timestamp. Call this before using results in production workflows to confirm the computation layer is operating correctly.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
workflow.run_breakeven_planning ~121
Calculate the break-even exit price that covers all trading fees. Use when user asks "what price do I need to just break even?" Returns: breakevenPrice, totalFees.
| Name | Type | Req | Description |
|---|---|---|---|
| entryPrice | number | yes | Entry price (positive) |
| feeClosePct | number | — | Closing fee fraction, default 0.0005 |
| feeOpenPct | number | — | Opening fee fraction, default 0.0002 |
| side | string | yes | — |
| sizeBase | number | yes | Position size in base asset |
No output schema declared.
No examples provided.
workflow.run_breakout_acceptance ~212
Market Profile breakout acceptance — did price accept (hold) beyond the value area / range, or reject back inside (fakeout)? Optional buy/sell delta. Use for "did the break above VAH get accepted?".
| Name | Type | Req | Description |
|---|---|---|---|
| candles | array | — | Optional OHLCV for the session — omit to fetch from venue (reproducible + 0 COGS when supplied) |
| include_delta | boolean | — | Include buy/sell delta analysis (default true) |
| instrument | string | yes | Symbol, e.g. BTCUSDT |
| prev_candles | array | — | Optional OHLCV for the previous session |
| session_date | string | yes | Session date YYYY-MM-DD (UTC) |
| timeframe | string | — | Candle timeframe (default 15m) |
| value_area_rule | number | — | Value-area fraction 0.5–0.9 (default 0.70) |
| venue | string | yes | Exchange to fetch candles from when candles[] not supplied |
No output schema declared.
No examples provided.
workflow.run_carry_trade ~182
Delta-neutral carry trade (funding arbitrage) analysis. Use when user asks "is this carry trade worth it?" — long on exchange A, short on exchange B, collect the funding rate spread. Returns: netYieldPct, grossProfit, netProfit, breakevenDays, verdict (profitable/marginal/loss).
| Name | Type | Req | Description |
|---|---|---|---|
| funding_rate_long | number | yes | Funding rate on long exchange per interval (decimal) |
| funding_rate_short | number | yes | Funding rate on short exchange per interval (decimal) |
| hold_days | number | yes | Hold duration in days |
| interval_hours | number | — | Funding interval: 1 or 8 hours (default 8) |
| notional | number | yes | Position notional in USDT |
| transfer_fee_pct | number | — | One-way transfer fee % (default 0.1) |
No output schema declared.
No examples provided.
workflow.run_compound_funding ~190
Project capital growth from reinvesting perpetual futures funding income (compounding carry). Use when user asks "how much will I make compounding 0.01% funding for 90 days?" or "what's my APY on this carry position?". Returns: finalCapital, totalEarned, apy, growthTable.
| Name | Type | Req | Description |
|---|---|---|---|
| durationDays | number | yes | Number of days to project |
| fundingRatePct | number | yes | Funding rate per interval as percentage, e.g. 0.01 for 0.01% |
| initialCapital | number | yes | Starting capital in USDT |
| intervalHours | number | — | Funding interval: 8 (standard) or 1 (Hyperliquid) |
| reinvestPct | number | — | Percentage of earnings reinvested each interval. 100 = full compounding, 0 = no reinvestment. Default 100. |
No output schema declared.
No examples provided.
workflow.run_dca_entry ~128
DCA entry planner: weighted average entry price, breakeven, and per-level contribution from multiple fill prices and sizes. Use when user bought at several prices and asks "what's my average entry?" or "where is my DCA breakeven?". Returns: averageEntry, breakeven, per-level summary.
| Name | Type | Req | Description |
|---|---|---|---|
| entries | array | yes | — |
| fee_close_pct | number | — | Close fee rate (default 0.0005) |
| fee_open_pct | number | — | Open fee rate (default 0.0002) |
| side | string | yes | — |
No output schema declared.
No examples provided.
workflow.run_exit_target ~182
Calculate the exact exit price needed to hit a target PnL or ROE percentage. Use when user asks "at what price do I take profit to make $500?" or "where should I set TP for 20% ROE?". Returns: targetExitPrice.
| Name | Type | Req | Description |
|---|---|---|---|
| entryPrice | number | yes | Entry price |
| feeClosePct | number | — | Closing fee fraction, default 0.0005 |
| feeOpenPct | number | — | Opening fee fraction, default 0.0002 |
| leverage | number | yes | Leverage multiplier |
| side | string | yes | — |
| sizeBase | number | yes | Position size in base asset |
| targetMode | string | yes | "pnl" = target in USDT, "roe" = target in % |
| targetValue | number | yes | Target value (USDT or %) |
No output schema declared.
No examples provided.
workflow.run_funding_arbitrage ~205
Calculate funding rate arbitrage profit: annualized yield, net profit, and breakeven days for a long/short basis trade across two exchanges. Use when user asks "is this funding arb worth it?" or "how many days to break even on transfer fees?". Returns: netProfitUsdt, annualizedYieldPct, breakevenDays.
| Name | Type | Req | Description |
|---|---|---|---|
| durationDays | number | yes | Holding period in days |
| intervalHours | number | — | Funding interval: 8 (standard) or 1 (Hyperliquid) |
| longFundingRate | number | yes | Funding rate on long side (% per interval, positive = you pay) |
| positionSize | number | yes | Position size in USDT |
| shortFundingRate | number | yes | Funding rate on short side (% per interval, positive = you receive) |
| transferFeePct | number | — | One-time transfer/setup fee as percentage, e.g. 0.1 for 0.1% |
No output schema declared.
No examples provided.
workflow.run_funding_breakeven ~181
Price move needed to cover funding cost + fees over a holding period. Use when user asks "how much does BTC need to move for me to profit after funding?" or "is funding killing my edge on this trade?". Returns: breakevenWithFunding, breakevenWithoutFunding, requiredMovePct.
| Name | Type | Req | Description |
|---|---|---|---|
| entry_price | number | yes | Entry price |
| fee_close_pct | number | — | Close fee rate (default 0.0005) |
| fee_open_pct | number | — | Open fee rate (default 0.0002) |
| funding_rate | number | yes | Funding rate per 8h period (decimal, e.g. 0.0001) |
| hold_hours | number | yes | Hold duration in hours |
| side | string | yes | — |
| size | number | yes | Position size in base currency |
No output schema declared.
No examples provided.
workflow.run_funding_cost ~140
Calculate the total funding cost (or income) for holding a perpetual futures position. Use when user asks "how much funding will I pay holding X days?" or "is funding eating my profit?". Returns: totalFundingUsdt (negative = you pay, positive = you receive), perIntervalUsdt.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | yes | Number of days to hold |
| entryPrice | number | yes | Entry price |
| fundingRate | number | yes | Funding rate per 8h period as fraction, e.g. 0.0001 |
| side | string | yes | — |
| sizeBase | number | yes | Position size in base asset |
No output schema declared.
No examples provided.
workflow.run_liquidation_safety ~119
Calculate the liquidation price for an isolated-margin futures position. Use when user asks "where will I get liquidated?" or "how close is my liq price?". Returns: liquidationPrice, distancePct (how far from entry).
| Name | Type | Req | Description |
|---|---|---|---|
| entryPrice | number | yes | Entry price (positive) |
| leverage | number | yes | Leverage multiplier, e.g. 10 for 10x |
| mmr | number | — | Maintenance margin rate, default 0.005 (0.5%) |
| side | string | yes | — |
No output schema declared.
No examples provided.
workflow.run_max_leverage ~154
Calculate the maximum safe leverage based on account size, max acceptable drawdown, and asset daily volatility. Use when user asks "what's the max leverage I should use on BTC?" or "how much leverage is safe given 3% daily volatility?". Returns: maxLeverage, marginAtRisk.
| Name | Type | Req | Description |
|---|---|---|---|
| accountSize | number | yes | Total account size in USDT |
| maxDrawdownPct | number | yes | Maximum acceptable drawdown as percentage, e.g. 10 for 10% |
| mmr | number | — | Maintenance margin rate, default 0.005 (0.5%) |
| volatilityPct | number | yes | Expected daily price volatility as percentage, e.g. 3 for 3% |
No output schema declared.
No examples provided.
workflow.run_open_analysis ~226
Market Profile open analysis — where and how price opened vs the prior session value area. Returns open location, open type (OD/OTD/ORR/OAIR), key levels (VAH/VAL/VPOC/IB), and bullish/bearish/neutral scenario framing. Use for "how did BTC open today?" / "what does the open imply for the session?".
| Name | Type | Req | Description |
|---|---|---|---|
| candles | array | — | Optional OHLCV for the session — omit to fetch from venue (reproducible + 0 COGS when supplied) |
| instrument | string | yes | Symbol, e.g. BTCUSDT |
| prev_candles | array | — | Optional OHLCV for the previous session |
| session_date | string | yes | Session date YYYY-MM-DD (UTC) |
| timeframe | string | — | Candle timeframe (default 15m) |
| value_area_rule | number | — | Value-area fraction 0.5–0.9 (default 0.70) |
| venue | string | yes | Exchange to fetch candles from when candles[] not supplied |
No output schema declared.
No examples provided.
workflow.run_pnl_planning ~153
Calculate net PnL, ROE, fees and gross profit/loss for a futures trade. Use when user asks "what's my profit/loss on this trade?" Returns: grossPnl, fees, netPnl, netPnlUsdt, roe (%).
| Name | Type | Req | Description |
|---|---|---|---|
| entryPrice | number | yes | Entry price (positive) |
| exitPrice | number | yes | Exit price (positive) |
| feeClosePct | number | — | Closing fee as fraction |
| feeOpenPct | number | — | Opening fee as fraction, e.g. 0.0002 = 0.02% |
| side | string | yes | Trade direction |
| size | number | yes | Position size in base asset |
No output schema declared.
No examples provided.
workflow.run_position_sizing ~161
Calculate the correct position size given a maximum risk in USDT and a stop-loss price. Use when user asks "how many coins should I buy?" or "size my position so I risk exactly $X". Returns: positionSize (base), positionUsdt, marginRequired.
| Name | Type | Req | Description |
|---|---|---|---|
| entryPrice | number | yes | Entry price |
| feeClosePct | number | — | Closing fee fraction, default 0.0005 |
| feeOpenPct | number | — | Opening fee fraction, default 0.0002 |
| leverage | number | — | Leverage, default 1 |
| riskUsdt | number | yes | Maximum acceptable loss in USDT |
| side | string | yes | — |
| stopLoss | number | yes | Stop-loss price |
No output schema declared.
No examples provided.
workflow.run_pre_trade_check ~337
Full pre-trade decision card: orchestrates position sizing, breakeven, liquidation, and funding cost in one call. Use when user describes a full trade setup and asks "should I take this trade?" or "run the numbers on this setup". Provide exchange+symbol to fetch live funding rate automatically. Returns: positionSize, breakeven, liquidationPrice, fundingCost, overnightBreakevenShift, verdict.
| Name | Type | Req | Description |
|---|---|---|---|
| account_balance | number | yes | Total account balance in USDT |
| entry_price | number | yes | Entry price (positive) |
| exchange | string | — | Exchange code, e.g. "binance" or "bybit". Used to fetch live funding rate if funding_rate is omitted. |
| fee_close_pct | number | — | Closing fee fraction, default 0.0005 |
| fee_open_pct | number | — | Opening fee fraction, default 0.0002 |
| funding_rate | number | — | Funding rate per 8h as decimal, e.g. 0.0001. If omitted, fetched live from exchange. |
| hold_hours | number | — | Expected hold time in hours for overnight shift calc. Default 8. |
| leverage | number | yes | Leverage multiplier |
| mmr | number | — | Maintenance margin rate, default 0.005 |
| risk_pct | number | yes | Risk as % of balance, e.g. 1.0 = 1% |
| side | string | yes | — |
| stop_loss | number | yes | Stop-loss price (positive) |
| symbol | string | — | Perpetual symbol, e.g. "BTCUSDT". |
No output schema declared.
No examples provided.
workflow.run_risk_reward ~235
Full risk:reward analysis — the single best tool when user describes a trade with entry, stop, and target. Calculates R:R ratio, position size, liquidation price, breakeven, and P&L at both stop and target. Returns a verdict: strong (3:1+) / good (2:1+) / marginal / poor. Use when user asks "is this trade worth taking?" or "what's my risk reward on this setup?".
| Name | Type | Req | Description |
|---|---|---|---|
| account_balance | number | yes | Account balance in USDT |
| entry_price | number | yes | Entry price |
| fee_close_pct | number | — | Close fee rate (default 0.0005) |
| fee_open_pct | number | — | Open fee rate (default 0.0002) |
| leverage | number | yes | Leverage multiplier |
| mmr | number | — | Maintenance margin rate (default 0.005) |
| risk_pct | number | yes | Max risk as % of account |
| side | string | yes | — |
| stop_loss | number | yes | Stop-loss price |
| take_profit | number | yes | Take-profit price |
No output schema declared.
No examples provided.
workflow.run_scale_out ~166
Scale-out planner: P&L, ROI, and cumulative P&L for each partial exit level. Use when user wants to take profit at multiple targets — "close 30% at $90k, 30% at $95k, 40% at $100k — what's my total P&L?". Returns: per-level pnl, weightedAvgExitPrice, totalRoi.
| Name | Type | Req | Description |
|---|---|---|---|
| entry_price | number | yes | Entry price |
| exits | array | yes | — |
| fee_close_pct | number | — | Close fee rate (default 0.0005) |
| fee_open_pct | number | — | Open fee rate (default 0.0002) |
| side | string | yes | — |
| total_size | number | yes | Total position size in base currency |
No output schema declared.
No examples provided.
workflow.run_scenario_planning ~159
Run a scenario analysis: compute PnL for multiple price-change percentages at once. Use when user asks "show me my P&L if BTC moves -10%, -5%, +5%, +10%". Returns: array of { deltaPct, exitPrice, netPnl, roe }.
| Name | Type | Req | Description |
|---|---|---|---|
| deltasPct | array | yes | List of price change percentages, e.g. [-10, -5, 0, 5, 10] |
| entryPrice | number | yes | Entry price |
| feeClosePct | number | — | Closing fee fraction |
| feeOpenPct | number | — | Opening fee fraction |
| side | string | yes | — |
| size | number | yes | Position size in base asset |
No output schema declared.
No examples provided.
workflow.run_session_structure ~194
Market Profile day-type classifier — trend / balance / neutral_trend / normal / normal_var, from TPO, initial balance, range extension and value migration. Use for "is this a trend day or a balance day?".
| Name | Type | Req | Description |
|---|---|---|---|
| candles | array | — | Optional OHLCV for the session — omit to fetch from venue (reproducible + 0 COGS when supplied) |
| instrument | string | yes | Symbol, e.g. BTCUSDT |
| prev_candles | array | — | Optional OHLCV for the previous session |
| session_date | string | yes | Session date YYYY-MM-DD (UTC) |
| timeframe | string | — | Candle timeframe (default 15m) |
| value_area_rule | number | — | Value-area fraction 0.5–0.9 (default 0.70) |
| venue | string | yes | Exchange to fetch candles from when candles[] not supplied |
No output schema declared.
No examples provided.
workflow.run_value_migration ~206
Market Profile value-area migration across sessions — is value migrating up, down, or overlapping (directional conviction vs balance)? Use for "is value moving higher day over day?".
| Name | Type | Req | Description |
|---|---|---|---|
| candles | array | — | Optional OHLCV for the session — omit to fetch from venue (reproducible + 0 COGS when supplied) |
| instrument | string | yes | Symbol, e.g. BTCUSDT |
| lookback_sessions | number | — | Sessions to compare, 1–5 (default 1) |
| prev_candles | array | — | Optional OHLCV for the previous session |
| session_date | string | yes | Session date YYYY-MM-DD (UTC) |
| timeframe | string | — | Candle timeframe (default 15m) |
| value_area_rule | number | — | Value-area fraction 0.5–0.9 (default 0.70) |
| venue | string | yes | Exchange to fetch candles from when candles[] not supplied |
No output schema declared.
No examples provided.