personal-finance-mcp
personal-finance-mcp
Неофициально. Этот проект не связан, не одобрен и не спонсируется Plaid Inc. "Plaid" является торговой маркой Plaid Inc. Это самохостируемый клиент, который взаимодействует с API Plaid, используя предоставленные вами учетные данные.
Самохостируемый MCP-сервер с правами только на чтение, который подключает ваши банковские счета, кредитные карты, займы и брокерские счета (через Plaid) к MCP-клиенту, такому как Claude Code. Задавайте вопросы о своих финансах на обычном языке — без участия сторонних агрегаторов (Monarch, Mint и т. д.).
Что можно спросить
"Какой мой общий баланс по всем счетам?"
"Покажи транзакции на сумму более $100 за последние 30 дней."
"За какие подписки я все еще плачу?"
"Сколько я потратил на продукты в прошлом месяце?"
"Есть ли банк, требующий повторной аутентификации?"
Пример сессии (иллюстративный):
you : What did I spend on groceries last month?
claude : [calls get_transactions]
$487.23 across 14 transactions. Top merchants:
Whole Foods ($198), Trader Joe's ($156), Safeway ($89).
you : Any subscriptions I'm still paying for?
claude : [calls get_recurring_transactions]
7 active recurring outflows totaling $142/mo:
Netflix ($15.99), Spotify ($11.99), NYT ($4), ...Инструменты
Все 9 инструментов работают только на чтение. Каждый возвращает {<data>: [...], "warnings": [...]} так, чтобы один неисправный банк не нарушал работу всего запроса.
Инструмент | Что он делает |
| Все счета во всех подключенных банках с балансами |
| Текущие и доступные балансы в реальном времени (с возможностью фильтрации по счету) |
| Транзакции за указанный период (до 2 лет назад) |
| Поиск по ключевым словам среди продавцов / имен / контрагентов |
| Обнаруженные регулярные входящие и исходящие потоки |
| Кредитные карты, студенческие займы, ипотеки с APR и деталями платежей |
| Текущие активы с тикером и метаданными ценных бумаг |
| История покупок / продаж / дивидендов за указанный период |
| Состояние каждого подключенного банка (показывает необходимость повторной аутентификации) |
Быстрый старт
Требуется Python 3.11+, аккаунт Plaid (пробный план Trial) и MCP-клиент.
1. Настройка Plaid
Зарегистрируйтесь на https://dashboard.plaid.com/signup → выберите план Trial (бесплатно, 10 элементов).
Team Settings → Products: включите Transactions, Liabilities, Investments.
Team Settings → API: скопируйте ваш
client_idи productionsecret.
2. Установка
git clone https://github.com/<you>/personal-finance-mcp.git
cd personal-finance-mcp
python3.11 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # then fill in PLAID_CLIENT_ID and PLAID_SECRET
pytest -v # sanity check3. Подключение каждого банка
Запускайте по одному разу для каждого банка, который хотите подключить:
uvicorn link_helper:app --port 8765Откройте http://localhost:8765, нажмите Link a bank и завершите процесс Plaid Link. Терминал выведет строку вида PLAID_TOKEN_CHASE=access-prod-xxx... — вставьте ее в .env и повторите для каждого банка.
4. Запуск
python server.py # serves on http://localhost:8000/mcp5. Добавление в Claude Code
claude mcp add --transport http personal-finance http://localhost:8000/mcpПопробуйте команду "list my accounts" для проверки.
Развертывание
Для развертывания, доступного отовсюду:
Docker (включен):
docker build -t personal-finance-mcp . && docker run --rm -p 8000:8000 --env-file .env personal-finance-mcpЛюбой Python-хостинг (Fly.io, Railway, Raspberry Pi + Tailscale, VPS): установите переменные окружения из
.env.example, откройте/mcpчерез HTTPS, защитите авторизацией.Prefect Horizon (используется автором — $0 регулярных затрат): см. docs/DEPLOYMENT.md для полного руководства.
Защитите эндпоинт. Открытый MCP-эндпоинт с вашими токенами раскрывает все подключенные счета. Используйте OAuth 2.1, Cloudflare Access или привяжите только к частной сети.
Безопасность
Однопользовательский режим. Одно развертывание на человека. Не делитесь доступом.
Только чтение. Ни один инструмент не изменяет состояние в каком-либо учреждении. Не добавляйте инструменты, которые это делают.
Токены живут в переменных окружения, никогда не записываются на диск.
.envигнорируется git.Вы несете ответственность за соблюдение правил Plaid. Вы являетесь клиентом Plaid под своей собственной учетной записью.
Перед каждым развертыванием:
[ ]
.envникогда не коммитится:git log --all -- .envничего не возвращает[ ] В истории нет реальных токенов:
git log -S'access-prod-' --allвозвращает только заглушки[ ] Перед MCP-эндпоинтом стоит шлюз авторизации (или только localhost)
[ ]
HORIZON=1(или аналогичное) установлено в среде развертывания, блокируяlink_helper.pyтам[ ] Проверяйте
get_institutions_status()каждые несколько недель на предмет необходимости повторной аутентификации
Устранение неполадок
Инструмент возвращает пустоту, несмотря на наличие реальных данных. Продукты Plaid не были включены при подключении банка. Переподключитесь с активными Transactions + Liabilities + Investments. Инструмент выводит PRODUCTS_NOT_SUPPORTED в warnings, если причина в этом.
get_institutions_status() показывает re_auth_required. Сессия Plaid для банка истекла. Запустите link_helper.py в режиме обновления — ваш существующий токен доступа останется прежним. См. docs/DEPLOYMENT.md.
Plaid Link показывает банк как "неподдерживаемый" (часто с Amex). Обычно это проблема INSTITUTION_REGISTRATION_REQUIRED — банки с OAuth требуют предварительной регистрации каждого учреждения в панели управления Plaid. См. docs/TROUBLESHOOTING.md.
Другие проблемы: docs/TROUBLESHOOTING.md.
Архитектура
server.py — сервер FastMCP, 9 инструментов только для чтения.
plaid_client.py — обертка SDK Plaid: маскирование токенов
SecretStr, 5-минутный кэш состояния для каждого элемента, форматирование ответов, структурированное отображение ошибок.link_helper.py — локальное приложение FastAPI для Plaid Link. Отказывается работать, если установлен
HORIZON=1.
Более глубокий разбор (включая причины выбора /transactions/get вместо /transactions/sync): docs/ARCHITECTURE.md.
Участие в разработке
См. CONTRIBUTING.md. Область применения намеренно узкая: только чтение, один пользователь, на базе Plaid.
Latest Blog Posts
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/JosueM1109/personal-finance-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server