npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

tradingcalc-mcp

v2.0.1

Published

23 deterministic crypto futures tools: trade planning (pnl, breakeven, exit_target, scenario, dca_entry, scale_out), risk (liquidation, position_sizing, max_leverage, risk_reward), funding & carry (funding_cost, funding_arb, compound_funding, funding_brea

Readme

TradingCalc MCP Server

MCP Badge

Ask Claude or Cursor trade questions and get exact numbers back, not AI guesses.

"What's my PnL if I buy 0.5 BTC at $80k and sell at $95k with 5x leverage?" "Size my position: $10k account, 1% risk, long BTC at $83k, stop at $81k." "Is this carry trade worth it? 0.01% funding long, 0.05% short, $50k, 30 days."

23 deterministic tools across trade planning, risk & margin, funding/carry, and market-structure (Market Profile) analysis. Formulas verified against 35 canonical test vectors: same inputs always produce the same outputs. Free, no signup.

Access via MCP (Claude Desktop / Cursor / VS Code) or a plain HTTP POST to the MCP endpoint. Free, no signup.

Endpoints

| Surface | URL | Auth | |---|---|---| | MCP | https://tradingcalc.io/api/mcp | Bearer optional (free) | | For agents / setup | https://tradingcalc.io/for-agents | None | | Verification proof | https://tradingcalc.io/verify | None |

MCP transport: Streamable HTTP (MCP spec 2024-11-05)

Quick Start

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "tradingcalc": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://tradingcalc.io/api/mcp"]
    }
  }
}

Cursor / VS Code

{
  "tradingcalc": {
    "url": "https://tradingcalc.io/api/mcp"
  }
}

Direct HTTP

curl -X POST https://tradingcalc.io/api/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "workflow.run_liquidation_safety",
      "arguments": {
        "side": "long",
        "entryPrice": 95000,
        "leverage": 10
      }
    }
  }'

Example prompts

After connecting, just ask naturally: the AI picks the right tool automatically:

Trade P&L

"I bought 0.5 BTC at $80,000 and want to sell at $95,000 with 5x leverage. What's my net profit after fees?"

Position sizing

"I have a $10,000 account and want to risk 1% going long BTC at $83,000 with a stop at $81,000. How many coins should I buy?"

Liquidation check

"Long ETH at $3,200 with 10x leverage, where do I get liquidated?"

Full pre-trade check

"Analyze this setup: long BTC at $83,000, stop $81,000, target $90,000, $10k account, 1% risk, 5x leverage. Is it worth taking?"

Funding cost

"I'm holding 0.5 BTC long on Bybit at $83,000 with 0.01% funding rate. How much will funding cost me over 3 days?"

Carry trade

"Is this carry trade worth it? Long on Bybit at 0.01% funding, short on Binance at 0.05%, $50k notional, 30 days."

DCA average entry

"I bought BTC at $78k (0.2 BTC), $80k (0.3 BTC), and $82k (0.1 BTC). What's my average entry and breakeven?"

Scale-out plan

"I'm long 1 BTC from $80k. I want to close 30% at $88k, 40% at $92k, 30% at $96k. What's my total P&L?"


Tools (23)

Tool naming follows the workflow.run_* / primitive.* / system.* namespace convention. Old flat names (pnl, liquidation, etc.) are accepted for backward compatibility. All tools are free via MCP, no signup; 20 calls/day anonymously, 200/day with a free API key.

Trade Planning

| Tool | Description | |---|---| | workflow.run_pnl_planning | Net PnL, fees and gross profit/loss for a futures trade | | workflow.run_breakeven_planning | Break-even price accounting for entry/exit fees | | workflow.run_exit_target | Exit price required to hit a target PnL or ROE | | workflow.run_scenario_planning | Multi-scenario P&L analysis across price targets | | workflow.run_dca_entry | DCA across N price levels → avg entry, breakeven, level contribution | | workflow.run_scale_out | Partial exits at multiple levels → P&L per exit, weighted avg, overall ROI |

Risk & Margin

| Tool | Description | |---|---| | workflow.run_liquidation_safety | Liquidation price for long/short isolated margin | | workflow.run_position_sizing | Position size based on account size and max risk % | | workflow.run_max_leverage | Maximum safe leverage based on drawdown tolerance and volatility | | workflow.run_risk_reward | Full R:R analysis: sizing + liquidation + breakeven + P&L at stop and target |

Funding & Carry

