OptionsAhoy

Planificación fiscal de compensación en acciones y de ejercicio/venta/cobertura para empleados en EE. UU.: calendarios de ejercicio de ISO con AMT, calculadoras de NSO y RSU, ordenamiento de lotes de RSU, verificaciones de QSBS, análisis de concentración y precios de cobertura. Cálculo fiscal federal más los 50 estados más DC. Servidor remoto alojado (HTTP transmisible), gratuito, sin clave de API.

Documentación

Servidor MCP de OptionsAhoy

Glama quality score npm version MCPSafe security grade MCP calls in the last 30 days

Verificado de forma independiente por terceros. Glama: puntuación de calidad de terceros en el directorio de MCP (documentación de herramientas, comportamiento, integridad). · npm: publicado con procedencia de compilación, una atestación firmada de SLSA que confirma que este paquete se compiló desde este repositorio mediante GitHub Actions (verifícalo con npm audit signatures). · MCPSafe: análisis de seguridad independiente con consenso de 5 modelos (AIVSS), grado A con cero hallazgos.

Validado contra fuentes confiables (comprobaciones que ejecutamos nosotros mismos, contra referencias que no controlamos y que tú puedes reproducir). Cálculo: cada constante fiscal federal de 2026 coincide con su valor en la Rev. Proc. 2025-32 del IRS / Código de Rentas Internas, y 14 casos federales resueltos (ingreso ordinario, ganancias de capital a largo plazo y el Impuesto Mínimo Alternativo, incluido el elemento de ventaja de las opciones de acciones de incentivo) se reproducen al centavo contra el PSL Tax-Calculator, mantenido de forma independiente, un modelo fiscal que no escribimos nosotros. El impuesto estatal sobre la renta se verifica de la misma manera: 16 casos en California, Nueva York, Nueva Jersey, Pensilvania y Massachusetts se reproducen al centavo contra OpenTaxSolver, un motor fiscal estatal independiente que tampoco escribimos nosotros. La respuesta principal se recalcula en vivo en tu navegador.

Probado y endurecido. Seguridad de entrada: las solicitudes se validan contra el esquema publicado; las entradas incorrectas devuelven un 400 claro con el campo infractor identificado, nunca un fallo ni un número equivocado, y la API en vivo se vuelve a verificar con una suite de robustez después de cada implementación. · Suite de pruebas: el motor de cálculo está cubierto por más de mil pruebas automatizadas en la lógica fiscal federal y de los 50 estados, la recuperación del crédito del AMT y la valoración de opciones; una prueba fallida bloquea el lanzamiento.

Uso en vivo: llamadas MCP en los últimos 30 días, servidas directamente desde la telemetría del propio servidor (/api/v1/stats, solo conteos agregados, sin PII).

Matemática fiscal determinista para compensación de capital que cualquier cliente del Protocolo de Contexto de Modelo (MCP) puede invocar: calendarios de ejercicio de opciones de acciones de incentivo (ISO) bajo el impuesto mínimo alternativo (AMT), decisiones sobre opciones de acciones no calificadas (NSO) y unidades de acciones restringidas (RSU), calificación de acciones calificadas de pequeñas empresas (QSBS), concentración en una sola acción, cobertura con opciones de venta protectoras y objetivos de financiamiento de capital. Código fiscal federal relevante más los 50 estados y DC, tramos de 2026. Creado por AlphaLatitude Inc., la empresa detrás de OptionsAhoy.

¿Por qué no simplemente preguntarle al modelo? Evaluamos cinco modelos de lenguaje de gran escala (LLM) de frontera, 3 ejecuciones cada uno, 15 pruebas en total, sobre el mismo problema de ejercicio de ISO a varios años. Cada prueba sobrestimó el resultado después de impuestos de su propio calendario propuesto, entre 2x y 20x. La programación a varios años tiene un espacio de búsqueda más grande de lo práctico para resolver en contexto; estas herramientas devuelven la respuesta verificable en su lugar. Evaluación comparativa en vivo, actualizada para los modelos más recientes: optionsahoy.com/benchmark. Respuestas y puntuaciones crudas: llm-iso-benchmark. Informe completo: ¿Pero puede hacer impuestos?

