Conectá Sigma a tu IA
Sigma expone un servidor MCP (Model Context Protocol) sobre HTTP. Desde Claude Desktop, ChatGPT, Cursor o cualquier cliente compatible, tu asistente puede cargar gastos, listar inversiones y sincronizar IBKR con un par de pasos.
Generá una API key
En Settings podés crear una key por cada cliente (Claude, ChatGPT, Cursor). El token se muestra una sola vez; guardalo en un lugar seguro.
Configurá el MCP
Agregá el endpoint + Authorization: Bearer <tu-key> en el config del cliente. Abajo tenés el snippet para cada uno.
Usalo desde el chat
Pedile al asistente cosas como "agregá este gasto", "listame mis inversiones" o "sincronizá IBKR". El cliente llama las tools automáticamente.
Authorization: Bearer.https://sigma-lovat-eta.vercel.app/api/mcp~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows).{
"mcpServers": {
"sigma": {
"transport": {
"type": "http",
"url": "https://sigma-lovat-eta.vercel.app/api/mcp",
"headers": {
"Authorization": "Bearer sk_sigma_..."
}
}
}
}
}Reemplazá sk_sigma_... por la key que generaste. Reiniciá Claude Desktop después de guardar.
- Nombre: Sigma
- URL:
https://sigma-lovat-eta.vercel.app/api/mcp - Auth: Bearer token → pegá tu API key completa (empieza con
sk_sigma_). - Guardá, y activalo en el chat que uses.
~/.cursor/mcp.json.{
"mcpServers": {
"sigma": {
"url": "https://sigma-lovat-eta.vercel.app/api/mcp",
"headers": {
"Authorization": "Bearer sk_sigma_..."
}
}
}
}POST. Body: JSON-RPC 2.0.curl -X POST https://sigma-lovat-eta.vercel.app/api/mcp \
-H "Authorization: Bearer sk_sigma_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'list_expensesLista gastos del usuario con filtros opcionales (from, to, categoryId, paymentMethodId, limit, sort). Devuelve los gastos y un summary con total y breakdown por categoría en USD.
add_expenseCrea un gasto manual. Si currency es ARS y no se pasa exchangeRate, el server trae el blue del día. category y paymentMethod aceptan nombre o ObjectId.
add_expenses_batchCarga múltiples gastos (1-100) en una sola llamada. Fetchea el blue del día una sola vez para todos los ARS. Útil para importar un resumen de tarjeta completo. Si pasás exchangeRate, se usa para TODOS los items ARS del batch; sino se busca el blue del día actual.
add_expense_from_imageCarga un gasto a partir de los datos ya extraídos por el modelo desde una foto de ticket. NO procesa imágenes — el modelo debe parsear la foto con su vision y pasarnos los campos (merchant, date, total, currency, paymentMethod, category, items). Marca source=ocr-via-chat.
update_expenseActualiza campos de un gasto existente por id. Útil para corregir fecha, agregar purchaseDate (cuotas), cambiar categoría/medio de pago, etc. Por default NO recalcula amountUSD; pasá recalcUSD:true para re-cotizar con el blue del date nuevo.
get_month_summaryResumen del mes (default actual): total en USD y ARS, breakdown por categoría, por medio de pago y top merchants.
list_investmentsLista posiciones del portfolio del usuario. Por defecto solo las abiertas (openOnly=true). Filtros opcionales: `type` (un type puntual) o `assetClass` ('financial' = acciones/ETF/bonos/cash/crypto, 'patrimony' = auto/inmueble/colección/préstamos otorgados). Devuelve totales en USD y P&L si hay currentPrice.
add_investmentAgrega una posición al portfolio. Si currency es ARS y no se pasa exchangeRate, trae el blue para normalizar avgPrice a USD.
update_investmentActualiza campos de una posición existente (name, ticker, qty, avgPrice, currency, broker, notes, currentPrice, closedAt). Scope-safe: solo opera sobre inversiones del userId autenticado. Si cambia qty/avgPrice/currency, recalcula avgPriceUSD y totalCostUSD. Si envías currentPrice, marca lastPriceAt=ahora (útil para fondos sin ticker).
delete_investmentElimina (hard delete) una posición del portfolio del usuario autenticado. Requiere el _id de Mongo (lo devuelve list_investments como 'id'). Scope-safe: solo borra si pertenece al mismo userId.
list_investment_wishesLista la wishlist de inversiones del usuario. Opcional filter por status (pending, in-progress, done, cancelled).
add_investment_wishAgrega una inversión deseada a la wishlist del usuario.
update_expense_rateEdita manualmente el tipo de cambio de un gasto y recalcula amountUSD. Marca el source como 'manual'.
ibkr_validateValida la configuración de la Flex Query de IBKR del usuario autenticado. Hace un pull real contra IBKR usando el token guardado (cifrado en DB) y reporta, por sección (Open Positions, Cash Transactions, Trades, Cash Report, Change in NAV, Account Information), qué campos críticos y recomendados están presentes/faltantes en el XML. No importa nada a la DB; es solo diagnóstico. Útil para detectar fields no tildados en la UI de IBKR antes de hacer sync.
ibkr_syncSincroniza el portfolio IBKR del usuario autenticado: pide la Flex Query, hace upsert de las Open Positions (qty, avgPrice, currentPrice/markPrice) y de los Cash Transactions como movimientos de inversión. Devuelve el conteo de posiciones y movimientos actualizados. Usar cuando el usuario pida 'actualizar IBKR', 'refrescar mi portfolio', 'traer los últimos precios'.
list_payment_methodsLista los medios de pago del usuario (cash, debit, credit, transfer, crypto). Por defecto solo los activos; pasá includeInactive:true para traer todos.
add_payment_methodCrea un medio de pago nuevo (cash, debit, credit, transfer, crypto). name debe ser único por usuario.
update_payment_methodActualiza un medio de pago. `id` acepta ObjectId o el nombre actual. Para desactivar pasá isActive:false. Falla si el medio de pago no existe.
list_categoriesLista categorías disponibles para el usuario (defaults del sistema + las propias). Útil para elegir una antes de crear un gasto.
add_categoryCrea una categoría propia del usuario. name debe ser único. Si ya existe (propia o default), la devuelve en vez de duplicar.
update_categoryActualiza una categoría propia del usuario. `id` acepta ObjectId o el nombre actual. Falla si no existe. Las categorías default del sistema no se pueden editar.
¿Listo para conectar?
Generá tu primera API key en Settings. Podés crear una por cada cliente para que revocar una no rompa las demás.
Entrar y generar la key