Sign a real trade.
No account required.
Every request an agent sends to Robinhood is signed with an Ed25519 key over one exact string. Assemble that string below and produce a genuine signature — the math runs in your browser, on Robinhood's own published example key. Nothing is sent anywhere.
Robinhood publishes a signature
you can't reproduce.
Their docs hand you a worked example and invite you to check your client against it. That published signature does not match the JSON body a real client sends. Toggle the body below. Your browser re-verifies Robinhood's own signature against each one.
The published vector was generated by signing a Python dictionary's repr() — single quotes, spaces after colons, a different key order than their own table shows — not the JSON that travels the wire. Every working client signs the JSON and is "wrong" against the docs. robinhood-mcp signs the JSON, and pins this exact discrepancy in its test suite.
An MCP server that
actually trades.
Point Claude, Cursor, or any MCP client at it. A read-only server for quotes, holdings and history — and a separate, opt-in trading server that places real market, limit, stop-loss and stop-limit orders behind hard spend caps and a confirm gate.
13 order types Robinhood
doesn't have.
Robinhood offers four primitives. Everything below is synthesized on top of them as a durable job that outlives the tool call, survives a restart, and reconciles against the exchange after a crash so a slice is never double-filled.
Every order is real money.
Robinhood ships no paper environment. So the guards are enforced in code, not in a prompt — a thrown error, not a polite instruction.
Two commands
from your first trade.
Generate a keypair, register the public half at Robinhood, set two environment variables. The private key is a 32-byte Ed25519 seed and never leaves your machine.