MCP server for portfolio tracking and financial analysis. Exposes tools for querying portfolio composition, performance, benchmarks, financial calendar events, and investment objectives via stdio for Claude Desktop/Claude Code integration.
17 tools with consistent naming (verb_noun pattern: resumen*, listar*, distribucion, etc.) and detailed descriptions (avg 150+ chars). All tools are READ_ONLY, reducing risk. However, output schemas are NOT documented in the visible code, only input schemas are shown. Parameter descriptions are present but some lack type constraints (e.g., 'mes' accepts any string, no format validation). Error handling is minimal; tools return error objects but lack recovery guidance. No tool annotations (readOnlyHint, etc.) despite all being read-only. Composition is strong, tools chain well (e.g., listarTenencias → rendimientoPorActivo). Caching layer shows production awareness.
Devuelve series históricas de benchmarks (S&P 500, inflación, MEP, Bitcoin, oro) indexadas a 100 en el primer mes de la cartera, para comparar rendimiento.
Devuelve eventos financieros próximos (dividendos, earnings, cupones, amortizaciones) de los próximos 90 días, con fechas, montos estimados y yields anuales.
Analiza carry trade: retorno directo en pesos vs. MEP breakeven, para instrumentos de renta fija argentina (LECAP, Boncap, duales, Tamar, Badlar).
Agrupa la cartera por un criterio (tipo, riesgo, geografía, renta o moneda) y devuelve el total en USD y porcentaje para cada categoría.
Devuelve VCP, rendimientos (diario, mes, año, 12m) y patrimonio de fondos comunes de inversión en cartera, según la planilla diaria de CAFCI.
Devuelve catálogo de gastos fijos recurrentes (suscripciones, seguros) con monto, frecuencia (mensual/anual) y descripción.
Devuelve serie histórica de precios de un ticker específico en un rango temporal (1m, 6m, 1a, 5a, 10a).
Output schemas not documented. Code shows input schemas but no return type definitions visible. LLMs cannot plan downstream calls or extract fields without knowing response structure.
Parameter 'mes' (used in 5 tools) accepts any string with no format validation. Should enforce YYYY-MM pattern or provide enum of available months. Current approach invites invalid input.
No tool annotations despite all 17 tools being READ_ONLY. Adding readOnlyHint=true to all tools would signal safety to agents and enable optimizations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Devuelve histórico de ingresos (haberes/sueldos) por empleador en ARS y USD, agrupados por mes.
Lista todas las posiciones de la cartera para un mes específico (o el último disponible), ordenadas por tamaño en USD, con detalles de cantidad, moneda, tipo, riesgo, geografía y renta.
Compara la composición real de la cartera contra los objetivos fijados en el dashboard, mostrando el desvío de cada categoría. Soporta filtrado por dimensión específica (TIPO, RIESGO, MONEDA, RENTA, SECTOR_GEO).
Devuelve el perfil de inversor guardado (conservador, moderado, agresivo) y permite registrar cambios de decisión de inversión.
Devuelve TIR, duration, paridad y sensibilidad de bonos argentinos en cartera, agrupados por tipo de tasa (USD, CER, ARS, etc.). Incluye ponderados por tenencia.
Devuelve fundamentals de acciones/CEDEARs en cartera: P/E, market cap, 52-week high/low, dividend yield, y cambio porcentual.
Calcula ratios de la cartera: Sharpe, Sortino, máxima caída, volatilidad, correlación con benchmarks. Soporta filtrado por dimensión (tipo, riesgo, geografía, renta, moneda).
Calcula el rendimiento (ganancia/pérdida) de cada posición en la cartera, en USD y porcentaje, desde su entrada hasta la valuación actual.
Devuelve un resumen de la cartera: total en USD/ARS, aportes acumulados, rendimiento neto y porcentual, TIR anual, cantidad de activos, y rango de meses con datos disponibles.
Devuelve la serie histórica de la cartera mes a mes: total en USD/ARS, aportes, rendimiento acumulado, y TIR anual.
Error handling returns bare error objects (e.g., listarTenencias returns {error, meses_disponibles}) but lacks recovery guidance. Should include 'Try calling X with parameter Y' hints.
perfilInversor tool accepts 'accion' enum but 'registrar' action requires 'decision' param. Dependency undocumented, LLM may pass registrar without decision, causing silent failure.