OptionsAhoy MCP Server

MCP serverDev tools

Get clear answers on when to exercise stock options, sell RSUs, or hedge a concentrated position, with tax treatment for all 50 states. Once added, your AI can work through ISO and NSO exercises, AMT exposure, QSBS eligibility, concentration risk, and hedging choices.

Use OptionsAhoy MCP Server in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add OptionsAhoy MCP Server and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the amt iso optimize tool from OptionsAhoy MCP Server

Details

Available today. Use it from your connected AI after setup.

After adding it, ask your AI a question about your equity, such as whether exercising options this year makes sense or how to handle a concentrated position.

OptionsAhoy MCP ServerStart free

What your AI can do with it

  • Plan ISO exercises around AMT
  • Model NSO exercise decisions
  • Weigh when to sell vested RSUs
  • Check QSBS treatment for your shares
  • Reduce risk in concentrated stock positions
  • Compare hedging options using rules for all 50 states

Install OptionsAhoy MCP Server

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user optionsahoy-mcp-server 'https://optionsahoy.com/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://optionsahoy.com/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=optionsahoy-mcp-server&config=eyJ1cmwiOiJodHRwczovL29wdGlvbnNhaG95LmNvbS9tY3AifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://optionsahoy.com/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add optionsahoy-mcp-server --url 'https://optionsahoy.com/mcp'

    Run it once, then sign in with codex mcp login optionsahoy-mcp-server if the server asks for an account.

From the project's README

As published by alvisooculus/optionsahoy-mcp in README.md.

Independently verified by third parties. Glama: third-party MCP-directory quality score (tool docs, behavior, completeness). · npm: published with build provenance, a signed SLSA attestation that this package was built from this repo by GitHub Actions (verify with npm audit signatures). · MCPSafe: independent 5-model-consensus security scan (AIVSS), Grade A with zero findings.

Validated against trusted sources (checks we run ourselves, against references we do not control, and that you can reproduce). Computation: every 2026 federal tax constant matches its IRS Rev. Proc. 2025-32 / Internal Revenue Code value, and 14 worked federal cases (ordinary income, long-term capital gains, and the Alternative Minimum Tax including the incentive stock option bargain element) reproduce to the cent against the independently-maintained PSL Tax-Calculator, a tax model we did not write. State income tax is cross-checked the same way: 16 cases across California, New York, New Jersey, Pennsylvania, and Massachusetts reproduce to the cent against OpenTaxSolver, an independent state tax engine we also did not write. The headline answer is recomputed live in your browser.

Tested and hardened. Input safety: requests are validated against the published schema; bad inputs return a clear 400 with the offending field named, never a crash or a wrong number, and the live API is re-checked by a robustness suite after every deploy. · Test suite: the calculation engine is covered by more than a thousand automated tests across the federal and 50-state tax logic, AMT credit recovery, and option pricing; a failing test blocks the release.

Live usage: successful tool calls over the last 30 days from real callers (our own monitors, crawlers and scanners excluded; pings and handshakes are not calls), served straight from the server's own telemetry (/api/v1/stats, aggregate counts only, no PII).

Deterministic equity-compensation tax math that any Model Context Protocol (MCP) client can call: incentive stock option (ISO) exercise schedules under the alternative minimum tax (AMT), non-qualified stock option (NSO) and restricted stock unit (RSU) decisions, qualified small business stock (QSBS) qualification, single-stock concentration, protective-put hedging, and equity-funding goals. Relevant federal tax code plus all 50 states and DC, 2026 brackets. Built by AlphaLatitude Inc., the company behind OptionsAhoy.

Why not just ask the model? We benchmarked five frontier large language models (LLMs), 3 runs each, 15 trials total, on the same multi-year ISO exercise problem. Every trial overstated the after-tax result of its own proposed schedule, by 2x to 20x. Multi-year scheduling has a search space larger than is practical to work through in-context; these tools return the verifiable answer instead. Live benchmark, updated for the latest models: optionsahoy.com/benchmark. Raw responses and scoring: llm-iso-benchmark. Full write-up: But can it do taxes though?

Install in one line

The hosted endpoint is https://optionsahoy.com/mcp (HTTP, no auth, no account). Quickest paths:

