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
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:
| Cliente | Instalación |
|---|---|
| Cualquier cliente MCP | Agrega https://optionsahoy.com/mcp como servidor HTTP remoto, o npx add-mcp https://optionsahoy.com/mcp |
| Claude Desktop | Descarga optionsahoy.mcpb y haz doble clic |
| 19 clientes vía Smithery | npx @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 herramienta | Qué calcula |
|---|---|
amt_iso_optimize | Calendario 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_calculate | Pago 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_hold | Decisió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_analyze | Riesgo 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_price | Valoració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_check | Calificació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_plan | Calendario 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_optimize | Qué 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.
| Framework | Instalación | Importación | Ejemplo |
|---|---|---|---|
| LangChain | pip install optionsahoy-langchain | from langchain_optionsahoy import get_optionsahoy_tools | equity_agent.py |
| LlamaIndex | pip install llama-index-tools-optionsahoy | from llama_index.tools.optionsahoy import OptionsAhoyToolSpec | equity_agent.py |
| CrewAI | pip install crewai-optionsahoy | from crewai_optionsahoy import get_optionsahoy_tools | equity_crew.py |
| Cliente Python simple | pip install optionsahoy | from optionsahoy import OptionsAhoyClient | basic_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ón | Qué es |
|---|---|
| Herramientas del SDK de Vercel AI | Un 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 instrucciones | Reglas 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ón | Recetas 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 constructores | Un flujo de trabajo n8n importable más recetas de construcción para Flowise, Langflow y Dify. |
| Evaluación de uso de herramientas | Una 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 A2A | Una Agent Card de Agent2Agent (A2A) para que otros agentes puedan descubrir y delegar preguntas de compensación de capital al planificador. |
| Extensión de Zed | Una extensión de servidor de contexto del editor Zed que conecta el agente del editor al servidor MCP de OptionsAhoy. |
| App de ACI.dev | La definición de la app OptionsAhoy para la plataforma de herramientas de agentes de código abierto ACI.dev. |
| Puente de OpenRouter | Una 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:
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 recurso | Tema | Emparejar con |
|---|---|---|
https://optionsahoy.com/learn/amt-crossover | Cruce ISO/AMT y cuatro errores costosos | amt_iso_optimize |
https://optionsahoy.com/learn/nso-sell-vs-hold | NSO vender al ejercer vs. mantener para LTCG | nso_calculate |
https://optionsahoy.com/learn/rsu-withholding-gap | Brecha de retención del 22% en RSU y cinco sorpresas de abril | rsu_sell_vs_hold |
https://optionsahoy.com/learn/single-stock-concentration-risk | Riesgo de concentración y equilibrio de diversificación | concentration_analyze |
https://optionsahoy.com/learn/zero-cost-collars | Puts protectoras, collars de costo cero y spreads de put | protective_put_price |
https://optionsahoy.com/learn/qsbs | Calificación QSBS y cinco formas de perder la exclusión | qsbs_check |
https://optionsahoy.com/tools/equity-funding | Vender capital para financiar una meta de efectivo antes de una fecha límite | equity_funding_plan |
https://optionsahoy.com/tools/covered-tickers | Qué símbolos resuelve el atajo opcional ticker | cualquier 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 prompt | Enruta a |
|---|---|
optimize-iso-exercise | amt_iso_optimize |
analyze-nso-decision | nso_calculate |
analyze-rsu-vest | rsu_sell_vs_hold |
analyze-concentration | concentration_analyze |
price-protective-put | protective_put_price |
check-qsbs-eligibility | qsbs_check |
plan-equity-funding | equity_funding_plan |
plan-equity-portfolio | varias 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
- Registro MCP oficial —
io.github.AlvisoOculus/optionsahoy-mcp, estado activo - Directorio de plugins de ChatGPT — agregado con un clic para cualquier usuario de ChatGPT, sin modo desarrollador (publicado 2026-07-28)
- Smithery —
alphalatitude/optionsahoy(además de la habilidad de plan de capital) - Galería de extensiones de CLI de Gemini —
@AlvisoOculus/optionsahoy-mcp - Registro curado de add-mcp
- PulseMCP (en cascada desde el Registro Oficial)
- Hub de Continue.dev — el YAML de bloque vive en
.continue/mcpServers/optionsahoy.yaml
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
