Vitafin money tracker

Money tracker, every account in its own currency: cards, loans, budgets, bills, splits, net worth.

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноТолько чтение

Что умеет

  • List Accounts: Accounts with their currency, institution, region and current balance (yours and any a partner shares with you).
  • Create Account: Create an account. One currency per account.
  • Set Account Balance: Make an account's balance equal what the bank shows, by recording one adjustment row for the difference (outside spending). Use after the user reads a balance off their banking ap

Какие данные видит

Нужен ли аккаунт

Не нужен: сервер работает без входа

Money tracker, every account in its own currency: cards, loans, budgets, bills, splits, net worth.

Vitafin keeps a household's money records: bank and card accounts in any currency (never summed across currencies), loans and EMIs, budgets, recurring bills, split bills and group trips, investments and net worth. The tools log spending, read card statements, reconcile bank statements, draw charts and answer what is due. Remote server with OAuth sign-in; a 14-day trial starts at sign-up, no card. Works with Claude, ChatGPT, Cursor and any MCP client.

How to connect: https://vitafin.io/connect/

Как подключить

Как подключить Vitafin money tracker к Claude

Адрес сервера, который нужно вставить в настройках Claude:

https://vitafin--vitafin.run.tools

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить Vitafin money tracker к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

https://vitafin--vitafin.run.tools

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить Vitafin money tracker к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

https://vitafin--vitafin.run.tools

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (60)

Технические названия из tools/list. Нужны только разработчикам.