ClientInstall
Any MCP clientAdd https://optionsahoy.com/mcp as a remote HTTP server, or npx add-mcp https://optionsahoy.com/mcp
Claude DesktopDownload optionsahoy.mcpb and double-click it
19 clients via Smitherynpx @smithery/cli install alphalatitude/optionsahoy --client claude
Local stdio (npm)npx -y optionsahoy-mcp

Full install matrix (Gemini CLI extension, config-file JSON, REST API, Google Cloud Agent Registry): optionsahoy.com/for-agents.

The eight tools

Tool nameWhat it computes
amt_iso_optimizeMulti-year ISO exercise schedule that maximizes after-tax net final value at the planning horizon, modeling AMT credit recovery, grant expiration, and the post-termination exercise window
nso_calculateAfter-tax payout on an NSO exercise (federal, state, FICA), comparing sell-at-exercise vs hold for long-term capital gains
rsu_sell_vs_holdRSU vest decision: sell at vest vs hold for long-term capital gains, including the gap between 22% supplemental withholding and your marginal bracket
concentration_analyzeSingle-stock concentration risk (drawdown exposure at 30/50/70% downside), comparing after-tax sell-down, hold, and hedge strategies
protective_put_priceProtective put, zero-cost collar, and put spread pricing via Black-Scholes: annualized hedge cost, maximum loss, upside cap, protected band, floor-hit probability, and which structure it recommends
qsbs_checkSection 1202 QSBS qualification across the six statutory tests, with the OBBBA 2026 tiered exclusion and per-state conformity
equity_funding_planMulti-year, multi-stack sell schedule to hit a target after-tax amount by a deadline; returns four named plans plus the full risk/wealth frontier
rsu_lot_optimizeWhich vested RSU lots to sell, and on which dates, to divest a target share fraction at the lowest computed tax: specific-lot identification, long-term deferral, and multi-year bracket spreading with in-plan loss carryforward, versus a FIFO sell order

The ISO optimizer searches its full discretized candidate space and refines share by share, matching a brute-force maximum to the cent on a published tractable case (see the proof); the planners run deterministic bracket-aware searches and the calculators return exact results. Deterministic computation, not a language-model guess. Coverage spans the relevant federal tax code (ordinary brackets, long-term capital gains, AMT with credit recovery, FICA, NIIT) plus all 50 states and DC (state ordinary brackets, LTCG treatment, state AMT for CA, CO, CT, MN). Same engine as the in-browser calculators at optionsahoy.com/tools; the API response carries the same computed figures as clicking through the tool.

What a call looks like (all eight tools)

One real call per tool, captured from https://optionsahoy.com/mcp and committed under docs/examples/, so every figure below is auditable against the response it came from. The inputs are deliberately explicit (no ticker, every date pinned), so re-running scripts/capture-readme-examples.mts reproduces the same numbers. Each block shows the ask, the arguments that carry the scenario, and what came back.

amt_iso_optimize

"I have 50,000 vested ISOs at a $4 strike and the stock is at $90. Married filing jointly, $300,000 of income, California. Should I exercise the whole block now or spread it out?"

{"shares": 50000, "strike": 4, "fmv": 90, "horizon": 4, "filingStatus": "married_joint",
 "ordinaryIncome": 300000, "stateCode": "CA", "grantDate": "2023-03-15",
 "expectedGrowth": 0.1, "volatilityDrag": 0.2, "cashReturnRate": 0.05, …}

