derive-options-mcp
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., "@derive-options-mcp I think BTC goes up over the next month. I'd risk $500."
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.
derive-options-mcp
An MCP server for Derive options. Describe a view; get real option structures, priced against the live order book, sized to your budget, with the payoff and the worst case spelled out.
you: I think BTC goes up over the next month. I'd risk $500.
agent: BTC is 85,376.
## Up, capped — Price goes up, but not enormously.
Costs $500 for 0.46 contracts, expiring Fri, Oct 30 (37 days).
- Most you can lose: $500
- Most you can make: $1,347
- Breaks even at: 91,083
Legs: buy 1× 90,000C @ $2,354 · sell 1× 94,000C @ $1,271
$1,347 ┤ ▀▀▀▀▀▀▀▀▀▀▀▀
┤ ▀│
┤ ▀│
$0 ┼···························▀│···········
-$500 ┤▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│
└─────────────────┬──────────────────────
now 85,376No API key. No account. No wallet. It reads Derive's public API and does the arithmetic locally.
Install
Claude Code
claude mcp add derive-options -- npx -y derive-options-mcpClaude Desktop / Cursor / Codex — add to the MCP config:
{
"mcpServers": {
"derive-options": {
"command": "npx",
"args": ["-y", "derive-options-mcp"]
}
}
}Remote — npm run serve starts a streamable-HTTP endpoint on :8080/mcp.
To mount it inside an existing app, export the handler from any route that
speaks Web Request/Response (a Next.js route handler, for instance):
import { handleMcpRequest } from "derive-options-mcp/dist/transports/http.js";
export const POST = handleMcpRequest;Related MCP server: MCP Options Order Flow Server
Tools
Tool | Answers |
| "I think X goes up / stays flat / moves hard — what should I trade?" |
| "I hold this. How do I protect it?" |
| "What does an iron condor on ETH cost right now?" |
| Every shape, what it bets on, and its trade-off |
| The market |
| Prices and the tape |
Every tool returns two things: text with an ASCII payoff diagram for the
model and the chat window, and structuredContent carrying the full payoff
curve, every leg with its fill price and its quote, breakevens, both extremes
and a handoff link — enough for a host app to render its own chart without
re-deriving anything and disagreeing with what the user was just told.
How a proposal is chosen
Enumerate. Every shape that can express the view, at the three expiries nearest your horizon, at three distances from the money — about a hundred candidates.
Price against the book. Buys cross the ask, sells hit the bid. Priced off mark, every spread looks free, and the sell legs are exactly where these books are thinnest. A leg with no price on its side is a rejection, not a number to soften — so nothing is ever proposed that cannot be traded.
Size to the risk. Debit structures size on cost. Credit structures are constrained by what they can lose, not what they cost, so they size on that — otherwise a $500 budget quietly opens a $5,000 exposure.
Rank. By what each pays if the market moves one standard deviation by that expiry — the market's own implied volatility, not a guess — per dollar at risk. Each expiry is scored against its own one-sigma move, so a nine-day structure isn't flattered by a thirty-seven-day move.
It costs three network requests: the chain is cached and a whole expiry's book arrives in one call, so the hundred candidates are priced from three responses.
Structures whose loss has no limit are excluded unless you pass
allow_uncapped. They can't be sized against a budget, and their real
constraint is margin this server cannot see.
What it will not do
It does not trade. It holds no key, signs nothing, and has no account. Every result carries a link where you review and sign it yourself.
This is deliberate rather than unfinished. A Derive session key is not scope-limited — the protocol grants it the same authority as the account owner, withdrawals included — so a server holding one would be custodial. Building the trade and signing it are separate jobs, and only one of them belongs here.
Prices move. Everything is a snapshot. Treat a result more than a minute old as stale and ask again.
It is not advice. It tells you what a structure costs and what it can lose. What to do about that is yours.
Configuration
Variable | Default | |
|
|
|
|
| Where trade links point |
|
| HTTP transport only |
Mainnet is Derive v2 (api.lyra.finance) — v3 mainnet has not launched, and its
option books read bid 0 / ask 0.
Development
npm install && npm run build
npm test # pricing core, against a book under test
npx @modelcontextprotocol/inspector node dist/transports/stdio.jsMIT.
Available Tools
10 toolsget_option_chainThe book for one dateARead-only
Every quoted strike on one expiry — bid, ask, mark, implied volatility and delta for both the up and down contract. Use when you need to reason about the actual book rather than take a proposal.
Inputs: currency (required), around, expiry_ts. Returns: rows, spot, currency, expiryTs, +1 more
get_recent_tradesWhat the market just didARead-only
The most recent option trades on the whole exchange, newest first. Use to see what other people are actually putting money on before proposing something.
Inputs: limit, currency. Returns: trades
get_spotWhat a coin costs nowARead-only
Current price, and optionally where it has been, so a view can be grounded in what actually happened.
Inputs: currency (required), history_hours. Returns: spot, history, currency, changePct
get_tickerOne contract, in fullARead-only
Bid, ask, mark, implied volatility and greeks for a single named instrument, e.g. 'ETH-20261030-3000-C'.
Inputs: instrument (required). Returns: iv, ask, bid, mark, +6 more
list_currenciesCoins with option chainsARead-only
Which coins can be traded here, with their current price and how many expiries are listed.
Inputs: no named parameters. Returns: currencies
list_expiriesDates you can tradeARead-only
Every listed expiry for a coin, with how far away it is and how many strikes are quoted on it.
Inputs: currency (required). Returns: spot, currency, expiries
list_strategiesEvery shape this server can priceARead-only
The option structures available, each with what it bets on and its trade-off, in plain language. Use to pick a shape id for price_structure, or to explain the options to someone.
Inputs: no named parameters. Returns: strategies
price_structurePrice one named structureARead-only
Price a specific shape at a specific expiry against the live book — use when the shape is already decided, or to compare a variant of something propose_trades returned. offset pushes every leg further out of the money (cheaper, needs a bigger move). Returns the same full detail as a proposal. Call list_strategies first if you need the shape ids.
Inputs: currency (required), strategy (required), offset, contracts, +1 more. Returns: error, structure
propose_hedgeProtect a holdingARead-only
Given a holding and the level they want protected, return ways to protect it, priced against the live book. Use this for 'I hold 5000 dollars of ETH and want to protect it', 'how do I put a floor under my BTC'. The payoff returned is the WHOLE position — the coin plus the options — not the options alone, which is the only honest way to show what protection does. Says plainly where each one stops protecting and what it costs as a share of the holding.
Inputs: currency (required), limit, protect_at, coin_amount, +2 more. Returns: spot, options, currency, rejected, +3 more
propose_tradesPropose trades for a viewARead-only
Given a view on a coin and a budget, return a few real option structures that express it, priced against the live book and sized to the budget. Use this for 'I think X will go up', 'what should I trade if I expect a big move', 'how do I bet on ETH staying flat'. Every result is tradable right now: candidates that cannot be filled are discarded, not softened. Each is ranked by what it pays if the market moves one standard deviation by that expiry — the market's own implied volatility, not a guess — divided by what it puts at risk. Structures whose loss has no limit are left out unless allow_uncapped is set.
Inputs: view (required), currency (required), budget_usd (required), limit, +3 more. Returns: spot, view, atmIv, currency, +5 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool targets a distinct resource and action: trade proposals, hedging, pricing specific structures, listing strategies, currencies, expiries, option chains, spot, tickers, and recent trades. No two tools have overlapping purposes; even the two proposal tools are clearly separated by intent (expressing a view vs. protecting a holding).
All tools follow a consistent verb_noun pattern with lowercase snake_case: propose_trades, propose_hedge, price_structure, list_strategies, list_currencies, list_expiries, get_option_chain, get_spot, get_ticker, get_recent_trades. Verbs (propose, price, list, get) clearly indicate the action, and the pattern is uniform across the set.
With 10 tools, the server is well-scoped for its domain of options analysis and trade generation. Each tool serves a clear purpose—generating ideas, hedging, pricing, listing available instruments, and retrieving market data—without redundancy or bloat.
The surface covers the core workflow: generating trade ideas, hedging existing holdings, pricing specific structures, listing strategies and market metadata, and accessing detailed market data. A minor gap is the lack of trade execution (the server seems focused on analysis and pricing), but this is likely intentional given the server's name and description. Overall, the domain is well-covered.
Maintenance
Related MCP Connectors
Options probability of profit, P/L graphs, option chains and a trade finder for US stocks.
Options on Robinhood Chain: live offers, prices, positions, staking; prepares trades you sign.
Scan options flow, analyze real-time market data, and build investing and trading workflows.
Real-time news with bias scoring, live market data, and AI-powered options pricing
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides real-time options analytics, pricing with Greeks, Monte Carlo simulations, volatility analysis, strategy backtesting, and risk metrics using actual market data from Yahoo Finance and Polygon.io.1-
- AlicenseNot gradedqualityDmaintenanceEnables real-time options order flow analysis with pattern detection, institutional bias tracking, and monitoring of specific strike ranges and expirations. Provides comprehensive options trading data through integration with a high-performance Go-based data broker.11MIT
- AlicenseNot gradedqualityCmaintenanceConnects AI assistants to live options market data with 70+ tools for exposure analytics, volatility, strategy signals, and historical backtesting.1MIT
- FlicenseNot gradedqualityBmaintenanceConnects AI agents to real-time market data, options analysis, broker order staging, and automated alerts and workflows.-