list_accountsAccounts with their currency, institution, region and current balance (yours and any a partner shares with you).
create_accountCreate an account. One currency per account.
set_account_balanceMake an account's balance equal what the bank shows, by recording one adjustment row for the difference (outside spending). Use after the user reads a balance off their banking app; prefer reconcile_statement when a statement is available.
list_categoriesCategory ids, names, kind (expense/income) and parent for sub-categories.
search_transactionsSearch transactions. Each row carries its own currency; do not add rows across currencies.
spending_summarySpent / received totals for a period, ONE BLOCK PER CURRENCY, with a per-category breakdown. Never sums across currencies. Transfer legs are excluded.
log_transactionRecord an expense (negative amount) or income (positive) on an account, in that account's currency. Category is auto-suggested from the merchant when omitted. Lands in the review queue. Money that leaves or arrives but is not really spending or income (a payout on someone's behalf, a reimbursement, a refundable deposit) goes in with excluded=true: it moves the balance but stays out of insights and budgets.
update_transactionChange category, merchant, note, reviewed flag, or whether the row counts as spending/income (excluded). Amount and date are immutable once reviewed.
review_queueTransactions awaiting the user's confirmation (auto-captured or created via MCP).
create_transferMove money between accounts. For different currencies give to_amount or rate; the rate is frozen at creation. Legs are excluded from spending; an optional fee is a real expense.
list_transfersTransfers with their effective rate.
import_statementImport a bank statement (CSV text) into one account. Dry-run by default: returns every parsed row with its status (ready / duplicate / invalid). Pass commit=true to write the ready rows; they land in the review queue. Amounts are read in the account's currency.
budget_statusEvery budget with what its category (and sub-categories) has consumed this calendar month, per currency. Ratio > 1 means over budget.
spending_trendSpent and received per calendar month for the last N months, one series per currency (never summed across). Transfer legs excluded.
list_debtsCredit cards (limit, cycle, current balance from the card account) and loans (borrowed and lent, with payments and simple outstanding = principal − payments). Per currency.
list_holdingsInvestment holdings with quantity held, cost basis, last cached quote and unrealised P/L, per currency. Quotes carry an as-of time; never assume they are live.
upcomingWhat's due in the next N days: recurring rules (next run), planned one-off expenses, reminders, card due dates and loan payment days. Committed outflow per currency (never summed across).
people_balancesWho owes you what from split bills (and what you owe them), per person per currency, with each split and settlement. Positive balance = they owe you.
record_settlementSomeone paid you back (or you paid them) for split bills. Positive amount = they paid you. Optionally also records the money on one of your accounts. The phone picks it up on its next sync.
split_transactionSplit one of your expenses with other people: each owes their share until settled. Amounts omitted → equal split with you included (you keep the rounding). Replaces any existing split on that transaction.
parse_transaction_textRun a bank SMS/email body through the same rule engine the app uses. Returns amount, currency, direction, merchant, last4, date and a confidence; does NOT save. Use log_transaction to record it.
list_groupsYour expense groups (trips, flats, events) with members and, per currency, total spent, each member's net position and the payments that would settle everyone up.
add_group_expenseAdd an expense to a group: who paid and who shares it (equal split unless amounts are given). Members are matched by name; you are the payer unless told otherwise. Optionally also logs it on one of your accounts when you paid.
settle_groupRecord a payment between two group members that squares up part of the group's balance (e.g. Rahul paid you ₹2,000 for the trip). Use list_groups → settle_up for the suggested payments.
reconcile_statementReconcile one account against a bank statement for a period. Give the statement as CSV text or as rows (date, amount, description) you read off a PDF. Reports matched lines, lines the app is missing, ledger rows the bank never saw, and the closing-balance difference. Dry-run unless commit=true; then the missing rows are added as bank-confirmed, the unexplained ledger rows go to the review queue, and the run is recorded.
record_card_statementOne credit-card statement, as the bank printed it. Give the statement date and the closing balance owed and the ledger is anchored to the bank: card terms (limit, statement day, due date, minimum due) are set from the statement, the lines you list are matched or added, and whatever still separates the ledger from the closing balance becomes one dated 'Balance adjustment' row that never counts as spending. Send statements oldest first, one call each; re-sending the same statement date replaces its adjustment instead of stacking. Dry-run unless commit=true.
chartA picture of the numbers, as a PNG you can show the user: spending by month, income vs spending, where the money went (top categories) for a period, or one account's balance over time. One panel per currency, never summed across. The reply also carries the figures as a table so you can quote them exactly.
unparsed_alertsBank alert texts you logged (via log_transaction raw_text) that no parse rule reads yet, grouped by bank, each with the amount/merchant that was logged for it. Use them to write a rule for that bank, then test_parse_rule and save_parse_rule.
test_parse_ruleDry-run a parse rule over your stored alerts (and any extra samples): which match, and whether the parsed amount equals what was logged. Nothing is saved.
save_parse_ruleSave a parse rule for your account. It must match at least one stored alert with the right amount (or pass force=true). Synced to your phone, which then reads that bank's alerts by itself.
list_parse_rulesYour saved parse rules (the bank-alert patterns learned through MCP).
delete_parse_ruleRemove one of your parse rules (the phone drops it on its next sync).
set_category_ruleTeach the categoriser: merchants matching a pattern get this category from now on (on the phone too). Optionally re-categorise the existing transactions that match.
add_holdingCreate an investment holding (a stock, ETF, mutual fund, gold, crypto…) with no lots yet; use record_lot for buys/sells, or import_holdings for a broker export. A live-price source is picked from the kind unless given.
record_lotRecord a buy or sell of a holding: quantity, total amount paid/received (before fee), optional fee, and optionally the bank account the cash moved through (writes the cash row too).
import_holdingsImport a broker's holdings export (Zerodha/Groww/Kite style CSV: instrument, quantity, average cost, optionally LTP) into an investment account. Each row becomes a holding plus one 'buy' lot at the average cost dated as_of, so cost basis and P/L work from day one. Existing holdings (same symbol) are skipped unless replace=true. Dry-run unless commit=true.
set_quoteRecord the current price of a holding by hand (e.g. from the broker app), with an as-of time. The app refreshes live sources on its own; this is for holdings without one.
add_recurring_ruleSet up something that repeats: rent, salary, a subscription, an EMI. Negative amount = expense, positive = income, in the account's currency. mode 'autoPost' logs it on the due day; 'remind' only shows it under Upcoming until you confirm.
list_recurring_rulesYour recurring rules with next run, mode and paused state.
update_recurring_rulePause/resume, change the amount, or delete a recurring rule.
add_planned_expenseA one-off you know is coming (a flight, a fee, a gift): shows under Upcoming until it is logged or skipped. Amount is positive; it is an expense.
resolve_planned_expenseA planned expense happened (log it as a transaction on an account, optionally with the real amount/date) or won't happen (skip).
add_reminderA dated note under Upcoming (renew passport, cancel trial). No money attached.
complete_reminderMark a reminder done (or delete it).
set_budgetSet (or replace) a spending limit for a category in one currency per week/month/year. Pass limit 0 to remove it. budget_status reports progress.
update_accountRename an account, fix its bank/country/last-4, or archive it (archived accounts keep their history but leave every list).
delete_transactionDelete a transaction (and any split on it). Transfer legs: delete the transfer instead.
correct_transactionChange a transaction's amount, date or account — the things update_transaction deliberately leaves alone. Use when the user says the number itself was wrong.
delete_transferRemove a transfer and both of its legs (and the fee row, if any).
set_credit_cardGive a card account its terms so due dates and utilisation work: limit, statement day, days until due, minimum due. Creates or replaces.
add_loanA loan you took (borrowed) or money you lent. EMI loans need term_months (the EMI is computed if omitted); pay-as-you-go loans don't.
record_loan_paymentAn instalment or prepayment on a loan (or money received back on one you lent). Optionally the bank account it moved through, which also writes the cash row.
update_loanClose a loan (fully repaid), reopen it, rename it, or delete it with its payments.
add_categoryA new category (or sub-category under a parent). Id is derived from the name unless given.
update_categoryRename a category, change its icon, or archive it (rows keep their category; it just leaves pickers).
update_personRename someone you split with, set their contact, or archive them.
delete_splitRemove the split on a transaction (the transaction stays); or delete a settlement by id (its bank row, if any, goes too).
create_groupStart a group ledger (a trip, a flat) with you as owner and the other members by name. Members can join from their own phone later with group_invite.
add_group_memberAdd a member by name to a group you are in.
group_inviteAn invite link for a group. With member_id, whoever opens it becomes that named placeholder (keeps its history); without, they join as a new member.