Options on Robinhood Chain: live offers, prices, positions, staking; prepares trades you sign.
Maintained bykyte.sh(verified)Also a maintainer?
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Rank the open offers on one token: premium per token, premium as a share of strike, strike versus spot, time to expiry. Returns a sorted table with a short reason per row. Information only. Read-only.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http kyte https://kyte.sh/api/mcp
Rank the open offers on one token: premium per token, premium as a share of strike, strike versus spot, time to expiry. Returns a sorted table with a short reason per row. Information only. Read-only.
| Argument | Type | Description |
|---|---|---|
| kind | string | |
| token* | string | |
| sortBy | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"kind": {
"enum": [
"call",
"put"
],
"type": "string"
},
"token": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,16}$"
},
"sortBy": {
"enum": [
"premiumOverStrike",
"premiumPerToken",
"expiry",
"strikeVsSpot"
],
"type": "string",
"default": "premiumOverStrike"
}
}
}Turn a plain-language strategy into an Autopilot rule (sell covered calls or puts on a schedule, flag cheap calls or puts to buy, exercise in-the-money options, cancel stale offers). Validates the rule, explains it, and shows what it would have triggered over the last 30 days of prices. Returns a link to the Autopilot page where the user signs it. Nothing runs until the user signs. Ask for any number the user has not given rather than inventing it. Prepares only; never sends.
| Argument | Type | Description |
|---|---|---|
| rule* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"rule"
],
"properties": {
"rule": {
"type": "object",
"required": [
"type",
"params"
],
"properties": {
"note": {
"type": "string",
"maxLength": 140,
"description": "One line in the user's words, shown on the card"
},
"type": {
"enum": [
"list_call",
"list_put",
"buy_call",
"buy_put",
"exercise",
"cancel_unfilled"
],
"type": "string"
},
"token": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,16}$",
"description": "Token symbol; required for list_* and buy_*"
},
"limits": {
"type": "object",
"default": {},
"properties": {
"maxTotalRiskEth": {
"type": "number",
"minimum": 0
},
"maxExposureTokens": {
"type": "number",
"minimum": 0
},
"maxPremiumEthPerDay": {
"type": "number",
"minimum": 0
}
}
},
"params": {
"type": "object",
"properties": {
"pct": {
"type": "number",
"maximum": 500,
"minimum": 0,
"description": "list_call: % above spot; list_put: % below spot"
},
"amount": {
"type": "number",
"description": "list_*: tokens per offer",
"exclusiveMinimum": 0
},
"expirySec": {
"type": "integer",
"maximum": 7776000,
"minimum": 3600,
"description": "list_*: option lifetime in seconds"
},
"marginPct": {
"type": "number",
"maximum": 500,
"minimum": 0,
"description": "exercise: how far in the money before triggering"
},
"afterHours": {
"type": "number",
"maximum": 2160,
"minimum": 1,
"description": "cancel_unfilled: cancel offers unfilled after this many hours"
},
"fillWindowSec": {
"type": "integer",
"maximum": 7776000,
"minimum": 600,
"description": "list_*: how long the offer stays open"
},
"maxPremiumEth": {
"type": "number",
"minimum": 0.0005,
"description": "buy_*: never pay more than this per option"
},
"minPremiumEth": {
"type": "number",
"minimum": 0.0005,
"description": "list_*: premium floor in ETH (protocol minimum 0.0005)"
},
"minHoursToExpiry": {
"type": "number",
"maximum": 2160,
"minimum": 0,
"description": "buy_*: skip offers closer to expiry than this"
},
"maxStrikeVsSpotPct": {
"type": "number",
"maximum": 500,
"minimum": 0,
"description": "buy_*: strike may differ from spot by at most this %"
},
"maxHoursBeforeExpiry": {
"type": "number",
"maximum": 2160,
"minimum": 0,
"description": "exercise: only trigger inside this window"
},
"maxPremiumOverStrike": {
"type": "number",
"maximum": 1,
"minimum": 0.0001,
"description": "buy_*: premium as a fraction of strike, e.g. 0.03"
},
"minHoursBeforeExpiry": {
"type": "number",
"maximum": 2160,
"minimum": 0,
"description": "exercise: never trigger closer to expiry than this"
}
}
},
"schedule": {
"type": "object",
"default": {
"repeat": false
},
"properties": {
"until": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"repeat": {
"type": "boolean",
"default": false
},
"maxRuns": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1
},
"cooldownSec": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}
}
}
}
}Plain-language economics of one offer for both sides: what the buyer pays and gets, breakeven per token, max loss and max payoff, what the seller receives after fees, exercise fee, time left. Computed from get_offer and get_prices. Read-only.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^\\d{1,80}$"
}
}
}Open option offers you can buy right now, filterable by token and kind (call or put), soonest expiry first. Each row has strike per token, premium, amount, expiry and a link. Read-only.
| Argument | Type | Description |
|---|---|---|
| kind | string | |
| limit | integer | |
| token | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"kind": {
"enum": [
"call",
"put"
],
"type": "string"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"token": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,16}$"
}
}
}Recent protocol events: listings, fills, exercises, expiries, cancellations, fee splits, burns and staking, newest first, each with a transaction hash. Read-only.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| token | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"token": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,16}$"
}
}
}Recent OHLC candles for a token, in ETH per token. Use for "how has X moved today". Read-only.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| token* | string | |
| interval | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"limit": {
"type": "integer",
"default": 24,
"maximum": 200,
"minimum": 2
},
"token": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,16}$"
},
"interval": {
"enum": [
"60",
"300",
"900",
"3600",
"86400"
],
"type": "string",
"default": "3600"
}
}
}One offer or position in full by its id: kind, token, amount, strike, premium, expiry, seller, holder, status, fees and the transaction that created it. Read-only.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^\\d{1,80}$"
}
}
}What an address holds (options it can exercise), is selling (its open and filled offers) and its recent history. Pass the connected wallet address. Read-only.
| Argument | Type | Description |
|---|---|---|
| address* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
}
}
}Live price in ETH per token for every listed token with a feed, the 1 hour change, the source (Uniswap v4 swaps, a DEX price or a Robinhood quote), for FOBO launchpad tokens the floor price the hook guarantees, and, for stock tokens, the session state (open, held over the weekend, halted, paused, stale) with a warning when the quote is not live. Read-only.
| Argument | Type | Description |
|---|---|---|
| tokens | array | Symbols to include; all when omitted |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tokens": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,16}$"
},
"maxItems": 20,
"description": "Symbols to include; all when omitted"
}
}
}Every fee split (per epoch, with the WETH to stakers, buyback and operations) and every $KYTE buyback burn, each with its transaction hash. Read-only.
| Argument | Type | Description |
|---|---|---|
| limit | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
}
}
}Protocol totals: volume, fees, open interest, $KYTE burned, $KYTE staked, number of stakers, active and total offers. Read-only.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}USDG trading rewards: the pool this 24 h epoch, the scoring rules (points per ETH of fee paid, 1.5x for cash-secured puts on stock tokens, 0.2x for open interest carried through an epoch end), and for a given address its points and estimated USDG this epoch, the epochs it can claim now and what it has claimed. Claims are signed on the kyte.sh Rewards page. Read-only.
| Argument | Type | Description |
|---|---|---|
| address | string | Wallet to look up; omit for the program only |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Wallet to look up; omit for the program only"
}
}
}Staking state: total $KYTE staked, the current epoch and when it ends, last epoch rewards, and for a given address its active and pending stake and claimable WETH. Read-only.
| Argument | Type | Description |
|---|---|---|
| address | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
}
}
}Launchpad tokens on Robinhood Chain. launchpad=pons (default): graduated (locked liquidity crossed 4.2 ETH), near graduation, recent, or the ones listed on Kyte. launchpad=fobo: tokens from fobo.fun, whose floor only rises; status eligible = the floor backs 4.2 ETH after 24 h (Kyte lists these), near = getting close, recent = new launches, listed = on Kyte. Each has price, market cap, 24h change, liquidity (FOBO: the floor price and what it backs) and whether Kyte lists it. Options on launchpad tokens expire within 24 hours. Read-only.
| Argument | Type | Description |
|---|---|---|
| hours | integer | window in hours for graduated and recent (pons: 36 at most, fobo: 72) |
| limit | integer | |
| status | string | pons: graduated (default) | near | recent | listed. fobo: eligible (default) | near | recent | listed |
| launchpad | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hours": {
"type": "integer",
"default": 36,
"maximum": 72,
"minimum": 1,
"description": "window in hours for graduated and recent (pons: 36 at most, fobo: 72)"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"status": {
"enum": [
"recent",
"graduated",
"near",
"listed",
"eligible"
],
"type": "string",
"description": "pons: graduated (default) | near | recent | listed. fobo: eligible (default) | near | recent | listed"
},
"launchpad": {
"enum": [
"pons",
"fobo"
],
"type": "string",
"default": "pons"
}
}
}The user's Autopilot rules and the triggers waiting for them (prepared actions to review and sign). Needs the wallet address.
| Argument | Type | Description |
|---|---|---|
| address* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
}
}
}Which tokens are listed on Kyte and can have options written on them, with whether puts are enabled, the exposure cap and the minimum strike per token. Read-only.
| Argument | Type | Description |
|---|---|---|
| query | string | Optional filter: part of a symbol or name |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "string",
"maxLength": 32,
"description": "Optional filter: part of a symbol or name"
}
}
}Prepare buying an open offer: returns a preview of what the buyer pays and gets and a kyte.sh link that opens the buy dialog for that offer. Does not send anything; the user signs in their wallet. Prepares only; never sends.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^\\d{1,80}$"
}
}
}Prepare a cash-secured put (only on tokens with puts enabled): validates the inputs and returns a preview and a pre-filled kyte.sh Sell link. The seller locks the strike in WETH. Does not send anything. Prepares only; never sends.
| Argument | Type | Description |
|---|---|---|
| token* | string | |
| amount* | number | |
| expiry | string | |
| premium* | number | |
| fillWindow | string | |
| strikePerToken* | number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token",
"amount",
"strikePerToken",
"premium"
],
"properties": {
"token": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,16}$"
},
"amount": {
"type": "number",
"exclusiveMinimum": 0
},
"expiry": {
"enum": [
"1h",
"1d",
"3d",
"1w",
"2w",
"1m",
"3m"
],
"type": "string",
"default": "1w"
},
"premium": {
"type": "number",
"exclusiveMinimum": 0
},
"fillWindow": {
"enum": [
"1h",
"1d",
"3d",
"1w",
"2w",
"1m",
"3m"
],
"type": "string"
},
"strikePerToken": {
"type": "number",
"exclusiveMinimum": 0
}
}
}Prepare a covered call: validates token, amount, strike per token (ETH), premium (ETH) and expiry against the protocol rules, then returns a preview and a kyte.sh Sell link with the form pre-filled. The seller must hold the tokens. Does not send anything. Prepares only; never sends.
| Argument | Type | Description |
|---|---|---|
| token* | string | |
| amount* | number | |
| expiry | string | |
| premium* | number | |
| fillWindow | string | |
| strikePerToken* | number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token",
"amount",
"strikePerToken",
"premium"
],
"properties": {
"token": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,16}$"
},
"amount": {
"type": "number",
"exclusiveMinimum": 0
},
"expiry": {
"enum": [
"1h",
"1d",
"3d",
"1w",
"2w",
"1m",
"3m"
],
"type": "string",
"default": "1w"
},
"premium": {
"type": "number",
"exclusiveMinimum": 0
},
"fillWindow": {
"enum": [
"1h",
"1d",
"3d",
"1w",
"2w",
"1m",
"3m"
],
"type": "string"
},
"strikePerToken": {
"type": "number",
"exclusiveMinimum": 0
}
}
}Prepare exercising a held option: checks it is filled and not expired, previews what the holder pays and receives including the exercise fee, and returns the kyte.sh Positions link. Does not send anything. Prepares only; never sends.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^\\d{1,80}$"
}
}
}Prepare staking or unstaking $KYTE, or claiming WETH rewards: returns a preview and a pre-filled kyte.sh Stake link. Does not send anything. Prepares only; never sends.
| Argument | Type | Description |
|---|---|---|
| action* | string | |
| amount | number | $KYTE amount for stake or unstake |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"stake",
"unstake",
"claim"
],
"type": "string"
},
"amount": {
"type": "number",
"description": "$KYTE amount for stake or unstake",
"exclusiveMinimum": 0
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 9, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.