The desk as tools
SKEW ships a Model Context Protocol server. MCP is the open standard that lets an AI client call a program’s functions as typed tools: you register the server once, and Claude can then scan for mispriced volatility, read a stress grid, inspect the risk tier or replay any decision — by asking, in plain language. Reads are always available. The two mutating tools are not even registered unless explicitly enabled, and both re-run the full gate chain and require an explicit confirmation argument. The model gets a desk, never a blank cheque.
Setup — three commands, copy-paste
1 · Clone and install
git clone https://github.com/SooryaCodes/skew.git ~/skew cd ~/skew/backend python3 -m venv .venv && .venv/bin/pip install -r requirements.txt2 · Add your Alpaca paper keys
cp ~/skew/.env.example ~/skew/.env # edit ~/skew/.env: ALPACA_API_KEY, ALPACA_API_SECRET (paper keys, free at alpaca.markets) ~/skew/backend/.venv/bin/python -m skew.cli account # confirms the account + options levelThe server refuses to start against anything but the paper endpoint, so there is nothing dangerous to misconfigure.
3 · Register it with your client
The exact blocks for Claude Code and Claude Desktop are below — with ~/skew paths that match step 1, so they work as pasted.
Read tools — always on
scan_volatility(symbols?)
Volatility state for the universe — IV, RV, VRP, regime per name.
propose_structures(symbol)
Defined-risk candidates for one name, sized to the risk budget.
stress_test(candidate_id)
The 84-scenario grid for a candidate: price × IV × time, breaches marked.
risk_status()
Tier, per-trade and portfolio budgets, headroom, drawdown.
positions()
The open book, marked to market, with exit conditions.
audit_log(limit?, action?)
Every decision with its reason — refusals as prominent as fills.
desk_status()
Armed state, market clock, account (paper), last cycle.
Write tools — off unless enabled, confirm-required
execute(candidate_id, confirm)
Submit one gated candidate as an atomic multi-leg order. Requires confirm=true and runs the full gate chain again first.
close(position_id, confirm)
Close one open structure as a single order. Same confirmation contract.
Claude Code — one line
claude mcp add skew -- ~/skew/backend/.venv/bin/python -m skew.mcp_serverThen /mcp inside a session to confirm it connected.
Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"skew": {
"command": "/Users/YOUR_USERNAME/skew/backend/.venv/bin/python",
"args": ["-m", "skew.mcp_server"],
"cwd": "/Users/YOUR_USERNAME/skew/backend"
}
}
}Claude Desktop needs absolute paths (it does not expand ~) — replace YOUR_USERNAME, and keep the command pointing at the virtualenv’s Python: a bare python will not have alpaca-py installed. Restart Claude Desktop and SKEW appears in the tools menu.
Try this — under a minute
- “What’s the desk’s status?” — armed state, market clock, tier, paper-only guarantee.
- “Scan volatility and tell me which name has the widest gap between implied and realized.” — the live VRP table, regime per name.
- “Propose structures for that name and stress-test the first one.” — real candidates sized to the budget, then the 84-cell grid with any breaches marked.
- “Show the last five decisions and why.” — the audit log, refusals included, each traceable.