| Tool | Description | |---|---| | workflow.run_funding_cost | Cumulative funding cost over a holding period | | workflow.run_funding_arbitrage | Annualized yield from long/short basis trades across two exchanges | | workflow.run_compound_funding | Capital growth projection from reinvesting funding income | | workflow.run_funding_breakeven | Price move needed to cover funding cost + fees over holding period | | workflow.run_carry_trade | Delta-neutral carry setup: net yield, ROI, breakeven days, verdict |

Market Structure (Market Profile)

| Tool | Description | |---|---| | workflow.run_open_analysis | Open location + type (OD/OTD/ORR/OAIR), VAH/VAL/VPOC/IB, scenario framing | | workflow.run_session_structure | Day-type classifier: trend / balance / neutral_trend / normal / normal_var | | workflow.run_value_migration | Value-area migration across sessions, directional conviction vs balance | | workflow.run_breakout_acceptance | Breakout acceptance vs rejection beyond the value area (optional delta) |

Primitives

| Tool | Description | |---|---| | primitive.average_entry | Average entry price after DCA into a position | | primitive.hedge_ratio | Short perp size and funding cost to hedge a spot position |

Integrated Decision

| Tool | Description | |---|---| | workflow.run_pre_trade_check | Full pre-trade decision: position size, liquidation, breakeven, funding cost, go/no-go signal. Accepts live exchange + symbol. |

System

| Tool | Description | |---|---| | system.verify | Run 35 canonical test vectors against all calculators. Returns pass/fail report. |

Formulas normalized across 17 exchanges: Binance, OKX, Bybit, Aster, Hyperliquid, MEXC, KuCoin, Gate, Deribit, Kraken, HTX, WOO, Phemex, Blofin, Backpack, CoinEx, dYdX.

Rate Limits

| Access | Req/day | Price | |---|---|---| | Anonymous | 20 | Free | | Free API key | 200 | Free |

The Service is free. Need a higher-limit key → email [email protected].

Pass key as: Authorization: Bearer <your-api-key>

Self-Verification

Agents can verify all 35 canonical test vectors before trusting results:

{
  "jsonrpc": "2.0", "id": 1,
  "method": "tools/call",
  "params": { "name": "system.verify", "arguments": {} }
}

Response: { "status": "pass", "passed": 35, "failed": 0, "total": 35 }

Live proof: tradingcalc.io/verify

Use Cases

  • Trading bots: check liquidation price before every trade
  • AI agents: deterministic risk calculations without hallucination risk
  • Multi-agent systems: drop-in risk management agent in analyst + risk + execution pipelines
  • Dashboards: embed calculations programmatically

Why deterministic?

LLMs asked directly give plausible but potentially wrong numbers. TradingCalc MCP returns exact calculations: same inputs always produce the same outputs. No hallucination risk for financial data.

Risk Agent Wrapper

examples/risk-agent-wrapper.ts: a drop-in TypeScript wrapper for risk-gated trade execution. Integrates with any agent framework (ElizaOS, CrewAI, AutoGen, Hummingbot, Freqtrade).

import { RiskAgent, preTradeGate } from './examples/risk-agent-wrapper';

const agent = new RiskAgent({ apiKey: 'tc_your_key', minLiqDistancePct: 3.0 });

const result = await agent.evaluate({
  symbol: 'BTCUSDT', exchange: 'bybit',
  side: 'long', entry_price: 83000, stop_loss: 81000,
  account_balance: 10000, risk_pct: 1, leverage: 5,
  funding_rate: 0.0001, hold_hours: 24,
});

if (result.approved) {
  // execute trade: result.recommended_size, result.liquidation_price
} else {
  console.log('Rejected:', result.rejection_reason);
}

// Binary gate for execution bots
const ok = await agent.isSafe({ symbol: 'ETHUSDT', side: 'short', ... });

// Standalone function (minimal integration)
const { approved, size, liqPrice } = await preTradeGate({ ... }, 'tc_your_key');

TypeScript SDK

For code-first integrations, use tradingcalc-sdk instead of raw JSON-RPC:

npm install tradingcalc-sdk
import { TradingCalcClient } from 'tradingcalc-sdk';

const tc = new TradingCalcClient({ apiKey: 'tc_your_key' });

// Workflows: orchestrated decisions
const check = await tc.workflows.preTradeCheck({ side: 'long', entry_price: 83000, leverage: 5, funding_rate: 0.0001, account_balance: 5000 });

// Primitives: single formula
const avg = await tc.primitives.averageEntry({ symbol: 'BTCUSDT', input: { fills: [{ price: 83000, quantity: 0.1 }] } });

// System
const report = await tc.system.verify();

tc.call() is available for raw MCP access. Full docs: npmjs.com/package/tradingcalc-sdk

Links