Instalación en una línea

El endpoint alojado es https://optionsahoy.com/mcp (HTTP, sin autenticación, sin cuenta). Rutas más rápidas:

ClienteInstalación
Cualquier cliente MCPAgrega https://optionsahoy.com/mcp como servidor HTTP remoto, o npx add-mcp https://optionsahoy.com/mcp
Claude DesktopDescarga optionsahoy.mcpb y haz doble clic
19 clientes vía Smitherynpx @smithery/cli install alphalatitude/optionsahoy --client claude
stdio local (npm)npx -y optionsahoy-mcp

Matriz de instalación completa (extensión de Gemini CLI, JSON de archivo de configuración, API REST, Registro de Agentes de Google Cloud): optionsahoy.com/for-agents.

Las ocho herramientas

Nombre de la herramientaQué calcula
amt_iso_optimizeCalendario de ejercicio de ISO a varios años que maximiza el valor final neto después de impuestos en el horizonte de planificación, modelando la recuperación del crédito del AMT, la expiración de la concesión y la ventana de ejercicio posterior a la terminación
nso_calculatePago después de impuestos por un ejercicio de NSO (federal, estatal, FICA), comparando vender en el ejercicio vs. mantener para ganancias de capital a largo plazo
rsu_sell_vs_holdDecisión de adjudicación de RSU: vender en la adjudicación vs. mantener para ganancias de capital a largo plazo, incluida la brecha entre la retención suplementaria del 22% y tu tramo marginal
concentration_analyzeRiesgo de concentración en una sola acción (exposición a caídas del 30/50/70%), comparando estrategias de venta gradual, mantener y cobertura después de impuestos
protective_put_priceValoración de opción de venta protectora, collar de costo cero y diferencial de opciones de venta mediante Black-Scholes: costo de cobertura anualizado, pérdida máxima, límite de ganancia, banda protegida, probabilidad de tocar el piso y qué estructura recomienda
qsbs_checkCalificación QSBS de la Sección 1202 en las seis pruebas legales, con la exclusión escalonada de OBBBA 2026 y la conformidad por estado
equity_funding_planCalendario de venta a varios años y de múltiples bloques para alcanzar un monto objetivo después de impuestos para una fecha límite; devuelve cuatro planes nombrados más la frontera completa de riesgo/riqueza
rsu_lot_optimizeQué lotes de RSU adjudicados vender, y en qué fechas, para desinvertir una fracción objetivo de acciones al menor impuesto calculado: identificación de lotes específicos, diferimiento a largo plazo y distribución entre tramos a varios años con arrastre de pérdidas dentro del plan, versus una orden de venta FIFO

El optimizador de ISO busca en todo su espacio de candidatos discretizado y refina acción por acción, igualando un máximo de fuerza bruta al centavo en un caso publicable y manejable (ver la prueba); los planificadores ejecutan búsquedas deterministas conscientes de los tramos y las calculadoras devuelven resultados exactos. Cálculo determinista, no una suposición de modelo de lenguaje. La cobertura abarca el código fiscal federal relevante (tramos ordinarios, ganancias de capital a largo plazo, AMT con recuperación de crédito, FICA, NIIT) más los 50 estados y DC (tramos ordinarios estatales, tratamiento de ganancias de capital a largo plazo, AMT estatal para CA, CO, CT, MN). El mismo motor que las calculadoras en el navegador en optionsahoy.com/tools; la respuesta de la API lleva las mismas cifras calculadas que al hacer clic en la herramienta.

Cómo se ve una llamada (las ocho herramientas)

Una llamada real por herramienta, capturada de https://optionsahoy.com/mcp y confirmada en docs/examples/, para que cada cifra a continuación sea auditable contra la respuesta de la que proviene. Las entradas son deliberadamente explícitas (sin ticker, cada fecha fijada), de modo que volver a ejecutar scripts/capture-readme-examples.mts reproduce los mismos números. Cada bloque muestra la pregunta, los argumentos que contienen el escenario y lo que se devolvió.

amt_iso_optimize

