Skip to main content
Glama
finpilot

finpilot

by antonshkelll

finpilot

CI Python License

Локальная аналитика банковской выписки: куда ушли деньги, какие подписки списываются, нет ли странных операций и сколько уйдёт до конца месяца.

Работает двумя способами:

  • в терминале: finpilot report выписка.csv;

  • как MCP-сервер для Claude Desktop, Claude Code, Cursor и других AI-ассистентов. Подключаете один раз и спрашиваете обычным текстом: «почему в августе я потратил вдвое больше?».

Выписка не уходит в облако. Файл читается на вашем компьютере, а ассистент получает только агрегаты и найденные операции.

Зачем

Банковские приложения показывают траты по категориям, но на вопросы вроде «сколько я трачу на подписки в год?», «что изменилось по сравнению с прошлым месяцем?» или «это двойное списание или я правда дважды ел в Теремке?» ответа в них нет, и выписку приходится листать руками.

MCP (Model Context Protocol) — открытый протокол, через который AI-ассистенты подключают внешние инструменты. finpilot даёт ассистенту 7 инструментов поверх вашей выписки, и модель сама решает, какие вызвать.

Related MCP server: LedgerLens

Что умеет

Инструмент MCP

Что делает

load_statement

загружает выписку, возвращает период и итоги

spending_by_category

расходы по категориям за месяц и изменение к прошлому

top_merchants

на какие магазины и сервисы ушло больше всего

find_subscriptions

регулярные списания: сумма, периодичность, следующая дата, стоимость в год

find_unusual_transactions

траты крупнее обычного для категории и двойные списания

forecast_month

прогноз расходов до конца месяца при текущем темпе

search_transactions

поиск операций по тексту или категории

Есть и шаблон запроса monthly_review: разбор месяца с тремя конкретными советами.

Категория операции берётся из выгрузки банка, если она там есть; иначе по MCC-коду, а если нет и его, по ключевым словам в описании. Переводы, пополнения и снятие наличных в расходы не входят.

Пример

На тестовой выписке из examples/:

$ finpilot report examples/sample_statement.csv

Выписка: 392 операции, 01.04.2026 — 20.09.2026

Расходы за 2026-09 (по 20.09.2026): 25 937 ₽  (в 2026-08 к тому же числу: 46 934 ₽)

  Продукты                      12 304 ₽    47%    +28%
  Кафе и рестораны               6 330 ₽    24%   +197%
  Маркетплейсы и магазины        3 094 ₽    12%    -89%
  ...

Подписки: 4, в год 21 564 ₽
  МТС                                    650 ₽  ежемесячно, следующее 12.10.2026
  Okko                                   449 ₽  ежемесячно, следующее 21.09.2026
  Яндекс Плюс                            399 ₽  ежемесячно, следующее 05.10.2026
  Telegram Premium                       299 ₽  ежемесячно, следующее 18.10.2026

Необычные операции:
  03.09.2026 13:40  Теремок                1 890 ₽  обычно в категории ~310 ₽
  03.09.2026 13:42  Теремок                1 890 ₽  обычно в категории ~310 ₽; повторное списание той же суммы в течение 10 минут

Прогноз на 2026-09: 42 766 ₽ (потрачено 25 937 ₽, осталось дней: 10)

Установка

Нужен Python 3.10+.

macOS / Linux:

git clone https://github.com/antonshkelll/finpilot-mcp.git
cd finpilot-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
finpilot report examples/sample_statement.csv

Windows (PowerShell):

git clone https://github.com/antonshkelll/finpilot-mcp.git
cd finpilot-mcp
py -m venv .venv
.venv\Scripts\Activate.ps1
pip install -e .
finpilot report examples\sample_statement.csv

Подключение к AI-ассистенту

Понадобится полный путь к finpilot-mcp внутри виртуального окружения. Узнать его:

  • macOS / Linux: which finpilot-mcp (при активированном .venv);

  • Windows: where finpilot-mcp.

Claude Desktop

Откройте Settings → Developer → Edit Config. Файл лежит в ~/Library/Application Support/Claude/claude_desktop_config.json на macOS и в %APPDATA%\Claude\claude_desktop_config.json на Windows. Добавьте:

{
  "mcpServers": {
    "finpilot": {
      "command": "/Users/you/finpilot-mcp/.venv/bin/finpilot-mcp",
      "env": { "FINPILOT_STATEMENT": "/Users/you/Downloads/statement.csv" }
    }
  }
}

На Windows путь будет вида C:\\Users\\you\\finpilot-mcp\\.venv\\Scripts\\finpilot-mcp.exe (обратные слэши удваиваются). Перезапустите Claude Desktop, и в списке инструментов появится finpilot.

Claude Code

