RiskModels
Decomposição de risco de ações e portfólio dos EUA (mercado, setor, subsetor e específico de ações), índices de hedge de ETF e fundamentos pontuais do modelo de fatores RiskModels. MCP hospedado com OAuth, ou o pacote npm stdio.
Servidor MCP hospedado
npx add-mcp 'https://riskmodels.app/api/mcp/sse'Instala no Claude Code, Codex, Cursor e outros
Documentação
RiskModels fornece retornos totais ajustados por dividendos e desdobramentos, decomposição de risco por fatores, atribuição de retorno e índices de hedge executáveis via ETFs para ações dos EUA — via REST, um SDK tipado e um servidor MCP integrado. O conjunto de dados é de qualidade de simulação: cobre cerca de 16.000 ações dos EUA em todo o painel histórico, enquanto ao final de cada mês o universo principal do modelo é composto pelas ~3.000 maiores por capitalização de mercado — o conjunto que a API disponibiliza para retornos, risco e hedge no dia a dia.
Saídas pós-regressão (índices de hedge, decomposições de risco explicado e séries L1–L3 relacionadas) são servidas a partir da primeira data cuja janela completa de estimação é coberta: índices de hedge a partir de 2010-12-08, participações de risco explicado e variância das ações a partir de 2011-12-07, níveis residuais L* a partir de 2013-01-01. Retornos ajustados por desdobramentos e dividendos (os insumos das regressões móveis) começam em 2006-01-04. A API está pronta para agentes de IA, incluindo um servidor Model Context Protocol (MCP) integrado para integração perfeita com LLMs.
Portal do Desenvolvedor da API RiskModels
Este repositório é a referência pública autoritativa da API para a API de modelo de risco de ações RiskModels, com:
- 📖 Metodologia do modelo — Visão geral do ERM3 (canônica; também espelhada em riskmodels.net)
- 📚 Documentação abrangente da API — Especificação OpenAPI 3.0.3, guias e exemplos
- 🌐 Portal do Desenvolvedor — Site Next.js elegante (este repositório) implantado em riskmodels.app
- 🐍 Exemplos em Python e TypeScript — Código pronto para produção em
examples/ - 🤖 Integração com Agentes de IA — Servidor MCP, OAuth2 e manifesto de agente
Uso no Cursor (Plugin de Agente)
Este repositório é um pacote de Agent Plugins: plugin.json e mcp.json na raiz do repositório. O plugin conecta o Cursor ao servidor MCP hospedado do RiskModels. Ele não contém código que seja executado na sua máquina nem credenciais.
| Arquivo | O que declara |
|---|---|
plugin.json | Plugin riskmodels 1.0.0, Apache-2.0 |
mcp.json | Um servidor, riskmodels: HTTP Streamable em https://riskmodels.app/api/mcp/openai |
Instalação
- No Cursor, abra o Marketplace e procure por RiskModels.
- Instale-o para o seu usuário ou para o projeto atual.
- O Cursor adiciona o servidor MCP
riskmodels. As ferramentas aparecem depois que você faz login.
Login
O servidor usa OAuth 2.1 com PKCE. O Cursor gerencia o fluxo, e nada é armazenado nos arquivos do plugin:
- Quando o Cursor se conecta pela primeira vez ao servidor
riskmodels, o servidor solicita o login e o Cursor abre um navegador em riskmodels.app. - Faça login com o Google ou um link de e-mail, ou escolha Entrar com senha.
- A tela de consentimento mostra Conectado como <email>. Se essa for a conta errada, clique em Usar uma conta diferente primeiro e depois em Permitir.
- O Cursor armazena o token. As ferramentas são somente leitura: elas retornam dados e nunca fazem ordens ou alteram sua conta.
Preços e conta
- Uma conta RiskModels é necessária. Novas contas começam com US$ 20 de crédito pré-pago. Um método de pagamento é coletado no cadastro para verificação e não é cobrado até você fazer uma recarga.
- O uso é pré-pago e cobrado por chamada de ferramenta contra esse saldo. A maioria das chamadas de ação individual custa US$ 0,005; fundamentos custam US$ 0,02, e um relatório completo de exposição de portfólio custa US$ 0,25. Tarifas e planos: riskmodels.app/pricing.
- Opcional: vincule uma conta de corretora (Alpaca, Connect Trade ou Plaid) em riskmodels.net Configurações, e
riskmodels_get_my_positionslê esse livro.
Exemplo: NVDA
Pergunte no chat de agente do Cursor:
Decomponha o risco da NVDA com o RiskModels e me dê o hedge de ETF para uma posição de US$ 100.000.
O agente chama riskmodels_decompose para a divisão de mercado / setor / subsetor / específica da ação da variância da NVDA e o índice de hedge em cada nível. Em seguida, ele chama riskmodels_hedge_position para transformar esses índices em negociações em dólares em SPY e nos ETFs de setor e subsetor. Os números são saída de modelo ao vivo do último dia de negociação.
O plugin do Claude (claude-plugin/) e o servidor MCP local do desenvolvedor (.cursor/mcp.json, mcp/) são separados e inalterados.
🚀 Links Rápidos
- SDK Python — início rápido do AOM (Google Colab): Abrir notebook · fonte:
sdk/notebooks/riskmodels_aom_colab.ipynb - Portal do Desenvolvedor: riskmodels.app
- Documentação da API ao vivo: riskmodels.net/docs/api/erm3
- Metodologia ERM3: riskmodels.app/docs/methodology
- Obter chave de API: riskmodels.app/get-key
- Termos da API: riskmodels.net/terms/api
- Problemas: github.com/BlueWaterCorp/RiskModels_API/issues
- PyPI (SDK Python): riskmodels-py
URLs canônicas (REST, OpenAPI e documentação)
Use estas apenas para integrações e ferramentas:
| O quê | URL |
|---|---|
Base REST (OpenAPI servers) | https://riskmodels.app/api |
JSON OpenAPI implantado (mesma especificação de OPENAPI_SPEC.yaml) | https://riskmodels.app/openapi.json |
| Referência interativa da API (este portal) | /api-reference |
Importante: O nome de host api.riskmodels.app não é usado para a API pública ou documentação legível por máquina. Links antigos ou documentação que o mencionem devem ser tratados como obsoletos; use riskmodels.app (apex) como acima.
📖 Visão Geral da API
A API RiskModels fornece análise de risco de ações de nível institucional:
- Decomposições diárias de fatores — frações de risco explicado de mercado, setor e subsetor para as ~3.000 maiores ações dos EUA por capitalização de mercado (universo de fim de mês)
- Índices de hedge — valores de hedge em dólares por ETF (L1/L2/L3) projetados para permanecerem executáveis com ETFs líquidos brutos
- Séries temporais históricas — retornos ajustados por desdobramentos e dividendos (2006-01-04–presente) além de índices de hedge móveis (2010-12-08–presente) e ER (2011-12-07–presente; saídas de fatores precisam de uma janela de regressão completa)
- Pronto para agentes de IA — OAuth2, cobrança por solicitação, manifestos legíveis por máquina
Cobertura de dados: ~16.000 ações dos EUA no painel histórico; ~3.000 maiores por capitalização de mercado ao final de cada mês para saídas principais. Atualizado diariamente. Índices de hedge: 2010-12-08 até o presente. Risco explicado: 2011-12-07 até o presente. Níveis L*: 2013-01-01 até o presente. Séries de retornos ajustados: 2006-01-04 até o presente.
Por Que o Motor Importa
O RiskModels é projetado para ser útil para trabalho real de portfólio, não apenas análises descritivas:
- Construído para ser seguro em relação ao tempo — o motor é projetado para evitar fontes comuns de contaminação futura, como tickers reciclados, ações instantâneas e contração retroativa do universo
- Fundamentado em um Security Master real — saídas em nível de ticker ficam sobre uma camada de identidade pontual construída para continuidade de identificadores, mudanças de símbolos e dados de ações historicamente defensáveis
- Hierárquico por design — o modelo separa a estrutura de mercado, setor e subsetor em vez de colapsar tudo em uma visão beta plana
- Negociável na prática — os índices de hedge publicados são projetados para funcionar com ETFs líquidos no momento da execução, não apenas com fatores sintéticos ou ortogonalizados
- Construído sobre séries de retornos ajustados — retornos ajustados por desdobramentos e dividendos tornam a decomposição e os índices de hedge mais consistentes economicamente em horizontes longos
Para uma explicação mais profunda das escolhas de design do motor por trás dessas afirmações, consulte a documentação de metodologia e a referência da API.
🐍 SDK Python (riskmodels-py)
Prefira o SDK Python em vez de REST bruto para fluxos de trabalho nativos de agente — resolução de tickers, normalização semântica de campos, validação com erros instrutivos e formatação de contexto pronta para LLM estão integrados.
Instalação (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]
Início 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))
Geração de instantâneos (relatórios PDF institucionais):
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)
Documentação:
- README do pacote — instalação, métodos, auxiliares nativos de agente
- Início rápido — caminho de configuração em 60 segundos
- Documentação da API — tabela de referência de auxiliares nativos de agente
Inteligência de risco
Os gráficos abaixo são gerados a partir de dados ao vivo da API (get_rankings + métricas de lote L3 do MAG7) via scripts/generate_readme_assets.py. Defina RISKMODELS_API_KEY (o nível gratuito é suficiente), execute o script a partir da raiz do repositório e depois faça commit de ./assets/ e ./public/docs/readme/.
MAG7 — Decomposição L3 escalada por σ
Mesmo rótulo de “tech”, DNA de subsetor diferente — comprimento da barra ∝ σ anualizado; segmentos = σ × índices de risco L3 de mercado/setor/subsetor + residual (participação do HR). POST /batch/analyze via SDK save_mag7_l3_sigma_rr_png
Rankings transversais
Detalhamento do percentil de classificação por universo / setor / subsetor
🤖 Servidor MCP (v3.0.0-agent)
O RiskModels inclui um servidor MCP (Model Context Protocol) de primeira classe, permitindo que agentes de IA consultem diretamente dados de risco e realizem análise de fatores.
Conexão MCP (API hospedada):
- Endpoint (HTTP Streamable, POST):
https://riskmodels.app/api/mcp/sse - Autenticação: Token Bearer (chave de API ou JWT OAuth2)
- Descoberta:
https://riskmodels.app/.well-known/mcp.json(veja OPENAPI_SPEC.yaml)
Servidor MCP local (mcp/ neste repositório) — transporte stdio para Cursor / Claude Desktop / Zed: descobre capacidades, esquemas, OpenAPI e ferramentas de risco de papel ao vivo com suporte do SDK. As ferramentas incluídas aqui são:
riskmodels_list_endpoints— Lista capacidades da API (id, método, endpoint, descrição curta)riskmodels_get_capability— Registro completo de capacidade por id (parâmetros, preços, exemplos)riskmodels_get_schema— JSON Schema para um tipo de resposta (ex.:ticker-returns-v2.json)riskmodels_decompose,riskmodels_compare,riskmodels_hedge_position,riskmodels_portfolio_decompose,riskmodels_whitepaper_example— Saídas de SDK prontas para agente comchart_data,suggested_charte resumos em linguagem simples
Para dados de risco ao vivo e matemática de portfólio, chame a API REST (ex.: GET /api/metrics/{ticker}, POST /api/batch/analyze, GET /api/l3-decomposition), o SDK Python (riskmodels-py) ou as ferramentas MCP listadas.
Veja mcp/README.md para instalação e configuração.
Anthropic Claude (Agentes Gerenciados vs API de Mensagens): design de engenharia interno para agentes opcionais hospedados em nuvem, cobrança e conformidade — veja docs/ANTHROPIC_CLOUD_AGENTS.md.
⌨️ CLI de linha de comando (riskmodels)
O pacote npm em cli/ instala o binário riskmodels: configuração, consulta SQL (API cobrada ou Supabase direto), introspecção de esquema, saldo e manifestos estáticos de agente.
Instalação a partir do npm:
npm install -g riskmodels
riskmodels --help
Desenvolvimento a partir deste repositório:
cd cli
npm ci
npm run build
npm run install:global # optional: npm link for local testing
Publicação no npm (mantenedores): o procedimento está documentado no monorepo privado BWMACRO (docs/RISKMODELS_CLI_NPM_PUBLISHING.md), não aqui. Publique apenas a partir do diretório cli/ — o aplicativo Next.js na raiz do repositório não é publicado no npm.
💻 Portal do Desenvolvedor (Este Repositório)
Este repositório agora inclui um portal do desenvolvedor Next.js com:
- ✨ Página inicial hero com destaques de recursos
- 📚 Documentação alimentada por MDX (README_API.md, AUTHENTICATION_GUIDE.md)
- 🔍 Referência interativa da API (visualizador OpenAPI Redoc)
- 💡 Exemplos de código com realce de sintaxe e botões de copiar
- 🎯 Guia de início rápido passo a passo
Desenvolvimento 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 na Captura de Screenshots:
Ao capturar screenshots do site para auditoria ou documentação:
- Garanta que o build passe primeiro:
npm run builddeve ser concluído sem erros - Verifique se o servidor de desenvolvimento responde HTTP 200: Acesse
http://localhost:3000e confirme que as páginas renderizam (não "Internal Server Error") - Execute o script de captura:
python3 capture_site.py(requer Playwright)
O script ignorará páginas que retornarem HTTP 500 ou que contenham conteúdo "Internal Server Error". Screenshots com erros de servidor nunca devem ser commitados no repositório.
Gerenciamento de Ambiente com Doppler:
Este repositório usa Doppler para gerenciamento de segredos. O doppler.yaml está pré-configurado para o projeto 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 testes com curl/API usando segredos do 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
Consulte DEPLOYMENT.md para integração detalhada Vercel/Doppler.
Visite http://localhost:3000
Build e Deploy
# Build for production
npm run build
# Start production server
npm start
Deploy: Consulte DEPLOYMENT.md para configuração do Vercel, variáveis de ambiente e configuração Supabase/Stripe.
📂 Estrutura do Repositório
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 do Desenvolvedor)
- Framework: Next.js 15 (App Router)
- Estilização: Tailwind CSS 3.4, modo escuro padrão
- MDX: @next/mdx para documentação
- Referência da API: Redoc (visualizador OpenAPI 3.0)
- Destaque de Código: CodeBlock personalizado com botão de copiar
- Fontes: Inter (fallback system-ui)
- Cores: Azul primário (
hsl(217, 91%, 60%)), paleta escura zinc/slate
📄 Arquivos de Documentação
| Documento | Descrição |
|---|---|
| README_API.md | Visão geral completa da API, endpoints, conceitos-chave |
| API_TERMS.md | Termos de Serviço da API (riskmodels.net/terms/api) |
| PLAID_HOLDINGS_UX.md | Fluxo de conexão Plaid e experiência do usuário na API de holdings |
| AUTHENTICATION_GUIDE.md | Bearer token, OAuth2, Supabase JWT, limites de taxa |
| DOCS_PROCESS.md | Processo para adicionar nova documentação |
| SEMANTIC_ALIASES.md | Definições de campos, unidades, fórmulas |
| RESPONSE_METADATA.md | Bloco _agent, cabeçalhos de resposta, preços |
| ERROR_SCHEMA.md | Códigos de erro e padrões de recuperação |
| OPENAPI_SPEC.yaml | Especificação OpenAPI 3.0.3 (v3.0.0-agent) |
| docs/SNAPSHOT_ROADMAP.md | Roadmap do conjunto de snapshots, ADRs e fases de implementação |
| docs/SNAPSHOT_CONTENT_MAP.md | Especificação de conteúdo de 8 páginas com wireframes e schemas JSON |
| docs/SNAPSHOT_FRONTEND_ARCH.md | Arquitetura do pipeline de renderização puro-Matplotlib |
🔗 Relacionados
- ERM3 — Motor de computação de modelos de risco em Python (código aberto)
🤝 Contribuindo
Aceitamos pull requests, especialmente para melhorar a especificação OpenAPI — descrições mais claras, melhores schemas e mais exemplos ajudam a todos.
- Especificação OpenAPI: CONTRIBUTING.md — PRs para
OPENAPI_SPEC.yamlsão incentivados - Issues: Abra uma issue para bugs ou solicitações de recursos
- Exemplos: Envie novos exemplos via PR para
examples/ - Documentação: Melhore a documentação editando arquivos MDX em
content/docs/
📧 Suporte
- Suporte da API: service@riskmodels.app
- Issues: github.com/BlueWaterCorp/RiskModels_API/issues
- Status: riskmodels.net/status · Métricas da API riskmodels.app/api/status
📜 Licença
Consulte LICENSE para detalhes.
© 2026 Blue Water Macro Corp. Todos os direitos reservados.