"Tengo 50,000 ISO adjudicadas a un precio de ejercicio de $4 y la acción está a $90. Casado con declaración conjunta, $300,000 de ingresos, California. ¿Debo ejercer todo el bloque ahora o distribuirlo?"

{"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, …}

El calendario optimizado ejerce 1,401 / 1,339 / 1,280 / 45,980 acciones en los cuatro años y termina con un valor final neto de $1,623,234, frente a $1,565,849 por ejercer todo el bloque hoy. El punto de cruce del AMT está en 699 acciones: los primeros $60,185 del elemento de ventaja no cuestan nada de AMT. (crudo; la misma posición que el ejemplo resuelto publicado del sitio, valorado con el crecimiento y el arrastre explícitos anteriores)

nso_calculate

"5,000 NSO a un precio de ejercicio de $8, acción a $75. ¿Vendo en el ejercicio o mantengo un año para ganancias a largo plazo? Soltero, $250,000 de ingresos, California."

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

El ejercicio en sí es un elemento de ventaja de $335,000 gravado con $159,618, dejando $175,382 si vendes todo en el acto. Mantener un año con venta para cubrir proyecta $193,943 frente a $184,209 por vender ahora e invertir las ganancias, una ventaja de $9,734 por mantener. (crudo)

rsu_sell_vs_hold

"1,000 RSU que se adjudican a $200. ¿Vendo en la adjudicación o mantengo otro año y medio? Casado con declaración conjunta, $300,000 de ingresos, Nueva York."

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

La adjudicación cuesta $73,896 en impuestos totales, de los cuales $55,716 son federales contra solo $44,000 retenidos a la tasa suplementaria fija: esa brecha es la factura de abril que la gente no ve venir. Vender en la adjudicación e invertir proyecta $136,247 al final de ese período de mantenimiento versus $130,817 por mantener, así que mantener pierde $5,430 aquí. (crudo)

concentration_analyze

"$750,000 de mis $2.25M están en una acción tecnológica que compré en 2022 por $150,000. ¿Qué tan expuesto estoy y cuánto cuesta vender gradualmente?"

{"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", …}

La posición es el 33% del patrimonio neto, que la herramienta clasifica como "Concentrada", y una caída del 50% en ese único valor costaría $375,000. Venderla gradualmente en tres años paga $196,709 en impuestos frente a $208,368 por vender en un solo año. (crudo)

protective_put_price

"Quiero protección contra caídas en una posición tecnológica de $500,000 durante un año, con un piso aproximadamente 20% por debajo del precio actual. ¿Opción de venta, collar o diferencial de opciones de venta?"

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

Una opción de venta simple con ejercicio a $400,000 cuesta $19,348 al año, el 3.87% de la posición. El collar de costo cero compra el mismo piso por una prima neta de aproximadamente cero al limitar las ganancias a $724,518, al que le asigna una probabilidad del 15.7% de alcanzarlo, y esa es la estructura que recomienda. (crudo) Esta llamada pasa una sigma explícita, por lo que cada pata se valora con ese único número; pasa un ticker en su lugar y cada pata se valora con la volatilidad implícita de su propio ejercicio según la cadena de opciones en vivo de esa acción, lo que cuesta más para un piso tan fuera del dinero.

qsbs_check

"Compré acciones de fundador en marzo de 2020 y las vendo en marzo de 2026 con una ganancia de $5M. ¿Es QSBS y cuánto está libre de impuestos?"

{"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, …}

Veredicto qualifies: las seis pruebas legales se cumplen a los 6.0 años de tenencia, por lo que el 100% de la ganancia de $5,000,000 es excluible bajo el límite de $10,000,000 por emisor, con un valor de $1,190,000 en impuestos federales. California no se conforma, por lo que la misma ganancia es totalmente gravable por el estado. (crudo)

equity_funding_plan

"Necesito $400,000 después de impuestos para junio de 2029 para una casa. Tengo 3,500 acciones a $120 en dos lotes. ¿Qué vendo y cuándo?"

{"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", …}

Vender todo hoy se queda corto: genera $391,574 frente al objetivo de $400,000. El plan escalonado recomendado vende 3,314 de las 3,500 acciones en los años hasta la fecha límite, llega a $400,075 después de impuestos con $63,740 de impuestos pagados, y supera una venta única en el año objetivo por $12,976. (crudo)

rsu_lot_optimize

"Tengo 3,000 acciones de RSU adjudicadas de tres adjudicaciones, la acción está a $180 y quiero reducir la posición a la mitad en los próximos dos años. ¿Qué lotes van?"

{"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, …}

Para desinvertir 1,500 de las 3,000 acciones, combina el lote más nuevo bajo el agua contra ganancias a largo plazo de uno más antiguo, por lo que toda la desinversión cuesta $2,935 en impuestos y conserva $267,065 después de impuestos, $29,942 más que vender la misma fracción en orden FIFO. (crudo)

Cada ejemplo anterior pasa volatilidad y crecimiento explícitamente. En una llamada real puedes pasar ticker en su lugar: la volatilidad se resuelve desde la instantánea de volatilidad implícita publicada al cierre del último mercado, y el crecimiento desde la instantánea de CAGR final en caché. Si alguna no se puede resolver, la llamada devuelve un error que nombra el campo exacto en lugar de un número adivinado, y protective_put_price repite volatilitySource (explicit, chain, ticker o sector-default) más pricingMode (chain-skew o flat) para que siempre sepas qué sigma se valoró y si las patas se valoraron en sus propios ejercicios.

Estas capturas se ejecutaron en el año fiscal 2026. Las cifras cambian en un año fiscal posterior para las tres herramientas cuyos calendarios avanzan desde la fecha de hoy (amt_iso_optimize, equity_funding_plan, rsu_lot_optimize); todo lo demás está fijado por las fechas en los argumentos.

Úsalo en tu framework de agentes (Python)

Si construyes agentes en Python en lugar de llamar al endpoint MCP directamente, OptionsAhoy incluye paquetes de herramientas instalables para los principales frameworks de agentes. Cada uno envuelve las mismas calculadoras detrás de la interfaz nativa de herramientas del framework. Todos están publicados en PyPI y todos son sin clave: sin cuenta de OptionsAhoy, sin API key.

FrameworkInstalaciónImportaciónEjemplo
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
Cliente Python simplepip install optionsahoyfrom optionsahoy import OptionsAhoyClientbasic_client.py

Los tres adaptadores de frameworks incorporan automáticamente el cliente optionsahoy sin clave. También hay un agente de OpenBB Workspace (una aplicación FastAPI construida sobre el cliente OptionsAhoy) para usar dentro de OpenBB Workspace. El código fuente y los ejemplos ejecutables de todo lo anterior están en integrations/python.

Más formas de construir

Sin importar cómo esté construido tu agente, hay una pieza lista para integrar. Todos son públicos y sin clave.

Bloque de construcciónQué es
Herramientas del SDK de Vercel AIUn paquete TypeScript (optionsahoy-ai-sdk) que expone las ocho calculadoras como definiciones tool() del SDK de Vercel AI, listas para distribuir en generateText / streamText.
Kits de instruccionesReglas de editor y habilidades para Cursor, Windsurf, Claude Skills y subagentes de Claude Code, para que tu agente de codificación llame a las herramientas de OptionsAhoy para preguntas sobre compensación de capital.
Recetas de codificaciónRecetas Python de copiar y pegar, un archivo autocontenido por pregunta, que llaman a la API sin clave solo con requests. También en integrations/recipes.
Plantillas para constructoresUn flujo de trabajo n8n importable más recetas de construcción para Flowise, Langflow y Dify.
Evaluación de uso de herramientasUna evaluación inspect_ai que mide si un agente alcanza el óptimo demostrable en un problema ISO de varios años, con y sin la herramienta.
Descubrimiento A2AUna Agent Card de Agent2Agent (A2A) para que otros agentes puedan descubrir y delegar preguntas de compensación de capital al planificador.
Extensión de ZedUna extensión de servidor de contexto del editor Zed que conecta el agente del editor al servidor MCP de OptionsAhoy.
App de ACI.devLa definición de la app OptionsAhoy para la plataforma de herramientas de agentes de código abierto ACI.dev.
Puente de OpenRouterUna receta para conectar el servidor MCP de OptionsAhoy sin clave a cualquier modelo enrutado a través del endpoint compatible con OpenAI de OpenRouter.

Pruébalo sin instalar

El widget en vivo en optionsahoy.com/for-agents llama a este mismo endpoint desde tu navegador. Sin cliente, sin configuración.

¿Prefieres una interfaz de chat? Las mismas calculadoras responden preguntas en lenguaje natural en poe.com/OptionsAhoy.

O mira una sesión real:

Demo: Claude Code installing and using the OptionsAhoy MCP

Sesión real de Claude Code, sin editar. Una pregunta multi-stack de META (10K ISOs + 6K RSUs adquiridas + 2K RSUs nuevas + casa de $400K en 2027) dispara 4 herramientas MCP de OptionsAhoy en paralelo: riesgo de concentración, plan de financiamiento de capital, optimización AMT/ISO, y precio de put protectora. Claude sintetiza los resultados en un solo plan que anula la elección individual de cada herramienta porque el usuario está concentrado al 86% en META. 2:13. Haz clic en el póster para reproducirlo en optionsahoy.com.

Endpoints y descubrimiento

Endpoint MCP en vivo: https://optionsahoy.com/mcp API REST en vivo: https://optionsahoy.com/api/v1 Especificación OpenAPI 3.1: /openapi.json Manifiestos de descubrimiento: /.well-known/mcp.json · /.well-known/openapi.json Documentación de integración de agentes: optionsahoy.com/for-agents

Recursos MCP (informes temáticos)

Ocho recursos markdown bajo resources/list le dan a un LLM suficiente contexto para discutir el tema antes de elegir una herramienta. La mayoría se corresponden 1:1 con un artículo fundamental en optionsahoy.com/learn y la calculadora correspondiente; el informe de financiamiento de capital se corresponde con su calculadora, y el informe de tickers cubiertos enumera los símbolos que resuelve el atajo opcional ticker.

URI del recursoTemaEmparejar con
https://optionsahoy.com/learn/amt-crossoverCruce ISO/AMT y cuatro errores costososamt_iso_optimize
https://optionsahoy.com/learn/nso-sell-vs-holdNSO vender al ejercer vs. mantener para LTCGnso_calculate
https://optionsahoy.com/learn/rsu-withholding-gapBrecha de retención del 22% en RSU y cinco sorpresas de abrilrsu_sell_vs_hold
https://optionsahoy.com/learn/single-stock-concentration-riskRiesgo de concentración y equilibrio de diversificaciónconcentration_analyze
https://optionsahoy.com/learn/zero-cost-collarsPuts protectoras, collars de costo cero y spreads de putprotective_put_price
https://optionsahoy.com/learn/qsbsCalificación QSBS y cinco formas de perder la exclusiónqsbs_check
https://optionsahoy.com/tools/equity-fundingVender capital para financiar una meta de efectivo antes de una fecha límiteequity_funding_plan
https://optionsahoy.com/tools/covered-tickersQué símbolos resuelve el atajo opcional tickercualquier herramienta que tome ticker

Prompts MCP (andamios de flujos de trabajo)

Ocho prompts bajo prompts/list estructuran preguntas típicas de usuarios y enrutan a la herramienta correcta. En Claude Desktop aparecen como comandos de barra con nombre; en cualquier cliente MCP, prompts/get { name, arguments } devuelve un mensaje de usuario completamente plantillado.

Nombre del promptEnruta a
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-portfoliovarias herramientas, reconciliadas en un solo plan

Una invocación de prompts/get, argumentos como cadenas:

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

Devuelve un mensaje de usuario plantillado ("Tengo 50000 Incentive Stock Options (ISOs) con un strike de $4 por acción ...") que ya le dice al modelo que llame a amt_iso_optimize con esos valores, que pregunte por cualquier campo obligatorio faltante en lugar de asumirlo, y que reporte el cronograma optimizado frente a las alternativas de suma global y división uniforme (crudo).

Detalles de instalación

Extensión de Claude Desktop (un clic)

El paquete optionsahoy.mcpb se instala con doble clic (o arrastrando a Claude Desktop → Configuración → Extensiones), sin necesidad de terminal ni edición de archivos de configuración, usando el runtime Node.js integrado de Claude Desktop.

Para construir el paquete desde el código fuente:

npm install && npm run build:mcpb

CLI de Smithery (19 clientes, un comando)

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

Cambia claude por cualquier cliente que Smithery soporte: claude-code, cursor, vscode, gemini-cli, codex, windsurf, cline, goose, opencode, y 10 más. Listado: smithery.ai/servers/alphalatitude/optionsahoy.

Extensión de CLI de Gemini

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

Este repositorio también funciona como extensión de CLI de Gemini: gemini-extension.json conecta el endpoint MCP alojado y GEMINI.md proporciona contexto de uso al modelo.

stdio local (npm)

Para clientes que solo soportan servidores stdio locales (Claude Desktop sin mcp-remote, algunas integraciones de IDE):

npx -y optionsahoy-mcp

O agrégalo a un archivo de configuración de Claude Desktop / Cline / Goose:

{
  "mcpServers": {
    "optionsahoy": {
      "command": "npx",
      "args": ["-y", "optionsahoy-mcp"]
    }
  }
}

El servidor local devuelve las mismas cifras calculadas que el endpoint alojado en https://optionsahoy.com/mcp. El código fuente de ambos está en functions/_lib/mcp-tools.ts; el punto de entrada stdio es src/stdio-server.ts.

Usa la API REST directamente

# List endpoints
curl https://optionsahoy.com/api/v1

# Run an optimization (the 50,000-ISO example from "What a call looks like")
curl -X POST https://optionsahoy.com/api/v1/amt-iso \
  -H "content-type: application/json" \
  -d '{"shares":50000,"strike":4,"fmv":90,"horizon":4,"filingStatus":"married_joint",
       "ordinaryIncome":300000,"stateCode":"CA","grantDate":"2023-03-15",
       "hasLeftCompany":false,"expectedGrowth":0.1,"volatilityDrag":0.2,
       "carryforwardCredit":0,"cashReturnRate":0.05}'

Eso devuelve el mismo result.schedules.optimized.nfv que la llamada MCP anterior (crudo). Las formas del cuerpo de solicitud para los otros siete endpoints están documentadas en public/openapi.json.

Estructura del repositorio

functions/         Cloudflare Pages Functions (MCP server + REST API endpoints)
  mcp.ts           HTTP MCP server
  api/v1/*.ts      Eight tool endpoints + stats + GET /api/v1 discovery
  _lib/*.ts        Shared helpers, calc-input parsers, MCP tool descriptors
lib/               Optimizer + tax-code logic
  calc/            Per-tool optimizer functions (computeAmtIso, etc.)
  tax/             Federal + 50-state + DC bracket data, AMT, FICA, NIIT
  markets/         Sector statistics
  options/         Black-Scholes, risk-free rates
  data/            Option-chain types, and the readers for the live vol and chain feeds
public/            Static assets: OpenAPI spec, llms.txt, discovery manifests
tests/             Vitest suites (an extensive test suite including byte-identity assertions)

Ejecutar pruebas

npm install
npm test         # an extensive test suite, ~3s on a laptop
npm run typecheck

Listados de registros

Uso desde Google Cloud (agentes de Gemini)

El Registro de Agentes de Google Cloud permite que cada proyecto de GCP registre servidores MCP externos para que los usen los agentes de Gemini. El registro es por proyecto (sin envío central). Dos rutas:

# Path A: let the Agent Registry introspect our MCP endpoint
gcloud alpha agent-registry mcp-servers register \
  --uri=https://optionsahoy.com/mcp \
  --display-name="OptionsAhoy" \
  --location=us-central1 \
  --import-tools

# Path B: pass our published toolspec.json directly (faster, no introspection)
gcloud alpha agent-registry mcp-servers register \
  --uri=https://optionsahoy.com/mcp \
  --display-name="OptionsAhoy" \
  --location=us-central1 \
  --tool-spec=<(curl -sSL https://optionsahoy.com/toolspec.json)

El toolspec.json refleja la respuesta tools/list del MCP con anotaciones readOnlyHint y idempotentHint en las ocho herramientas (todas son calculadoras deterministas puras sin efectos secundarios). Para regenerarlo después de un cambio en la forma de las herramientas:

curl -sS -X POST https://optionsahoy.com/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}' \
  | jq -c '{tools: [.result.tools[] | . + {annotations: {readOnlyHint:true, idempotentHint:true, destructiveHint:false, openWorldHint:false}}]}' \
  > public/toolspec.json

Solución de problemas

Conexión rechazada / 404 desde el endpoint MCP https://optionsahoy.com/mcp requiere POST con content-type: application/json y un cuerpo JSON-RPC. Un GET devuelve una descripción JSON del servidor; cualquier otro verbo devuelve 405. Verifica con:

curl -X POST https://optionsahoy.com/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{}}'

Las llamadas a herramientas fallan con texto Error: ... en la respuesta El servidor MCP devuelve isError: true con un mensaje legible por humanos cuando falla la validación de entrada. Lo más común: falta un campo obligatorio, o un número pasado como cadena. Verifica la entrada contra el inputSchema devuelto por tools/list, o contra /openapi.json.

La herramienta no aparece en Claude.ai o Claude Desktop

  • Confirma que la URL del conector sea exactamente https://optionsahoy.com/mcp (sin barra final, sin /v1).
  • En Claude Desktop, reinicia la aplicación después de editar claude_desktop_config.json.
  • En Claude.ai, el interruptor del conector es por chat: actívalo en el menú de adjuntos.
  • Verifica la respuesta en vivo de tools/list (se esperan ocho herramientas): curl -X POST https://optionsahoy.com/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

Errores CORS desde un cliente basado en navegador El servidor devuelve access-control-allow-origin: * en todas las respuestas, incluido el preflight, y acepta los encabezados MCP estándar (content-type, mcp-session-id, mcp-protocol-version). Si un navegador aún bloquea, es probable que el cliente esté enviando un encabezado no permitido: verifica los encabezados de la solicitud contra la respuesta access-control-allow-headers.

Recurso / prompt no encontrado Los URI de recursos y los nombres de prompts distinguen entre mayúsculas y minúsculas. Obtén la lista canónica con resources/list y prompts/list en lugar de escribirla a mano.

Matemática de año fiscal desactualizada El motor de impuestos incluye tramos ajustados por inflación de 2026, reglas QSBS de OBBBA 2026 y tablas de conformidad estatal actuales. Si los resultados parecen incorrectos para un horizonte de varios años, verifica que la entrada grantDate, acquisitionDate o saleDate caiga en el año que esperas: el motor resuelve los tramos por año fiscal.

Reportar un error de cálculo o salida inesperada Envía un correo a andrew@alphalatitude.com con: el cuerpo exacto de la solicitud JSON-RPC, la respuesta, el valor esperado y (si se conoce) la publicación del IRS o el estatuto estatal del que se deriva el valor esperado.

Política de privacidad

Política completa: optionsahoy.com/privacy. En resumen: no se requiere cuenta y no se almacena información personal identificable — ni nombre, correo electrónico, dirección IP o inicio de sesión. Las entradas y salidas de las herramientas se retienen brevemente (alrededor de siete días) para depuración y mejora del producto, junto con metadatos de uso agregados (herramienta, marca de tiempo, ubicación aproximada, tipo de cliente) utilizados para comprender el uso y detectar abusos. El servidor stdio local y la extensión de Claude Desktop calculan todo en tu máquina. Realizan exactamente dos tipos de solicitudes de red, ambas solo cuando pasas un ticker sin el número que resolvería: el archivo de volatilidad implícita publicado, que es una URL fija que no contiene ningún ticker, y, para protective_put_price, la cadena de opciones de esa acción, cuya URL contiene el símbolo. Nada más sobre la llamada sale de la máquina.

Licencia

MIT. Ver LICENCIA. El servicio desplegado en https://optionsahoy.com/mcp y https://optionsahoy.com/api/v1 es gratuito durante la versión beta bajo términos.

Contacto

Para alianzas, acceso temprano a la API, soporte de integración MCP: andrew@alphalatitude.com