claude mcp add finpilot \
  --env FINPILOT_STATEMENT=/path/to/statement.csv \
  -- /path/to/.venv/bin/finpilot-mcp

Cursor

Файл ~/.cursor/mcp.json, формат тот же, что у Claude Desktop.

FINPILOT_STATEMENT можно не задавать. Тогда достаточно сказать ассистенту «загрузи выписку /путь/к/файлу.csv», и он вызовет load_statement.

Какие выписки подходят

  • Т-Банк: выгрузка операций в CSV из веб-версии. Колонки «Дата операции», «Сумма операции», «Категория», «MCC», «Описание» подхватываются автоматически, кодировка UTF-8 или Windows-1251.

  • Любой другой банк: сохраните таблицу как CSV с колонками date, amount, description (расходы со знаком минус). Даты можно писать как 2026-09-12 или 12.09.2026. Колонки mcc и category необязательны.

Покупки в валюте считаются по сумме в рублях (колонка «Сумма платежа» у Т-Банка). Если месяц ещё не закончился, сравнение с прошлым идёт «к тому же числу». Подписка, по которой списания прекратились, в отчёт не попадает.

Если формат не распознался, finpilot напишет, каких колонок не хватает и какие нашёл.

Для разработчиков

pip install -e ".[dev]"
# 19 тестов: реальные форматы выписок и сквозной тест MCP-сервера
pytest -q
python examples/make_sample.py     # пересоздать тестовую выписку
finpilot/
  statement.py    чтение CSV в единый формат
  categories.py   категории: банк → MCC → ключевые слова
  analytics.py    сводки, подписки, аномалии, прогноз
  server.py       MCP-сервер (официальный Python SDK, MCPServer)
  cli.py          текстовый отчёт

Ограничения

  • PDF-выписки (например, у Сбера) пока не читаются: сначала их нужно перевести в CSV.

  • Категории по ключевым словам настроены под российские сервисы, а редкие мерчанты попадут в «Прочее».

  • Подписка определяется по трём и более похожим списаниям с регулярным интервалом, поэтому новая подписка появится в отчёте только через три месяца.

Связанные проекты

  • TxGPT: категоризация операций языковой моделью

  • Subly: трекер подписок для Android

Все проекты собраны в профиле.

Available Tools

7 tools
find_subscriptionsA

Регулярные списания (подписки): сумма, периодичность, дата следующего списания, стоимость в год.

Inputs: no named parameters. Returns: result

find_unusual_transactionsC

Операции крупнее обычного для своей категории и возможные двойные списания.

Inputs: month. Returns: result

forecast_monthB

Прогноз расходов до конца последнего месяца выписки при текущем темпе трат.

Inputs: no named parameters.

load_statementC

Загрузить выписку (CSV Т-Банка или CSV с колонками date, amount, description). Возвращает период и итоги.

Inputs: path (required).

search_transactionsC

Найти операции по тексту описания или по названию категории.

Inputs: query (required), limit, month. Returns: result

spending_by_categoryA

Расходы по категориям за месяц (YYYY-MM, по умолчанию последний) и изменение к прошлому месяцу.

Inputs: month.

top_merchantsC

Магазины и сервисы, на которые ушло больше всего денег за месяц.

Inputs: n, month. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool targets a distinct analysis task: ingestion, category aggregation, merchant aggregation, subscription detection, forecasting, anomaly detection, and text search. Boundaries are clear, and no two tools overlap significantly.

    Naming Consistency4/5

    All names use snake_case and are readable, but verb style varies slightly: load_, find_, forecast_, search_ are verbs while spending_by_ and top_ are noun phrases. Still, the pattern is mostly consistent.

    Tool Count5/5

    Seven tools is well-scoped for a personal finance analysis server. Each tool covers a unique analytical angle and none feels redundant.

    Completeness4/5

    Core analysis workflows (load, categorize, top merchants, subscriptions, forecast, anomalies, search) are covered. Minor gaps like a dedicated list-all-transactions or income analysis exist but are workable via search.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Enables parsing and filtering of mBank CSV operation exports locally. Supports data aggregation and querying through natural language, running entirely offline with no network calls.
      3
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables querying your own local bank and credit card statement files (CSV or PDF) in plain language, so you can discover forgotten recurring subscriptions, compare spending across months and quarters, and look up transactions without any bank logins or network calls.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables natural-language access to personal finance data, including consolidated balances, monthly overviews, transaction search, credit card invoices, recurring bills, budgets, category/tag reports, cash flow forecasts, and Open Finance status, with optional read/write tools.
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables an AI agent to analyze your own bank card invoices from Nubank CSV and Itaú PDF files, with optional read-only fetching from Gmail or Google Drive. It validates parsed totals against statement totals and provides tools for spending summaries, transaction searches, monthly comparisons, and recurring-charge detection.
      7
      MIT