cvm-mcp
cvm-mcp
Servidor MCP que busca y procesa datos financieros directamente del Portal de Datos Abiertos de la CVM (dados.cvm.gov.br), sin depender de terceros. Expone herramientas para que un cliente LLM (Claude Desktop, Claude Code, etc.) consulte los estados financieros publicados por las compañías abiertas.
La visión predeterminada es trimestral: las herramientas parten del último trimestre que la empresa publicó y devuelven los 12 meses anteriores, trimestre a trimestre, con las cuentas contables tal como la CVM las publica — sin indicadores calculados.
Lo que hace
Herramienta | Cuándo usar |
| Resolver nombre/CNPJ/código CVM antes de cualquier análisis |
| Solicitud genérica ("analice la empresa X") — DRE de los últimos 4 trimestres |
| Otro estado financiero (balance, flujo de caja) o más de 4 trimestres |
| Cuando el usuario solicite explícitamente el ejercicio anual cerrado (DFP) |
Todos los valores monetarios se normalizan a R$ millones. Consulte Limitaciones a continuación — la IA siempre recibe advertencias cuando un dato es derivado o no pudo obtenerse.
Related MCP server: FinancialReports MCP Server
Cómo se compone el trimestre
El ITR de la CVM publica solo 1T, 2T y 3T, y ya trae cada trimestre aislado además de los acumulados del ejercicio — por lo que recortar un trimestre es filtrar período, no restar.
El 4T no existe en el ITR. Se deriva como ejercicio completo (DFP) − acumulado hasta el 3T (ITR), casado cuenta a cuenta por el código contable. Todo período así viene marcado con derivado: true en la respuesta, junto con una advertencia explícita.
Dos consecuencias que vale la pena entender:
Las cuentas de stock nunca se derivan. BPA y BPP son saldos en una fecha, por lo que el cierre del ejercicio ya es el valor del 4T. Solo las cuentas de flujo (DRE, DFC, DVA, DRA, DMPL) pasan por la resta.
El "último trimestre" es por empresa, no global. Ejercicios sociales no calendario cierran en otros meses — Camil, por ejemplo, tiene trimestres mar–may, jun–ago, sep–nov y dic–feb. El servidor resuelve esto por las fechas de cada compañía, y la etiqueta (
2T26) siempre viene acompañada deinicioyfin.
Instalación
Requiere Python 3.10+. Funciona de la misma forma en Windows, macOS y Linux.
Opción 1 — pipx (recomendado, aísla el entorno)
pipx install .Se ejecuta en cualquier carpeta después, como el comando cvm-mcp.
Opción 2 — pip en entorno virtual
python -m venv .venv
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
# macOS / Linux
source .venv/bin/activate
pip install -e .Opción 3 — directamente desde el código fuente, sin instalar
pip install -r requirements.txt # ou: pip install mcp[cli] httpx pandas platformdirs
python -m cvm_mcpConfigurando en Claude Desktop
Edite claude_desktop_config.json (Windows: %APPDATA%\Claude\claude_desktop_config.json; macOS: ~/Library/Application Support/Claude/claude_desktop_config.json) y agregue:
{
"mcpServers": {
"cvm": {
"command": "cvm-mcp"
}
}
}Si prefiere no instalar con pipx (Opción 3), use:
{
"mcpServers": {
"cvm": {
"command": "python",
"args": ["-m", "cvm_mcp"]
}
}
}Caché local
Los archivos descargados de la CVM (registro + ZIPs anuales de ITR y DFP) se almacenan en caché local para no descargar de nuevo en cada consulta — la verificación usa ETag/Last-Modified, por lo que las actualizaciones en el portal de la CVM se detectan automáticamente.
Vale la pena dimensionar: los paquetes vienen comprimidos (~20–30 MB por año), pero se extraen para su uso, y cada año-tipo ocupa unos cientos de MB en disco. La vista trimestral suele tocar dos años de ITR más uno de DFP.
Ubicación predeterminada (vía platformdirs, sin hardcode de SO):
Windows:
%LOCALAPPDATA%\cvm-mcpmacOS:
~/Library/Caches/cvm-mcpLinux:
~/.cache/cvm-mcp
Para usar otro directorio (ej: entornos restringidos/CI), defina CVM_MCP_CACHE_DIR antes de ejecutar el servidor.
Limitaciones importantes
El 4T es derivado, no publicado. La CVM no divulga el 4º trimestre de forma aislada; el valor proviene de
año completo − acumulado 9M. Coincide con el ejercicio por construcción, pero no es un número que la empresa reportó.Sin indicadores calculados. Esta versión devuelve cuentas contables publicadas, no márgenes, ROE o EBITDA. El código de indicadores continúa en el repositorio (
indicators.py,accounts.py), sin estar vinculado a ninguna herramienta, para ser readaptado a la base trimestral después.Sin dato de mercado: la CVM no publica cotización, valor de mercado o múltiplos (P/L, EV/EBITDA). Solicitudes de este tipo quedan fuera del alcance de esta fuente.
Las cuentas de stock no se suman. BPA y BPP son saldos: sumar los 4 trimestres de patrimonio neto no produce nada con significado. Solo las cuentas de flujo pueden acumularse en 12 meses.
No toda empresa tiene 4 trimestres (IPO reciente, suspensión, cancelación de registro, retraso en la entrega del ITR). La ventana devuelve los períodos que existan, sin llenar el vacío con cero.
Empresas del sector financiero usan un plan de cuentas de DRE diferente, por lo que los códigos contables no son comparables línea a línea con los de empresas no financieras.
Desarrollo
python -m venv .venv
.venv\Scripts\Activate.ps1 # ou source .venv/bin/activate
pip install -e .
python -m cvm_mcp # roda o servidor via stdioEstructura del proyecto:
src/cvm_mcp/
config.py # constantes e diretório de cache (cross-platform)
cache.py # download HTTP com cache condicional + extração de ZIP
parsers.py # leitura dos CSVs (encoding/separador da CVM)
cvm_client.py # busca de empresas e carregamento dos demonstrativos
quarters.py # montagem da janela trimestral e derivação do 4T
models.py # estruturas de dados (Company, Quarter)
server.py # servidor MCP (FastMCP) e definição das tools
accounts.py # (inativo) mapa do plano de contas -> itens financeiros
indicators.py # (inativo) cálculo de indicadores em base anualaccounts.py y indicators.py no son importados por ninguna herramienta en esta versión — quedan en el repositorio para servir de base cuando los indicadores sean reintroducidos en base trimestral.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP Server for accessing 36 Brazilian public data sources and 1 agent, enabling AI agents to query government data on economy, legislation, transparency, judiciary, elections, environment, health, and more.MIT
- AlicenseNot gradedqualityBmaintenanceOfficial MCP server for the FinancialReports API. Provides direct access to regulatory filings, financial data, and corporate information from listed companies worldwide via 15 curated tools.2MIT
- AlicenseBqualityCmaintenanceMCP server for B3 (Brazilian stock exchange) data, offering tools for real-time quotes, historical prices, dividends, FIIs, fundamental analysis, options, and indices via natural language.9MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that exposes real-time financial data tools for stock search, company info, historical prices, and financial metrics from Yahoo Finance, enabling AI agents to answer natural-language questions about stocks and financial markets.MIT
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/IgormCarvalho/cvm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server