# io.github.Marginpad/sdk (remote · marginpad.io)

Free crypto-futures paper trading and live market data for AI agents. 29 tools; no key for data.

- Trust score: 67/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

> **Recent critical change**: Authorization (2026-10-17). See the changelog below before you install this server.

## Components

- remote · `marginpad.io`: 67/100 (this document), [markdown](https://verifymcp.io/servers/marginpad-sdk/marginpad.md), [page](https://verifymcp.io/servers/marginpad-sdk/marginpad)

## Channel facts

- Endpoint: `https://marginpad.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `3.0.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (paper_close).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 3156 tokens (~108/item across 29 items; 29 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 85/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 56% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 29 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the io.github.Marginpad/sdk MCP server?

io.github.Marginpad/sdk is a hosted endpoint at https://marginpad.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http marginpad-sdk 'https://marginpad.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "marginpad-sdk": {
      "url": "https://marginpad.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "marginpad-sdk": {
      "type": "http",
      "url": "https://marginpad.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.marginpad-sdk]
url = "https://marginpad.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "marginpad-sdk": {
      "type": "remote",
      "url": "https://marginpad.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add marginpad-sdk --url 'https://marginpad.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  marginpad-sdk:
    url: "https://marginpad.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "marginpad-sdk": {
      "Transport": "http",
      "Url": "https://marginpad.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add marginpad-sdk -t streamable-http -u 'https://marginpad.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "marginpad-sdk": {
      "type": "http",
      "url": "https://marginpad.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-17 (score 67, +1)

- [critical regression] Authorization: unverified → fail
- [security] Tool “get_liquidations” rewrote its description, which is the text the model reads
- [security] Tool “paper_cancel_order” is now declared destructive
- [security] Tool “paper_close” is now declared destructive
- [security] Tool “paper_reset” is now declared destructive
- [cosmetic] Tool “calc_liquidation” changed its title: Liquidation price calculator
- [cosmetic] Tool “calc_position_size” changed its title: Position size calculator
- [cosmetic] Tool “get_economic_calendar” changed its title: Economic calendar
- [cosmetic] Tool “get_fear_greed” changed its title: Fear and Greed index
- [cosmetic] Tool “get_funding” changed its title: Funding rates
- [cosmetic] Tool “get_klines” changed its title: OHLC candles
- [cosmetic] Tool “get_liquidations” changed its title: Liquidations (24h)
- [cosmetic] Tool “get_markets” changed its title: Tradable markets
- [cosmetic] Tool “get_open_interest” changed its title: Open interest
- [cosmetic] Tool “get_price” changed its title: Live price
- [cosmetic] Tool “get_screener” changed its title: Setup screener
- [cosmetic] Tool “paper_accounts” changed its title: Paper books
- [cosmetic] Tool “paper_balance” changed its title: Paper account balance
- [cosmetic] Tool “paper_cancel_order” changed its title: Cancel a resting order
- [cosmetic] Tool “paper_close” changed its title: Close a paper position
- [cosmetic] Tool “paper_equity” changed its title: Equity curve
- [cosmetic] Tool “paper_fees” changed its title: Fee venue
- [cosmetic] Tool “paper_limit_order” changed its title: Place a limit or stop order
- [cosmetic] Tool “paper_modify_order” changed its title: Modify a resting order
- [cosmetic] Tool “paper_open” changed its title: Open a paper position
- [cosmetic] Tool “paper_orders” changed its title: Resting orders
- [cosmetic] Tool “paper_positions” changed its title: Paper positions
- [cosmetic] Tool “paper_realism” changed its title: Fill realism
- [cosmetic] Tool “paper_replay” changed its title: Replay a past day
- [cosmetic] Tool “paper_report” changed its title: Trading report
- [cosmetic] Tool “paper_reset” changed its title: Reset the paper book
- [cosmetic] Tool “paper_sim” changed its title: Simulation profile
- [cosmetic] Tool “paper_sltp” changed its title: Set stop / take-profit
- [cosmetic] Tool “paper_trades” changed its title: Closed paper trades

### 2026-10-15 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-12 (score 65, +2)

- [functional regression] Schema quality: pass → fail
- [functional improvement] Tool coverage: 41% → 56%
- [functional improvement] Stability: unverified → 0.07
- [functional] New tool “paper_sim”

### 2026-10-10 (score 63)

First indexed and scored.

## MCP tools (29)

### `get_price` (~63 tokens)

Live price

Live price and 24h change for a crypto perp, stock, index, forex pair or metal. No API key needed.

Input parameters:

- `symbol` (string, required): Symbol without the USDT suffix, e.g. BTC, ETH, AAPL, EURUSD, XAU

### `get_klines` (~67 tokens)

OHLC candles

OHLC candles for a symbol. Use this to compute indicators or check a setup before trading.

Input parameters:

- `interval` (string): Minutes: 1, 5, 15, 60, 240, 1440, 10080
- `symbol` (string, required)

### `get_markets` (~40 tokens)

Tradable markets

Every tradable symbol with its asset class, maximum leverage and taker fee. Call this before sizing a trade.

Input parameters:

- `asset_class` (string)

### `get_screener` (~38 tokens)

Setup screener

Scored trade setups across top USDT perps: 0-100 technical score, RSI, MACD, funding and open interest.

### `get_funding` (~31 tokens)

Funding rates

Current funding rates across exchanges - who pays whom to hold a perp position.

Input parameters:

- `symbol` (string)

### `get_open_interest` (~28 tokens)

Open interest

Open interest per symbol - how much leveraged money is committed.

Input parameters:

- `symbol` (string)

### `get_liquidations` (~26 tokens)

Liquidations (24h)

Recent real liquidation events aggregated from eight exchanges.

Input parameters:

- `symbol` (string)

### `get_fear_greed` (~23 tokens)

Fear and Greed index

Crypto Fear and Greed index, current value and classification.

### `get_economic_calendar` (~41 tokens)

Economic calendar

Upcoming macro events that move crypto (FOMC, CPI, NFP). Always check this before answering questions about dates - never answer those from memory.

### `calc_liquidation` (~44 tokens)

Liquidation price calculator

Liquidation price for a position: entry, leverage, side.

Input parameters:

- `entry` (number, required)
- `leverage` (number, required)
- `side` (string, required)

### `calc_position_size` (~53 tokens)

Position size calculator

Risk-based position size from account balance, risk percent, entry and stop.

Input parameters:

- `balance` (number, required)
- `entry` (number, required)
- `risk_pct` (number, required)
- `stop` (number, required)

### `paper_balance` (~30 tokens)

Paper account balance

Your paper account: balance, equity, free margin, unrealized P&L. Requires an API key.

### `paper_positions` (~49 tokens)

Paper positions

Your paper positions with live mark price and P&L net of fees; status "open" for just the open ones. Requires an API key.

Input parameters:

- `status` (string): Omit for both

### `paper_trades` (~49 tokens)

Closed paper trades

Closed-trade ledger with paging - the full record for measuring a strategy. Requires an API key.

Input parameters:

- `before` (number): Epoch ms cursor from next_before
- `limit` (number)

### `paper_open` (~191 tokens)

Open a paper position

Open a simulated position at the live price. Simulated money only - no real funds are ever at risk. Requires an API key.

Input parameters:

- `client_order_id` (string): Your own id - retrying with the same one returns the first position instead of opening a second
- `dry_run` (boolean): true = validate and price the trade (entry, liquidation, quantity, fees) and write NOTHING
- `leverage` (number, required): 1 to the symbol cap from get_markets
- `margin_usd` (number, required): 1 to 100000
- `side` (string, required)
- `sl` (number|null)
- `symbol` (string, required)
- `tp` (number|null)
- `trail_pct` (number|null): Trailing stop distance in percent (0.05-50): the stop follows the best price seen, server-side, even while the bot is offline

### `paper_close` (~51 tokens)

Close a paper position

Close a simulated position, fully or partially. Requires an API key.

Input parameters:

- `id` (string, required)
- `pct` (number): Percent to close, 1-100. Omit for the whole position.

### `paper_sltp` (~80 tokens)

Set stop / take-profit

Move the stop-loss, take-profit or trailing stop on an open simulated position. Requires an API key.

Input parameters:

- `id` (string, required)
- `sl` (number|null)
- `tp` (number|null)
- `trail_pct` (number|null): Trailing stop distance in percent (0.05-50); null switches trailing off

### `paper_modify_order` (~97 tokens)

Modify a resting order

Change a resting limit or stop order in place: its price, stop-loss, take-profit, margin, leverage or trailing stop. Requires an API key.

Input parameters:

- `leverage` (number)
- `limit_price` (number)
- `margin_usd` (number)
- `order_id` (string, required)
- `sl` (number|null)
- `tp` (number|null)
- `trail_pct` (number|null)

### `paper_fees` (~125 tokens)

Fee venue

Which exchange fee schedule your paper fills are charged at: lists the venues we model (Bybit, Binance, OKX, Bitget, MEXC, Gate, KuCoin, Kraken, Hyperliquid) with their taker rate and the referral discount a MarginPad sign-up gets, and your current default. Pass set to change the default (a venue key, or "marginpad" for the default rate). Requires an API key.

Input parameters:

- `set` (string): Omit to read. A venue key from the list, or "marginpad" to reset.

### `paper_sim` (~925 tokens)

Simulation profile

The whole paper-trading simulation, configurable. By default this engine is deliberately easy: a market order fills whole at the live price, maintenance margin is a flat 0.5%, the balance is a scorecard that never refuses an open, and there is no latency, no size impact and no partial fill. That is right for learning and optimistic for proving out a bot. This sets any of it: the book size your results are measured against and whether it is a real budget (margin_enforced), what crossing the book costs on entry and exit (slippage, slippage_bps, impact_bps_per_100k), how long your order is in flight (latency_ms), whether orders fill part-way (partial_fills, min_fill_pct), how often the venue refuses (reject_rate_pct), your own fee (taker_bps), funding (funding, funding_mult) and where liquidation sits (margin_venue, margin_tiers, mmr_pct). Easiest route: pass a preset - frictionless, realistic, binance, bybit, okx, hyperliquid, thin_book or brutal. Reading returns every field with its range, its default and what it changes, the presets, and what a fill would look like right now. Out-of-range values are refused, never clamped. Positions keep the simulation they were filled under. Requires an API key.

Input parameters:

- `exit_slippage` (boolean): Pay the crossing cost on the way out too (default true). A stop, take-profit or liquidation still fills at its level.
- `funding` (boolean): false = never charge funding, which is how you separate an execution edge from a carry edge.
- `funding_mult` (number): 0-5. Scale the real 8-hourly funding rate.
- `impact_bps_per_100k` (number): 0-500. Extra basis points per $100,000 of notional, because size walks further down the book.
- `latency_ms` (number): 0-2000. Your order is in flight this long and the price is re-read afterwards.
- `leverage_max` (number): Your own leverage ceiling below the market cap. 0 = the market cap.
- `margin_enforced` (boolean): true = an open needing more than free margin is refused 402, as a venue refuses it. Free margin is balance minus committed margin; unrealized profit is not collateral, because every position is isola…
- `margin_tiers` (boolean): Raise maintenance margin with size, as a risk-limit ladder does, so a large position liquidates sooner.
- `margin_venue` (string): binance | bybit | okx | bitget | mexc | kucoin | gate | kraken | hyperliquid | coinbase, or "marginpad". Moves ONLY where liquidation sits.
- `max_notional_usd` (number): Your own ceiling on one position’s notional. 0 = none.
- `min_fill_pct` (number): 10-100. The worst fill ratio with partial_fills on.
- `mmr_pct` (number): 0.05-10. Your own maintenance margin, beating margin_venue.
- `partial_fills` (boolean): Allow a market order to fill less than it asked for.
- `preset` (string): frictionless | realistic | binance | bybit | okx | hyperliquid | thin_book | brutal. A preset starts from the defaults, so it is a clean slate plus that configuration. Omit every field to READ.
- `reject_rate_pct` (number): 0-50. Share of opens refused 503 venue_rejected on purpose.
- `reset` (boolean): true = back to the engine defaults.
- `slippage` (boolean): Fill against yourself the way a real book does: 0.01% crypto majors, 0.05% other crypto, 0.005% forex, 0.02% stocks/metals/indices.
- `slippage_bps` (number): 0-500. Your own crossing cost in basis points instead of that table. 10 = 0.10%.
- `start_balance_usd` (number): 100 to 10,000,000. The book return_pct, the equity curve and max drawdown are measured against.
- `taker_bps` (number): 0-100. Your own per-side fee in basis points. 5.5 = 0.055%.

### `paper_realism` (~306 tokens)

Fill realism

How honestly your paper fills are simulated. By default a market order fills at the live price with no slippage and maintenance margin is a flat 0.5%, which is easier than a real exchange and increasingly so as a position grows. Pass slippage and/or margin_tiers to turn either on, and margin_venue to build on a named venue’s published maintenance-margin rate (Binance 0.40%, Bybit 0.50%, MEXC 0.10%, Kraken 0.60%, Hyperliquid 1.25%, Coinbase 1.33%). Reading returns your setting, every venue rate and the whole size-tier ladder, so a liquidation price never has to be reverse-engineered. Positions keep the margin they were filled with. Requires an API key.

Input parameters:

- `margin_tiers` (boolean): Raise maintenance margin with position size, as an exchange risk-limit table does, so a large position is liquidated sooner.
- `margin_venue` (string): binance | bybit | okx | bitget | mexc | kucoin | gate | kraken | hyperliquid | coinbase, or "marginpad" to reset. Omit every field to read.
- `slippage` (boolean): Fill against yourself the way a real order book does: 0.01% crypto majors, 0.05% other crypto, 0.005% forex, 0.02% stocks/metals/indices.

### `paper_report` (~77 tokens)

Trading report

The 30-day trading report for this account, measured from its own closed trades: totals and a skill score (free), win rate and return by coin, leverage band, side, hour and day plus written findings (API Pro and above). Requires an API key.

Input parameters:

- `days` (number): 1-30, default 30

### `paper_accounts` (~54 tokens)

Paper books

Every book (sub-account) of this account with lifetime numbers and the keys bound to it. A book is a separate journal, balance and report; a key minted with a book name trades that book. Requires an API key.

### `paper_reset` (~56 tokens)

Reset the paper book

Restart this key’s book at $10,000: closed trades are archived (never deleted), resting orders cancelled, the report and equity curve start from now. Refused while positions are open - close them first. Requires an API key.

### `paper_equity` (~81 tokens)

Equity curve

The equity curve of this key’s book: starting balance + realized P&L per bucket from the ledger, the live unrealized point at the end, and max drawdown. Requires an API key.

Input parameters:

- `days` (number): 1-90, default 30
- `step_min` (number): Bucket minutes, 5-1440

### `paper_replay` (~203 tokens)

Replay a past day

Backtest with the real routes: replay one past UTC day on MarginPad’s 1-minute candles. With symbol+day it STARTS a replay (speed = market seconds per real second, 1-600, default 60): from then on paper_open / paper_positions / paper_close act on a separate replay journal priced at the candle under the cursor, with stops, targets and liquidations checked on every candle. With no arguments it reads the status (cursor, price, progress, candles up to the cursor). With act "stop" it closes everything at the cursor and returns the summary. Requires an API key.

Input parameters:

- `act` (string): "stop" ends the replay and returns the summary
- `day` (string): Start: a complete past UTC day, YYYY-MM-DD
- `speed` (number): Start: 1-600, default 60
- `symbol` (string): Start: the market, e.g. BTC

### `paper_limit_order` (~164 tokens)

Place a limit or stop order

Place a resting order that fills only when the market reaches your price, and fills AT that price. type "limit" = a pullback entry (long below the market, short above); type "stop" = a breakout entry (long above the market, short below). To open right now use paper_open instead. Simulated money only. Requires an API key.

Input parameters:

- `client_order_id` (string)
- `leverage` (number, required)
- `limit_price` (number, required): Below the market for a long, above it for a short
- `margin_usd` (number, required): 1 to 100000
- `side` (string, required)
- `sl` (number|null)
- `symbol` (string, required)
- `tp` (number|null)

### `paper_orders` (~31 tokens)

Resting orders

Your resting limit orders, plus the last 20 that filled, expired or were cancelled. Requires an API key.

### `paper_cancel_order` (~28 tokens)

Cancel a resting order

Cancel a resting limit order. Requires an API key.

Input parameters:

- `order_id` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/marginpad-sdk/marginpad#diagnostics

## Score history

- 2026-10-18: 67
- 2026-10-17: 67
- 2026-10-16: 66
- 2026-10-15: 66
- 2026-10-14: 65
- 2026-10-13: 65
- 2026-10-12: 65
- 2026-10-10: 63

## Common questions

### What is the io.github.Marginpad/sdk MCP server?

io.github.Marginpad/sdk is an MCP server listed in the public MCP registry as io.github.Marginpad/sdk. Free crypto-futures paper trading and live market data for AI agents. 29 tools; no key for data. This page covers its hosted endpoint (https://marginpad.io/mcp).

### Is the io.github.Marginpad/sdk MCP server safe to use?

io.github.Marginpad/sdk scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.Marginpad/sdk MCP server expose?

io.github.Marginpad/sdk exposes 29 tools: get_price, get_klines, get_markets, get_screener, get_funding, and 24 more. Their descriptions and schemas cost roughly 3,051 tokens of context every time the server is loaded.

### Does the io.github.Marginpad/sdk MCP server require authentication?

No. We connected to io.github.Marginpad/sdk without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the io.github.Marginpad/sdk MCP server still maintained?

io.github.Marginpad/sdk is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://marginpad.io/mcp
- Repository: https://github.com/marginpad/sdk
- Website: https://marginpad.io/trading-api/#mcp
- Changelog RSS feed: https://verifymcp.io/servers/marginpad-sdk/marginpad.xml
- Changelog JSON feed: https://verifymcp.io/servers/marginpad-sdk/marginpad.json
- HTML version of this page: https://verifymcp.io/servers/marginpad-sdk/marginpad