The optimized schedule exercises 1,401 / 1,339 / 1,280 / 45,980 shares across the four years and ends at a net final value of $1,623,234, against $1,565,849 for exercising the whole block today. The AMT crossover sits at 699 shares: the first $60,185 of bargain element costs no AMT at all. (raw; the same position as the site's published worked example, priced with the explicit growth and drag above)

nso_calculate

"5,000 NSOs at an $8 strike, stock at $75. Do I sell at exercise or hold a year for long-term gains? Single, $250,000 income, California."

{"shares": 5000, "strike": 8, "currentPrice": 75, "expectedSalePrice": 90, "holdYears": 1,
 "holdFunding": "sell-to-cover", "volatility": 0.3, "ordinaryIncome": 250000,
 "filingStatus": "single", "stateCode": "CA", …}

The exercise itself is a $335,000 bargain element taxed $159,618, leaving $175,382 if you sell everything on the spot. Holding a year with a sell-to-cover projects $193,943 against $184,209 for selling now and investing the proceeds, a $9,734 edge for holding. (raw)

rsu_sell_vs_hold

"1,000 RSUs vesting at $200. Sell at vest or hold another year and a half? Married filing jointly, $300,000 income, New York."

{"shares": 1000, "currentPrice": 200, "expectedSalePrice": 220, "holdYears": 1.5,
 "volatility": 0.25, "ordinaryIncome": 300000, "filingStatus": "married_joint",
 "stateCode": "NY", "stillEmployed": true, …}

The vest costs $73,896 in total tax, of which $55,716 is federal against only $44,000 withheld at the flat supplemental rate: that gap is the April bill people do not see coming. Selling at vest and investing projects $136,247 at the end of that hold versus $130,817 for holding, so holding loses $5,430 here. (raw)

concentration_analyze

"$750,000 of my $2.25M is in one tech stock I bought in 2022 for $150,000. How exposed am I, and what does selling down cost?"

{"positionValue": 750000, "costBasis": 150000, "acquisitionDate": "2022-01-15",
 "sector": "tech_software", "totalAssets": 2250000, "expectedPositionReturn": 0.12,
 "volatility": 0.35, "ordinaryIncome": 350000, "filingStatus": "single", "stateCode": "CA", …}

The position is 33% of net worth, which the tool bands as "Concentrated", and a 50% drawdown in that one name would cost $375,000. Selling it down over three years pays $196,709 in tax against $208,368 for selling in a single year. (raw)

protective_put_price

"I want downside protection on a $500,000 tech position for a year, with a floor about 20% below spot. Put, collar, or put spread?"

{"positionValue": 500000, "sector": "tech_software", "volatility": 0.35,
 "protectionLevel": 0.2, "tenorYears": 1, "spreadRiskLevel": 0.1, "expectedReturn": 0.08}

A bare put struck at $400,000 costs $19,348 a year, 3.87% of the position. The zero-cost collar buys the same floor for a net premium of roughly zero by capping upside at $724,518, which it puts a 15.7% chance on reaching, and that is the structure it recommends. (raw) This call passes an explicit sigma, so every leg prices at that one number; pass a ticker instead and each leg prices at its own strike's implied volatility off that stock's live option chain, which costs more for a floor this far out of the money.

qsbs_check

"I bought founder stock in March 2020 and I am selling in March 2026 for a $5M gain. Is it QSBS, and how much is tax-free?"

{"acquisitionDate": "2020-03-01", "saleDate": "2026-03-15", "entityType": "us-c-corp",
 "acquisitionMethod": "original-issuance", "assetCategory": "under-50m",
 "industry": "tech-software", "adjustedBasis": 50000, "expectedGain": 5000000, …}

Verdict qualifies: all six statutory tests pass at 6.0 years held, so 100% of the $5,000,000 gain is excludable under the $10,000,000 per-issuer cap, worth $1,190,000 in federal tax. California does not conform, so the same gain is fully taxable by the state. (raw)

equity_funding_plan

"I need $400,000 after tax by June 2029 for a house. I hold 3,500 shares at $120 across two lots. What do I sell, and when?"

{"targetAfterTax": 400000, "targetDate": "2029-06-30", "stacks": [{"currentPrice": 120,
 "expectedAnnualGrowth": 0.08, "lots": [{"shares": 2000, "costBasisPerShare": 50,
 "acquisitionDate": "2022-01-15"}, …]}], "ordinaryIncome": 350000, "stateCode": "CA", …}

Selling everything today falls short: it nets $391,574 against the $400,000 goal. The recommended staged plan sells 3,314 of the 3,500 shares over the years to the deadline, lands at $400,075 after tax with $63,740 of tax paid, and beats a single sale in the target year by $12,976. (raw)

rsu_lot_optimize

"I hold 3,000 vested RSU shares from three vests, the stock is at $180, and I want to cut the position in half over the next two years. Which lots go?"

{"lots": [{"vestDate": "2022-08-15", "shares": 1200, "costBasisPerShare": 95},
 {"vestDate": "2024-02-15", "shares": 1000, "costBasisPerShare": 130}, …],
 "currentPrice": 180, "divestFraction": 0.5, "horizonYears": 2, "ordinaryIncome": 200000, …}

To divest 1,500 of the 3,000 shares it pairs the underwater newest lot against long-term gains from an older one, so the whole divestment costs $2,935 in tax and keeps $267,065 after tax, $29,942 more than selling the same fraction in FIFO order. (raw)

Every example above passes volatility and growth explicitly. In a real call you can instead pass ticker: volatility resolves from the published implied-vol snapshot as of the last market close, and growth from the cached trailing-CAGR snapshot. If either cannot be resolved the call returns an error naming the exact field rather than a guessed number, and protective_put_price echoes volatilitySource (explicit, chain, ticker, or sector-default) plus pricingMode (chain-skew or flat) so you always know which sigma was priced and whether the legs were priced at their own strikes.

These captures ran in the 2026 tax year. Figures move in a later tax year for the three tools whose schedules run forward from today's date (amt_iso_optimize, equity_funding_plan, rsu_lot_optimize); everything else is pinned by the dates in the arguments.

Use it in your agent framework (Python)

If you build agents in Python rather than calling the MCP endpoint directly, OptionsAhoy ships installable tool packages for the major agent frameworks. Each one wraps the same calculators behind the framework's native tool interface. All are published on PyPI and all are keyless: no OptionsAhoy account, no API key.

FrameworkInstallImportExample
LangChainpip install optionsahoy-langchainfrom langchain_optionsahoy import get_optionsahoy_toolsequity_agent.py
LlamaIndexpip install llama-index-tools-optionsahoyfrom llama_index.tools.optionsahoy import OptionsAhoyToolSpecequity_agent.py
CrewAIpip install crewai-optionsahoyfrom crewai_optionsahoy import get_optionsahoy_toolsequity_crew.py
Plain Python clientpip install optionsahoyfrom optionsahoy import OptionsAhoyClientbasic_client.py

The three framework adapters pull in the keyless optionsahoy client automatically. There is also an OpenBB Workspace agent (a FastAPI application built on the OptionsAhoy client) for use inside OpenBB Workspace. Source and runnable examples for all of the above live under integrations/python.

More ways to build

However your agent is built, there is a drop-in piece. All are public and keyless.

Building blockWhat it is
Vercel AI SDK toolsA TypeScript package (optionsahoy-ai-sdk) exposing all eight calculators as Vercel AI SDK tool() definitions, ready to spread into generateText / streamText.
Instruction kitsEditor rules and skills for Cursor, Windsurf, Claude Skills, and Claude Code subagents, so your coding agent calls the OptionsAhoy tools for equity-compensation questions.
Coding recipesCopy-paste Python recipes, one self-contained file per question, calling the keyless API with only requests. Also in integrations/recipes.
Builder templatesAn importable n8n workflow plus build recipes for Flowise, Langflow, and Dify.
Tool-use evalAn inspect_ai evaluation measuring whether an agent reaches the provable optimum on a multi-year ISO problem, with and without the tool.
A2A discoveryAn Agent2Agent (A2A) Agent Card so other agents can discover and delegate equity-compensation questions to the planner.
Zed extensionA Zed editor context-server extension that connects the editor's agent to the OptionsAhoy MCP server.
ACI.dev appThe OptionsAhoy app definition for the ACI.dev open-source agent-tool platform.
OpenRouter bridgeA recipe for attaching the keyless OptionsAhoy MCP server to any model routed through OpenRouter's OpenAI-compatible endpoint.

Try it without installing

The live widget on optionsahoy.com/for-agents calls this same endpoint from your browser. No client, no config.

Prefer a chat interface? The same calculators answer plain-language questions at poe.com/OptionsAhoy.

Or watch a real session:

Real Claude Code session, unedited. A multi-stack META question (10K ISOs + 6K vested RSUs + 2K fresh RSUs + $400K house in 2027) fires 4 OptionsAhoy MCP tools in parallel: concentration risk, equity funding plan, AMT/ISO optimization, protective put pricing. Claude synthesizes the outputs into one plan that overrides each tool's standalone pick because the user is 86% concentrated in META. 2:13. Click the poster to play it on optionsahoy.com.

Endpoints and discovery

Live MCP endpoint: https://optionsahoy.com/mcp Live REST API: https://optionsahoy.com/api/v1 OpenAPI 3.1 spec: /openapi.json Discovery manifests: /.well-known/mcp.json · /.well-known/openapi.json Agent integration docs: optionsahoy.com/for-agents

MCP resources (topical briefings)

Eight markdown resources under resources/list give an LLM enough grounding to discuss the topic before picking a tool. Most map 1:1 with a cornerstone article on optionsahoy.com/learn and the matching calculator; the equity-funding briefing maps to its calculator, and the covered-tickers briefing enumerates the symbols the optional ticker shortcut resolves.

Resource URITopicPair with
https://optionsahoy.com/learn/amt-crossoverISO/AMT crossover and four expensive mistakesamt_iso_optimize
https://optionsahoy.com/learn/nso-sell-vs-holdNSO sell-at-exercise vs hold-for-LTCGnso_calculate
https://optionsahoy.com/learn/rsu-withholding-gapRSU 22% withholding gap and five April surprisesrsu_sell_vs_hold
https://optionsahoy.com/learn/single-stock-concentration-riskConcentration risk and diversification trade-offconcentration_analyze
https://optionsahoy.com/learn/zero-cost-collarsProtective puts, zero-cost collars, and put spreadsprotective_put_price
https://optionsahoy.com/learn/qsbsQSBS qualification and five ways to lose the exclusionqsbs_check
https://optionsahoy.com/tools/equity-fundingSelling equity to fund a cash goal by a deadlineequity_funding_plan
https://optionsahoy.com/tools/covered-tickersWhich symbols the optional ticker shortcut resolvesany tool taking ticker

MCP prompts (workflow scaffolds)

Eight prompts under prompts/list scaffold typical user questions and route to the right tool. In Claude Desktop they appear as named slash-commands; in any MCP client, prompts/get { name, arguments } returns a fully-templated user message.

Prompt nameRoutes to
optimize-iso-exerciseamt_iso_optimize
analyze-nso-decisionnso_calculate
analyze-rsu-vestrsu_sell_vs_hold
analyze-concentrationconcentration_analyze
price-protective-putprotective_put_price
check-qsbs-eligibilityqsbs_check
plan-equity-fundingequity_funding_plan
plan-equity-portfolioseveral tools, reconciled into one plan

A prompts/get invocation, arguments as strings:

{"name": "optimize-iso-exercise",
 "arguments": {"shares": "50000", "strike": "4", "fmv": "90", "expectedGrowth": "0.1",
               "volatility": "0.5", "state": "CA", "ordinaryIncome": "300000"}}

It returns one templated user message ("I have 50000 Incentive Stock Options (ISOs) with a strike of $4 per share ...") that already tells the model to call amt_iso_optimize with those values, to ask for any missing required field rather than assume it, and to report the optimized schedule against the lump-sum and even-split alternatives (raw).

Install details

Claude Desktop extension (one-click)

The optionsahoy.mcpb bundle installs by double-click (or drag onto Claude Desktop → Settings → Extensions), with no terminal or config-file editing, using Claude Desktop's built-in Node.js runtime.

To build the bundle from source:

npm install && npm run build:mcpb

Smithery CLI (19 clients, one command)

npx @smithery/cli install alphalatitude/optionsahoy --client claude

Swap claude for any client Smithery supports: claude-code, cursor, vscode, gemini-cli, codex, windsurf, cline, goose, opencode, and 10 more. Listing: smithery.ai/servers/alphalatitude/optionsahoy.

Gemini CLI extension

gemini extensions install https://github.com/AlvisoOculus/optionsahoy-mcp

This repo doubles as a Gemini CLI extension: gemini-extension.json wires the hosted MCP endpoint and GEMINI.md provides usage context to the model.

Local stdio (npm)

Shortened here. Read the whole README on GitHub.

Tools it offers (8)

What this server listed when Ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.

  • amt_iso_optimize
  • nso_calculate
  • rsu_sell_vs_hold
  • concentration_analyze
  • protective_put_price
  • qsbs_check
  • equity_funding_plan
  • rsu_lot_optimize

Signals

GitHub stars
5
Last commit
Oct 2026
Advanced
Delivery
optionsahoy-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-alvisooculus-optionsahoy-mcp
Source
github.com/alvisooculus/optionsahoy-mcp
Hosted endpoint
https://optionsahoy.com/mcp