Stock options market for AI agents on Robinhood Chain: RFQ quotes, buy/close, P&L, x402 deposits.
Maintain this server? Claim it
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.
The quote that exits `account`'s open position in `instrument` before expiry: reads the position, takes the opposite side (long -> sell, short -> buy), size = min(|position|, quantity or the whole position), and returns the desk's signed quote with the fillOrderAs calldata in fill.send. You must send it with your own key before validUntil (`hedgehood close <instrument> --send` or the npm MCP's close_position); this server never sends. nothing_to_close when the account is flat there; a close_only:* refusal from the desk is returned with its reason.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
The quote that exits `account`'s open position in `instrument` before expiry: reads the position, takes the opposite side (long -> sell, short -> buy), size = min(|position|, quantity or the whole position), and returns the desk's signed quote with the fillOrderAs calldata in fill.send. You must send it with your own key before validUntil (`hedgehood close <instrument> --send` or the npm MCP's close_position); this server never sends. nothing_to_close when the account is flat there; a close_only:* refusal from the desk is returned with its reason.
| Argument | Type | Description |
|---|---|---|
| account* | string | |
| quantity | any | |
| instrument* | string | |
| session_key | any |
{
"type": "object",
"title": "close_quoteArguments",
"required": [
"account",
"instrument"
],
"properties": {
"account": {
"type": "string",
"title": "Account"
},
"quantity": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Quantity",
"default": null
},
"instrument": {
"type": "string",
"title": "Instrument"
},
"session_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Session Key",
"default": null
}
}
}The ERC-8004 Identity Registry record of an agent id and the accounts seen trading under it.
| Argument | Type | Description |
|---|---|---|
| agent_id* | integer |
{
"type": "object",
"title": "get_agent_recordArguments",
"required": [
"agent_id"
],
"properties": {
"agent_id": {
"type": "integer",
"title": "Agent Id"
}
}
}PAST activity of an account, newest first: fills (your side buy / sell, price, premium, fee), settlements (payout, PnL) and redeems, at most `limit` (<= 500) and after `since` (unix seconds), plus a one-line `summary`. Open positions are get_positions.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| since | any | |
| account* | string |
{
"type": "object",
"title": "get_historyArguments",
"required": [
"account"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 50
},
"since": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Since",
"default": null
},
"account": {
"type": "string",
"title": "Account"
}
}
}Leaderboard per account or per ERC-8004 agent id (by='agent'): fills, premium paid / received, settled PnL.
| Argument | Type | Description |
|---|---|---|
| by | string | |
| limit | integer | |
| order | string |
{
"type": "object",
"title": "get_leaderboardArguments",
"properties": {
"by": {
"type": "string",
"title": "By",
"default": "account"
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 25
},
"order": {
"type": "string",
"title": "Order",
"default": "settledPnlRaw"
}
}
}Model bid / ask / mid (USDG per share), delta and whether a quote would be given. instrument like NVDA-20261016-200-C.
| Argument | Type | Description |
|---|---|---|
| instrument* | string |
{
"type": "object",
"title": "get_markArguments",
"required": [
"instrument"
],
"properties": {
"instrument": {
"type": "string",
"title": "Instrument"
}
}
}PnL of an account: every position (open / closed / settled) with the desk's mark, unrealized and realized PnL, fees paid and the total, all USDG raw (1e6) signed from the account's side, plus a one-line `summary` in USDG.
| Argument | Type | Description |
|---|---|---|
| account* | string |
{
"type": "object",
"title": "get_pnlArguments",
"required": [
"account"
],
"properties": {
"account": {
"type": "string",
"title": "Account"
}
}
}ACTIVE positions: open positions, cost basis and leaderboard row of an account (and its ERC-8004 agent id when it has one). Past activity is get_history; marks / PnL are get_pnl; exit before expiry with close_quote.
| Argument | Type | Description |
|---|---|---|
| account* | string |
{
"type": "object",
"title": "get_positionsArguments",
"required": [
"account"
],
"properties": {
"account": {
"type": "string",
"title": "Account"
}
}
}A signed quote addressed to `account` for `quantity` shares (buy or sell), valid for seconds, with the exact calldata to send to fillOrderAs from the owner key or the given session key, the fee, the decay and a canFill preview. Sells are close-only: side=sell is quoted only against a long `account` holds in that instrument (else close_only:*); to exit a position use close_quote. Nothing is sent by this server.
| Argument | Type | Description |
|---|---|---|
| side* | string | |
| account* | string | |
| quantity* | string | |
| instrument* | string | |
| session_key | any |
{
"type": "object",
"title": "get_quoteArguments",
"required": [
"instrument",
"side",
"quantity",
"account"
],
"properties": {
"side": {
"type": "string",
"title": "Side"
},
"account": {
"type": "string",
"title": "Account"
},
"quantity": {
"type": "string",
"title": "Quantity"
},
"instrument": {
"type": "string",
"title": "Instrument"
},
"session_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Session Key",
"default": null
}
}
}How to fund a market balance with USDG over x402 (and the direct deposit path). amount in USDG.
| Argument | Type | Description |
|---|---|---|
| amount | any | |
| account | any |
{
"type": "object",
"title": "how_to_depositArguments",
"properties": {
"amount": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Amount",
"default": null
},
"account": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Account",
"default": null
}
}
}Instruments (expiry x strike x call/put) with their on-chain ids. expiry as YYYYMMDD or unix seconds.
| Argument | Type | Description |
|---|---|---|
| expiry | any | |
| underlying | any |
{
"type": "object",
"title": "list_instrumentsArguments",
"properties": {
"expiry": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Expiry",
"default": null
},
"underlying": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Underlying",
"default": null
}
}
}The option markets: underlying, addresses, version, open expiries.
No arguments.
{
"type": "object",
"title": "list_marketsArguments",
"properties": {}
}