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.
Available components
Last scanned (14 hours ago)
Scores higher than 57% of remote servers
Reachable. Last reached 18 Oct 2026.
Category Crypto and Web3
Recent critical change
Authorization (17 Oct 2026). See the changelog before you install this server.
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 → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (paper_close). See how to fix → View diagnostics → Fail
- 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 & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability64
- AI-judged instruction clarity (good).Pass
- 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. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage85
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 56% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 29 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
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.
- 17 Oct 26 +1
- Authorization: unverified → fail ▼ critical
- 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 security
- 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 cosmetic
- 15 Oct 26 +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.
- 12 Oct 26 +2
- Schema quality: pass → fail ▼ functional
- Tool coverage: 41% → 56% ▲ functional
- Stability: unverified → 0.07 ▲ functional
- New tool “paper_sim” functional
- 10 Oct 26 63
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 18 Oct 2026 · Probed https://marginpad.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=marginpad.io | CN=WE1,O=Google Trust Services,C=US | 6 Oct 2026 | 4 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | 2ed1fc57333c02df134419c1d545694a |
| SANs: marginpad.io, *.marginpad.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of marginpad.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 57355 | 8 | Verified |
| marginpad.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=31536000; includeSubDomains |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=(), payment=(), usb=(), serial=(), midi=() |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://marginpad.io/mcp | Verified | 200 | |
| http (plaintext) | http://marginpad.io/mcp | HTTPS enforced | 301 | https://marginpad.io/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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
calc_liquidation Liquidation price calculator ~44
Liquidation price for a position: entry, leverage, side.
| Name | Type | Req | Description |
|---|---|---|---|
| entry | number | yes | – |
| leverage | number | yes | – |
| side | string | yes | – |
No output schema declared.
No examples provided.
calc_position_size Position size calculator ~53
Risk-based position size from account balance, risk percent, entry and stop.
| Name | Type | Req | Description |
|---|---|---|---|
| balance | number | yes | – |
| entry | number | yes | – |
| risk_pct | number | yes | – |
| stop | number | yes | – |
No output schema declared.
No examples provided.
get_economic_calendar Economic calendar ~41
Upcoming macro events that move crypto (FOMC, CPI, NFP). Always check this before answering questions about dates - never answer those from memory.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_fear_greed Fear and Greed index ~23
Crypto Fear and Greed index, current value and classification.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_funding Funding rates ~31
Current funding rates across exchanges - who pays whom to hold a perp position.
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | – | – |
No output schema declared.
No examples provided.
get_klines OHLC candles ~67
OHLC candles for a symbol. Use this to compute indicators or check a setup before trading.
| Name | Type | Req | Description |
|---|---|---|---|
| interval | string | – | Minutes: 1, 5, 15, 60, 240, 1440, 10080 |
| symbol | string | yes | – |
No output schema declared.
No examples provided.
get_liquidations Liquidations (24h) ~26
Recent real liquidation events aggregated from eight exchanges.
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | – | – |
No output schema declared.
No examples provided.
get_markets Tradable markets ~40
Every tradable symbol with its asset class, maximum leverage and taker fee. Call this before sizing a trade.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_class | string | – | – |
No output schema declared.
No examples provided.
get_open_interest Open interest ~28
Open interest per symbol - how much leveraged money is committed.
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | – | – |
No output schema declared.
No examples provided.
get_price Live price ~63
Live price and 24h change for a crypto perp, stock, index, forex pair or metal. No API key needed.
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Symbol without the USDT suffix, e.g. BTC, ETH, AAPL, EURUSD, XAU |
No output schema declared.
No examples provided.
get_screener Setup screener ~38
Scored trade setups across top USDT perps: 0-100 technical score, RSI, MACD, funding and open interest.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
paper_accounts Paper books ~54
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
paper_balance Paper account balance ~30
Your paper account: balance, equity, free margin, unrealized P&L. Requires an API key.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
paper_cancel_order Cancel a resting order ~28
Cancel a resting limit order. Requires an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | – |
No output schema declared.
No examples provided.
paper_close Close a paper position ~51
Close a simulated position, fully or partially. Requires an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| pct | number | – | Percent to close, 1-100. Omit for the whole position. |
No output schema declared.
No examples provided.
paper_equity Equity curve ~81
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.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | 1-90, default 30 |
| step_min | number | – | Bucket minutes, 5-1440 |
No output schema declared.
No examples provided.
paper_fees Fee venue ~125
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.
| Name | Type | Req | Description |
|---|---|---|---|
| set | string | – | Omit to read. A venue key from the list, or "marginpad" to reset. |
No output schema declared.
No examples provided.
paper_limit_order Place a limit or stop order ~164
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.
| Name | Type | Req | Description |
|---|---|---|---|
| client_order_id | string | – | – |
| leverage | number | yes | – |
| limit_price | number | yes | Below the market for a long, above it for a short |
| margin_usd | number | yes | 1 to 100000 |
| side | string | yes | – |
| sl | number|null | – | – |
| symbol | string | yes | – |
| tp | number|null | – | – |
No output schema declared.
No examples provided.
paper_modify_order Modify a resting order ~97
Change a resting limit or stop order in place: its price, stop-loss, take-profit, margin, leverage or trailing stop. Requires an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| leverage | number | – | – |
| limit_price | number | – | – |
| margin_usd | number | – | – |
| order_id | string | yes | – |
| sl | number|null | – | – |
| tp | number|null | – | – |
| trail_pct | number|null | – | – |
No output schema declared.
No examples provided.
paper_open Open a paper position ~191
Open a simulated position at the live price. Simulated money only - no real funds are ever at risk. Requires an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | 1 to the symbol cap from get_markets |
| margin_usd | number | yes | 1 to 100000 |
| side | string | yes | – |
| sl | number|null | – | – |
| symbol | string | yes | – |
| 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 |
No output schema declared.
No examples provided.
paper_orders Resting orders ~31
Your resting limit orders, plus the last 20 that filled, expired or were cancelled. Requires an API key.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
paper_positions Paper positions ~49
Your paper positions with live mark price and P&L net of fees; status "open" for just the open ones. Requires an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | Omit for both |
No output schema declared.
No examples provided.
paper_realism Fill realism ~306
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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. |
No output schema declared.
No examples provided.
paper_replay Replay a past day ~203
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No output schema declared.
No examples provided.
paper_report Trading report ~77
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.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | 1-30, default 30 |
No output schema declared.
No examples provided.
paper_reset Reset the paper book ~56
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
paper_sim Simulation profile ~925
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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%. |
No output schema declared.
No examples provided.
paper_sltp Set stop / take-profit ~80
Move the stop-loss, take-profit or trailing stop on an open simulated position. Requires an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| sl | number|null | – | – |
| tp | number|null | – | – |
| trail_pct | number|null | – | Trailing stop distance in percent (0.05-50); null switches trailing off |
No output schema declared.
No examples provided.
paper_trades Closed paper trades ~49
Closed-trade ledger with paging - the full record for measuring a strategy. Requires an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| before | number | – | Epoch ms cursor from next_before |
| limit | number | – | – |
No output schema declared.
No examples provided.
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.
remote · marginpad.io
claude mcp add --transport http marginpad-sdk 'https://marginpad.io/mcp'
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.