RiskModels
Descomposición de riesgo de acciones y carteras de EE. UU. (mercado, sector, subsector y específico de acciones), ratios de cobertura de ETF y fundamentos puntuales del modelo de factores RiskModels. MCP alojado con OAuth, o el paquete npm stdio.
Servidor MCP alojado
npx add-mcp 'https://riskmodels.app/api/mcp/sse'Se instala en Claude Code, Codex, Cursor y más
Documentación
RiskModels proporciona retornos totales ajustados por dividendos y divisiones de acciones, descomposición de riesgo por factores, atribución de retornos y ratios de cobertura ejecutables mediante ETFs para acciones estadounidenses, todo a través de REST, un SDK tipado y un servidor MCP integrado. El conjunto de datos es de grado de simulación: cubre alrededor de 16,000 acciones estadounidenses en todo el panel histórico, mientras que al final de cada mes, el universo principal del modelo es el de las ~3,000 más grandes por capitalización de mercado, que es el conjunto que la API expone para retornos, riesgo y cobertura en el uso diario.
Los resultados posteriores a la regresión (ratios de cobertura, descomposiciones de riesgo explicado y series L1–L3 relacionadas) se sirven desde la primera fecha cuya ventana de estimación completa está cubierta: ratios de cobertura desde 2010-12-08, participaciones de riesgo explicado y varianza de acciones desde 2011-12-07, niveles residuales L* desde 2013-01-01. Los retornos ajustados por divisiones y dividendos (los insumos para las regresiones móviles) comienzan 2006-01-04. La API está lista para agentes de IA, incluido un servidor integrado de Protocolo de Contexto de Modelo (MCP) para una integración perfecta con LLMs.
Portal para Desarrolladores de la API RiskModels
Este repositorio es la referencia pública autoritativa de la API para la API del modelo de riesgo de acciones RiskModels, que incluye:
- 📖 Metodología del modelo — Descripción general de ERM3 (canónica; también reflejada en riskmodels.net)
- 📚 Documentación integral de la API — Especificación OpenAPI 3.0.3, guías y ejemplos
- 🌐 Portal para desarrolladores — Sitio Next.js (este repositorio) desplegado en riskmodels.app
- 🐍 Ejemplos en Python y TypeScript — Código listo para producción en
examples/ - 🤖 Integración con agentes de IA — Servidor MCP, OAuth2 y manifiesto de agente
Uso en Cursor (Complemento de Agente)
Este repositorio es un paquete de Complementos de Agente: plugin.json y mcp.json en la raíz del repositorio. El complemento conecta Cursor al servidor MCP alojado de RiskModels. No contiene código que se ejecute en tu máquina ni credenciales.
| Archivo | Qué declara |
|---|---|
plugin.json | Complemento riskmodels 1.0.0, Apache-2.0 |
mcp.json | Un servidor, riskmodels: HTTP Streamable en https://riskmodels.app/api/mcp/openai |
Instalación
- En Cursor, abre el Marketplace y busca RiskModels.
- Instálalo para tu usuario o para el proyecto actual.
- Cursor agrega el servidor MCP
riskmodels. Sus herramientas aparecen una vez que inicias sesión.
Iniciar sesión
El servidor usa OAuth 2.1 con PKCE. Cursor maneja el flujo y nada se guarda en los archivos del complemento:
- Cuando Cursor se conecta por primera vez al servidor
riskmodels, el servidor solicita el inicio de sesión y Cursor abre un navegador en riskmodels.app. - Inicia sesión con Google o un enlace de correo electrónico, o elige Iniciar sesión con una contraseña en su lugar.
- La pantalla de consentimiento muestra Sesión iniciada como <email>. Si esa no es la cuenta correcta, haz clic en Usar una cuenta diferente primero y luego en Permitir.
- Cursor almacena el token. Las herramientas son de solo lectura: devuelven datos y nunca realizan órdenes ni cambian tu cuenta.
Precios y cuenta
- Se requiere una cuenta de RiskModels. Las cuentas nuevas comienzan con $20 de crédito prepagado. Se solicita un método de pago al registrarse para verificación y no se cobra hasta que recargues.
- El uso es de pago por uso y se factura por llamada a herramienta contra ese saldo. La mayoría de las llamadas de una sola acción cuestan $0.005; los fundamentales cuestan $0.02 y un informe completo de exposición de cartera cuesta $0.25. Tarifas y planes: riskmodels.app/pricing.
- Opcional: vincula una cuenta de corretaje (Alpaca, Connect Trade o Plaid) en riskmodels.net Configuración, y
riskmodels_get_my_positionslee ese libro.
Ejemplo: NVDA
Pregunta en el chat de agente de Cursor:
Descompón el riesgo de NVDA con RiskModels y dame la cobertura con ETF para una posición de $100,000.
El agente llama a riskmodels_decompose para la división de mercado / sector / subsector / acción específica de la varianza de NVDA y el ratio de cobertura en cada nivel. Luego llama a riskmodels_hedge_position para convertir esos ratios en operaciones en dólares en SPY y los ETFs de sector y subsector. Los números son salida del modelo en vivo hasta el último día de negociación.
El complemento de Claude (claude-plugin/) y el servidor MCP local para desarrolladores (.cursor/mcp.json, mcp/) son separados y no han cambiado.
🚀 Enlaces rápidos
- SDK de Python — Inicio rápido de AOM (Google Colab): Abrir cuaderno · fuente:
sdk/notebooks/riskmodels_aom_colab.ipynb - Portal para desarrolladores: riskmodels.app
- Documentación de API en vivo: riskmodels.net/docs/api/erm3
- Metodología ERM3: riskmodels.app/docs/methodology
- Obtener clave de API: riskmodels.app/get-key
- Términos de la API: riskmodels.net/terms/api
- Problemas: github.com/BlueWaterCorp/RiskModels_API/issues
- PyPI (SDK de Python): riskmodels-py
URLs canónicas (REST, OpenAPI y documentación)
Usa estas solo para integraciones y herramientas:
| Qué | URL |
|---|---|
Base REST (OpenAPI servers) | https://riskmodels.app/api |
JSON de OpenAPI desplegado (misma especificación que OPENAPI_SPEC.yaml) | https://riskmodels.app/openapi.json |
| Referencia de API interactiva (este portal) | /api-reference |
Importante: El nombre de host api.riskmodels.app no se usa para la API pública ni para la documentación legible por máquina. Los enlaces o documentos antiguos que lo mencionen deben tratarse como obsoletos; usa riskmodels.app (apex) como se indica arriba.
📖 Descripción general de la API
La API de RiskModels proporciona análisis de riesgo de acciones de grado institucional:
- Descomposiciones de factores diarias — fracciones de riesgo explicado de mercado, sector y subsector para las ~3,000 acciones estadounidenses más grandes por capitalización de mercado (universo de fin de mes)
- Ratios de cobertura — montos de cobertura con ETF denominados en dólares (L1/L2/L3) diseñados para seguir siendo ejecutables con ETFs líquidos sin procesar
- Series de tiempo históricas — retornos ajustados por divisiones y dividendos (2006-01-04–presente) más ratios de cobertura móviles (2010-12-08–presente) y riesgo explicado (2011-12-07–presente; los resultados de factores necesitan una ventana de regresión completa)
- Listo para agentes de IA — OAuth2, facturación por solicitud, manifiestos legibles por máquina
Cobertura de datos: ~16,000 acciones estadounidenses en el panel histórico; ~3,000 más grandes por capitalización de mercado en cada fin de mes para los resultados principales. Actualizado diariamente. Ratios de cobertura: 2010-12-08 hasta el presente. Riesgo explicado: 2011-12-07 hasta el presente. Niveles L*: 2013-01-01 hasta el presente. Series de retornos ajustados: 2006-01-04 hasta el presente.
Por qué el motor importa
RiskModels está diseñado para ser útil en el trabajo real de carteras, no solo para análisis descriptivos:
- Construido para ser seguro en el tiempo — el motor está diseñado para evitar fuentes comunes de contaminación hacia adelante, como tickers reciclados, acciones instantáneas y contracción retroactiva del universo
- Fundamentado en un Maestro de Valores real — los resultados a nivel de ticker se apoyan en una capa de identidad puntual construida para la continuidad de identificadores, cambios de símbolos y datos de acciones históricamente defendibles
- Jerárquico por diseño — el modelo separa la estructura de mercado, sector y subsector en lugar de colapsar todo en una visión plana de beta
- Comerciable en la práctica — los ratios de cobertura publicados están diseñados para funcionar con ETFs líquidos en el momento de la ejecución, no solo con factores sintéticos u ortogonalizados
- Construido sobre series de retornos ajustados — los retornos ajustados por divisiones y dividendos hacen que la descomposición y los ratios de cobertura sean más consistentes económicamente en horizontes largos
Para una explicación más profunda de las decisiones de diseño del motor detrás de estas afirmaciones, consulta la documentación de metodología y la referencia de la API.
🐍 SDK de Python (riskmodels-py)
Prefiere el SDK de Python sobre REST sin procesar para flujos de trabajo nativos de agentes: la resolución de tickers, la normalización semántica de campos, la validación con errores instructivos y el formato de contexto listo para LLMs están integrados.
Instalación (PyPI):
pip install riskmodels-py
# Optional — xarray cube from batch Parquet/CSV:
# pip install riskmodels-py[xarray]
# Optional — snapshot PDF rendering:
# pip install riskmodels-py[pdf]
Inicio rápido:
from riskmodels import RiskModelsClient, to_llm_context
client = RiskModelsClient.from_env()
pa = client.analyze({"NVDA": 0.4, "AAPL": 0.6})
print(to_llm_context(pa))
Generación de instantáneas (informes PDF institucionales):
from riskmodels.snapshots import get_data_for_r1, render_r1_to_pdf
client = RiskModelsClient.from_env()
data = get_data_for_r1("NVDA", client) # fetch → R1Data (caches to JSON)
render_r1_to_pdf(data, "NVDA_R1_Risk.pdf") # render → PDF (~0.3s, no API)
Documentación:
- README del paquete — instalación, métodos, ayudantes nativos de agentes
- Inicio rápido — ruta de configuración en 60 segundos
- Documentación de la API — tabla de referencia de ayudantes nativos de agentes
Inteligencia de riesgo
Los gráficos a continuación se generan a partir de datos de API en vivo (get_rankings + métricas de lote L3 de MAG7) mediante scripts/generate_readme_assets.py. Establece RISKMODELS_API_KEY (el nivel gratuito es suficiente), ejecuta el script desde la raíz del repositorio y luego confirma ./assets/ y ./public/docs/readme/.
MAG7 — Descomposición L3 escalada por σ
Misma etiqueta de “tecnología”, diferente ADN de subsector — la longitud de la barra ∝ σ anualizado; los segmentos = σ × ratios de riesgo L3 de mercado/sector/subsector + residual (participación de HR). POST /batch/analyze mediante SDK save_mag7_l3_sigma_rr_png
Clasificaciones transversales
Desglose del percentil de clasificación de universo / sector / subsector
🤖 Servidor MCP (v3.0.0-agent)
RiskModels incluye un servidor MCP (Protocolo de Contexto de Modelo) de primera clase, que permite a los agentes de IA consultar directamente datos de riesgo y realizar análisis de factores.
Conexión MCP (API alojada):
- Endpoint (HTTP Streamable, POST):
https://riskmodels.app/api/mcp/sse - Autenticación: Token Bearer (clave de API o JWT OAuth2)
- Descubrimiento:
https://riskmodels.app/.well-known/mcp.json(consulta OPENAPI_SPEC.yaml)
Servidor MCP local (mcp/ en este repositorio) — transporte stdio para Cursor / Claude Desktop / Zed: descubre capacidades, esquemas, OpenAPI y herramientas de riesgo en papel respaldadas por SDK. Las herramientas incluidas aquí son:
riskmodels_list_endpoints— Lista las capacidades de la API (id, método, endpoint, descripción breve)riskmodels_get_capability— Registro completo de capacidad por id (parámetros, precios, ejemplos)riskmodels_get_schema— Esquema JSON para un tipo de respuesta (por ejemplo,ticker-returns-v2.json)riskmodels_decompose,riskmodels_compare,riskmodels_hedge_position,riskmodels_portfolio_decompose,riskmodels_whitepaper_example— Salidas de SDK listas para agentes conchart_data,suggested_charty resúmenes en lenguaje sencillo
Para datos de riesgo en vivo y matemáticas de cartera, llama a la API REST (por ejemplo, GET /api/metrics/{ticker}, POST /api/batch/analyze, GET /api/l3-decomposition), al SDK de Python (riskmodels-py) o a las herramientas MCP listadas.
Consulta mcp/README.md para instalación y configuración.
Anthropic Claude (Agentes administrados vs API de Mensajes): diseño de ingeniería interno para agentes alojados en la nube opcionales, facturación y cumplimiento — consulta docs/ANTHROPIC_CLOUD_AGENTS.md.
⌨️ CLI de línea de comandos (riskmodels)
El paquete npm en cli/ instala el binario riskmodels: configuración, consulta SQL (API facturada o Supabase directo), introspección de esquema, saldo y manifiestos de agente estáticos.
Instalación desde npm:
npm install -g riskmodels
riskmodels --help
Desarrollo desde este repositorio:
cd cli
npm ci
npm run build
npm run install:global # optional: npm link for local testing
Publicar en npm (mantenedores): el procedimiento está documentado en el monorepo privado BWMACRO (docs/RISKMODELS_CLI_NPM_PUBLISHING.md), no aquí. Solo publica desde el directorio cli/ — la aplicación Next.js de la raíz del repositorio no se publica en npm.
💻 Portal para desarrolladores (Este repositorio)
Este repositorio ahora incluye un portal para desarrolladores en Next.js con:
- ✨ Página de inicio hero con aspectos destacados de funciones
- 📚 Documentación impulsada por MDX (README_API.md, AUTHENTICATION_GUIDE.md)
- 🔍 Referencia de API interactiva (visor OpenAPI de Redoc)
- 💡 Ejemplos de código con resaltado de sintaxis y botones de copiar
- 🎯 Guía de inicio rápido paso a paso
Desarrollo local
# Install dependencies
npm install
# Option A: Copy env template and fill in Supabase/Stripe keys manually
cp .env.example .env.local
# Option B: Use Doppler (recommended for team consistency)
# Ensure `doppler login` is done, then:
doppler secrets download --no-file --format env > .env.local
# Generate OpenAPI JSON for Redoc
npm run build:openapi
# Run dev server
npm run dev
Higiene de capturas de pantalla:
Al capturar capturas de pantalla del sitio para auditoría o documentación:
- Asegúrate de que la compilación pase primero:
npm run builddebe completarse sin errores - Verifica que el servidor de desarrollo responda HTTP 200: Visita
http://localhost:3000y confirma que las páginas se renderizan (no "Internal Server Error") - Ejecuta el script de captura:
python3 capture_site.py(requiere Playwright)
El script omitirá páginas que devuelvan HTTP 500 o que contengan contenido "Internal Server Error". Las capturas de pantalla con errores del servidor nunca deben enviarse al repositorio.
Gestión de entorno con Doppler:
Este repositorio usa Doppler para la gestión de secretos. El doppler.yaml está preconfigurado para el proyecto erm3:
# Verify setup (should show project: erm3, config: dev)
doppler setup
# List all secrets
doppler secrets
# Get a specific secret
doppler secrets get STRIPE_SECRET_KEY
# Export dev secrets to .env.local for curl testing and local dev
npm run doppler:env
# Push production secrets to Vercel (requires vercel login + project link)
npm run vercel:sync-env:doppler
Para pruebas con curl/API usando secretos de Doppler:
# 1. Export secrets to .env.local
npm run doppler:env
# 2. Source them for your shell session
source .env.local
# 3. Use in curl commands
curl -H "Authorization: Bearer $RISKMODELS_API_SERVICE_KEY" \
https://riskmodels.app/api/health
Consulta DEPLOYMENT.md para la integración detallada de Vercel/Doppler.
Visita http://localhost:3000
Compilación y despliegue
# Build for production
npm run build
# Start production server
npm start
Despliegue: Consulta DEPLOYMENT.md para la configuración de Vercel, variables de entorno y configuración de Supabase/Stripe.
📂 Estructura del repositorio
RiskModels_API/
├── app/ # Next.js app
│ ├── api/ # API routes (REST)
│ ├── page.tsx # Hero landing page
│ ├── layout.tsx # Root layout with Navbar/Footer
│ ├── docs/[[...slug]]/ # MDX docs renderer
│ ├── api-reference/ # Redoc OpenAPI viewer
│ ├── examples/ # Code examples showcase
│ └── quickstart/ # Quickstart guide
├── components/ # React components (new)
│ ├── Navbar.tsx
│ ├── Footer.tsx
│ ├── Hero.tsx
│ ├── CodeBlock.tsx
│ └── Logo.tsx
├── content/docs/ # MDX content (new)
│ ├── api.mdx
│ └── authentication.mdx
├── cli/ # Command-line CLI (`riskmodels`)
├── sdk/ # Python SDK (`riskmodels-py`) source
│ └── riskmodels/snapshots/ # Snapshot PDF pipeline (R1 shipped, R2–P4 planned)
├── examples/ # Runnable examples
│ ├── python/
│ └── typescript/
├── mcp/ # MCP (Model Context Protocol) server
├── public/ # Static assets (new)
│ ├── transparent_logo.svg
│ └── openapi.json # Generated from OPENAPI_SPEC.yaml
├── styles/ # Global styles (new)
├── lib/ # Utilities (new)
├── OPENAPI_SPEC.yaml # Canonical OpenAPI spec
├── README_API.md # API reference (source for content/docs/api.mdx)
├── AUTHENTICATION_GUIDE.md # Auth guide (source for content/docs/authentication.mdx)
├── SEMANTIC_ALIASES.md # Field definitions
└── package.json # Next.js deps (new)
🛠️ Stack tecnológico (Portal de desarrolladores)
- Framework: Next.js 15 (App Router)
- Estilos: Tailwind CSS 3.4, modo oscuro por defecto
- MDX: @next/mdx para documentación
- Referencia de API: Redoc (visor OpenAPI 3.0)
- Resaltado de código: CodeBlock personalizado con botón de copiar
- Fuentes: Inter (respaldo system-ui)
- Colores: Azul primario (
hsl(217, 91%, 60%)), paleta oscura zinc/slate
📄 Archivos de documentación
| Documento | Descripción |
|---|---|
| README_API.md | Descripción general completa de la API, endpoints, conceptos clave |
| API_TERMS.md | Términos de servicio de la API (riskmodels.net/terms/api) |
| PLAID_HOLDINGS_UX.md | Flujo de conexión de Plaid y experiencia de usuario de la API de tenencias |
| AUTHENTICATION_GUIDE.md | Token Bearer, OAuth2, Supabase JWT, límites de tasa |
| DOCS_PROCESS.md | Proceso para agregar nueva documentación |
| SEMANTIC_ALIASES.md | Definiciones de campos, unidades, fórmulas |
| RESPONSE_METADATA.md | Bloque _agent, encabezados de respuesta, precios |
| ERROR_SCHEMA.md | Códigos de error y patrones de recuperación |
| OPENAPI_SPEC.yaml | Especificación OpenAPI 3.0.3 (v3.0.0-agent) |
| docs/SNAPSHOT_ROADMAP.md | Hoja de ruta del conjunto de snapshots, ADRs y fases de implementación |
| docs/SNAPSHOT_CONTENT_MAP.md | Especificación de contenido de 8 páginas con wireframes y esquemas JSON |
| docs/SNAPSHOT_FRONTEND_ARCH.md | Arquitectura de canalización de renderizado con Matplotlib puro |
🔗 Relacionados
- ERM3 — Motor de cálculo de modelos de riesgo en Python (código abierto)
🤝 Contribuciones
Agradecemos las solicitudes de extracción, especialmente para mejorar la especificación OpenAPI — descripciones más claras, mejores esquemas y más ejemplos ayudan a todos.
- Especificación OpenAPI: CONTRIBUTING.md — Se recomiendan PRs a
OPENAPI_SPEC.yaml - Problemas: Abrir un problema para errores o solicitudes de funciones
- Ejemplos: Envía nuevos ejemplos mediante PR a
examples/ - Documentación: Mejora la documentación editando archivos MDX en
content/docs/
📧 Soporte
- Soporte de API: service@riskmodels.app
- Problemas: github.com/BlueWaterCorp/RiskModels_API/issues
- Estado: riskmodels.net/status · Métricas de API riskmodels.app/api/status
📜 Licencia
Consulta LICENSE para más detalles.
© 2026 Blue Water Macro Corp. Todos los derechos reservados.