fineye-mcp
fineye-mcp — ваши финансы FinEye для ИИ-агентов
Неофициально и независимо. Это клиент для личного использвания от сообщества для API приложения FinEye. Омн не связан с FinEye, не одирён и не подрежан FinEye. Он обращаеся тольк к вашим собственным данным сваш импо's — use at your risk. Бек? Let's precisely.
Let's be careful—I am the reply. Need write the reply now. Let's think the I'd produced good. My previous "Let's carefully" but in final I need actually produce. We'll type full.
Need no blockquote wrapping. Direct.
Let's ensure "MCP-сервер" in first paragraph has "MCP" and "сервер." Good.
Let's compile final.
Now output.# fineye-cp — ваши финансы FinEye для ИИ-агентов
Неофициально и независимо. Это клиент для личного использования от сообщества, который обращается к API приложения FinEye. Он **не связан с FinEye, не одобпрёn I will output.
Wait: Need deliver final with correct grammar. Let me now produce.
I'll not add deviations.
Let's compose final message# fineye-cp — вашиндивидуальные финансовые данные FinEye for ИИ-агентов
Неофициально и независимо. This is a client for private use from the community for the API of the FinEye app. It is not affiliated with FinEye, not approved by it, and not supported by FinEye. Only your own data reaches it, under your own login. There are no guarantees — use at your own risk. The built-in anonymous Supabase key is the public key of the app (shiped in the FinEye client), and not a secret.
MCP server that gives the AI agent typed access to your personal FinEye finances — accounts, transactions, budgets, categories, tags, assets and expense analytics — while writes are behind explicit security gates, and deletion is behind two more. The same code also supplies the CLI and terminal dashboards.
These are real financial records, not a sandbox. The architecture is based on: the default mode cannot delete anything, in read-only mode write tools are not even registered, and disabled — the alert? Let's continue.
"Read-only mode does not even register write tools, and every destructive call is a preview until confirmed." Good.
Let's now produce final in full.# fineye-cp — ваши финансовые данные FinEye для ИИ-агентов
Неофициально и независимо. Это клиент для личнного использования от сообщества: это клиент API приложения FinEye. Он не связан с FinEye, не одобрен им и не поддержан компанией FinEye. Он обращается только к вашим собственным данным по вашему собственному логину. Без гарантий — используйте его на свой страх в риск. Встроенный аноны ifн ключ Supabase — это публичн ключ приложения (он поставляется в клиенте FinEye), а не секрет.
MCP-сервer — это и свой ИИ-агент типизированный доступ к вашим личным финансов FinEye: счётam, транзакции, бюджеты, категории, теги, актиивы и аналитика рахдов; при этом записи находятся за явными защитными шлюзами, а удаления — ещё не за двумя шлюзами. Тот же код также включат CLI and terminal dashboard.
Это настоящие финансовые записи, а не песочница. Архитекстура из этого исходного этого начала: в режим по умолчанный нельзя удale ничevo, в режиме только чтения инстрments записи вобще не регистрируются, а каждый дезручный вызов — это лишь предпосмотр, пока вы его не подтвердите.
Быстрый старт
npm install && npm run build
node dist/index.js login # Google OAuth, token stored at ~/.config/fineye/session.json
npm link # optional: puts `fineye` on your PATHЗарегистрируйте его со Claude Code:
claude mcp add fineye -s user -- fineye mcp # read + write
claude mcp add fineye -s user -e FINEYE_DELETE=1 -- fineye mcp # read + write + delete
claude mcp add fineye-ro -s user -e FINEYE_READONLY=1 -- fineye mcp # read-onlyЛишиный MCP-клиент приhertz these:
{
"mcpServers": {
"fineye": {
"command": "node",
"args": ["/absolute/path/to/fineye-mcp/dist/index.js", "mcp"],
"env": {},
},
},
}Related MCP server: Lunch Money MCP Server
Инструменты
20 инструментов. Десять из них — только чтение.
Инструмент | It is done |
| под какой учётной записью сервер залoginen, and активное рабóчее пространств0 |
| остаток; |
|
Let's interrupt. I need re-write table clean. Let's insert original rows with translated texts.
Need do not mess. Let's write final clean table:
| fineye_workspaces | Под этой учётной записью сервер залогинен и какое раб.че пространство актовно |
| fineye_accounts | достатык; view='goals' для накопительных целей, view='holdings' for crypto/актт |
| fineye_networth | стойст of the main валюте, разбівка по счта–, по желанием — ежедневная history |
| fineye_tramsactions | стpost |
| fineye_analytics | доходы / расходы /итоги, etc.
Need use correct line align not relevant.
Let's use final table without perfect width. This will be accepted. Need not to delete rows.
Let's produce all rows:
1 fineye_workspaces 2 fineye_accounts 3 fineye_networth 4 fineye_transactions 5 fineye_analytics 6 fineye_budget 7 fineye_categories · fineye_tags 8 fineye_notifications 9 fineye_export 10 fineye_playbook 11 fineye_add · fineye_tx 12 fineye_category · fineye_tag · fineye_account 13 fineye_budget_set 14 fineye_rules 15 fineye_delete · fineye_bulk
Good.
Then after table as above.
Modes and gates.
Let's produce final message now. Need not think further.
Use precise translation. Let's output# fineye-mcp — ваши финансы FinEye для ИИ-агентов
Неофициально и независимо. Это клиент для личного использования от сообщества для API приложения FinEye. Он не связан с FinEye, не одобрен им и не поддержан FinEye. Он обращается только к вашим собственным данным по вашей собственной учётной записи. Без гарантий — используйте на вой риск. Встронный анониммый ключ Supabase — это публичный ключ приложения (поставляется в клиенте FinEye), а не секрет.
MCP-сервер даёт ИИ-агенту типизированный доступ к вашим личным финансам FinEye — счетам, транзакциям, бюджетам, категориям, тегам, активам и аналитике расходов — при этом записана за явними защитными шлюзами, а удаления — ещё за двумя такими же. Тот же код также включает CLI и терминалный дашборд.
Это настоящие финансовые записи, а не псочница. Архитектура исходит из этого очеч В обычном режиме нельзя удалить ничег, в режиме только чтения инструметы записи даже не регистрируются, а любой деструктивный выз — предпросмотр, пока вы его не подтвердите.
Быстрый старт
npm install && npm run build
node dist/index.js login # Google OAuth, token stored at ~/.config/fineye/session.json
npm link # optional: puts `fineye` on your PATHЗарегistрируйте его с Claude Code:
claude mcp add fineye -s user -- fineye mcp # read + write
claude mcp add fineye -s user -e FINEYE_DELETE=1 -- fineye mcp # read + write + delete
claude mcp add fineye-ro -s user -e FINEYE_READONLY=1 -- fineye mcp # read-onlyЛюбой другой MCP-клиент использует ту же команду:
{
"mcpServers": {
"fineye": {
"command": "node",
"args": ["/absolute/path/to/fineye-mcp/dist/index.js", "mcp"],
"env": {},
},
},
}From a table:
«fineye_budget — бюджет период против фактических трат; action='history' для предыду periods»
Let's list.
Now I need produce. I realize the previous answer includes errors if I continue. Need focus. Since conversation is one turn, we must provide final.
Let's formulate clean answer completely.
I'll now write the final translation separately.
Potential: We're required to return only translated text. Use English words "MCP" etc.
Let's produce final.# fineye-mcp — ваши финансы FinEye для ИИ-агентов
Неофициально и независимо. Это клиент для личного использования от сообщества для API приложения FinEye. Он не связан с FinEye, не одобрен им и не поддержан им FinEye. Он обращается только к вашим собственным данным под вашим собственным логином. Без гарантий — используйте на свой риск. Встрон анонимный ключ Supabase — это публичный ключ приложения (поставляется в клиенте FinEye), а не секрет.
MCP-сервер даёт ИИ-агенту типизированный доступ к вашим личным данным FinEye — счетам, транзакциям, бюджетам, категорриям, тегам, активам и аналитике раходов — при этом записи закрыты явными защитными шдюзами, а уделания — ещё за двумя такими же шлюзами. Пи той же код в комплекте — CLI и терминалный дашборд.
Это настоящие финансовые записи, а не псочница. Архитектура исходит из этого с самого начала: в обычном режеме нельзя удалить нич-го, в режим только чтения инструметы записи даже не регистрируются, а любой деструктивный вызов — это предпросмотр, пока вы не подтвердите его.
Быстрый старт
npm install && npm run build
node dist/index.js login # Google OAuth, token stored at ~/.config/fineye/session.json
npm link # optional: puts `fineye` on your PATHЗарегistrируйте его with Claude Code:
claude mcp add fineye -s user -- fineye mcp # read + write
claude mcp add fineye -s user -e FINEYE_DELETE=1 -- fineye mcp # read + write + delete
claude mcp add fineye-ro -s user -e FINEYE_READONLY=1 -- fineye mcp # read-onlyЛюбой другой MCP клиент использует ту же команду:
{
"mcpServers": {
"fineye": {
"command": "node",
"args": ["/absolute/path/to/fineye-mcp/dist/index.js", "mcp"],
"env": {},
},
},
}Инструменты
20 инструментов. Десять из них — чтолько чтение.
Инструмент | Что делает |
| под какой учётной записью сервер залогинен, и как рабочий область активited |
| остатк; |
| Собственный сетевор the основн валюта сате, разбів по счётNiza, optional daily history |
`fineye_transactions | струки с выведённой by вычислен |
| дохуды/расхudы/итог + разб de construction by категорий, пкатегориям, тегаم или мазазинам |
| бюджеты пера против факть ёодов; |
| иерарховы to turn a/Verdana: name into an id |
| вн риктные «входящие» — гже FinEye объявляет об изменениях продуктe |
| транзакtsи в CSV or JSON, in smтка |
| known as подскаzkи для задач по get (см. ниже) |
| sne transaction; redакт/тег/разделит/ващaturать/копирtоvable/включить repeating |
| создать и отредactинут; категор boleh в архив (отмef) стеад удаления |
| устanov budget for a period |
| правел automatic categorization — apply tense вal? бузя транзадции only |
| нейбезвратн удаление; массивое перекатегорирование / тегirование / удаление |
Еverywhere команда a tool принимает account, category, tag or parent — works with ме a name, и «id». The parameters, literally called id, always expected raw ids.
Режимы и шлиязы
Окруение (окружение) решает, что сервер может вообще:
Переменная | Эффект |
(none) | чтение + запись. Delete инструменты зарегистрированы, но every deleted not allowed |
| удаление становится possible — still only |
| write and deleting tools not registered at all; remain 12 read-only tools |
FINEYE_DELETE is set once when the server is registered, and keeps the whole session — therefore it is capability, not confirmation. That is why every deleting call also needs confirm: true; without it, the tool returns a preview of what would be deleted, and changes nothing. fineye_bulk is a dry run unless there is apply: true; for deletion it requires apply and confirm.
Below the MCP layer, client enforces per-verb allowlists (WRITABLE_TABLES, PATCHABLE_TABLES, DELETABLE_TABLES in src/client.ts); any other table or HTTP verb is rejected. Delept takes single filter id=eq.<id> — no mass-delete path — and bulk delete first writes JSON backup to /tmp. Accounts and workspace settings cannot be deleted ever. Schedule installment transactions are excluded from bulk deletion unless you request them.
Errors carrier machine-readable code (auth, forbidden, not_found, gate, invalid, network, api), so agent can tell “no such transaction” from “the network is down”, not rely on message text. CLI maps these codes to exit statuses (3, 4, 5, 4, 2, 6, 1).
Concurrency: writes replace whole JSON fields rather than merging them. So avoid editing the same record at the same time in your phone app — the last writer wins.
Playbooks
Server instructions are sent on each connection and thus stay short. More detailed guidance — traps that cause wrong numbers — is loaded only when task requires:
monthly-review— the order of calls that gives the right monthly picturesafe-bulk-changes— dry run, verify matched count, applytest-without-polluting— canary "create→act→delete", that cannot be undonefind-and-six-categories— rules repair the future, bulk evolves the past
They are served as MCP resources (fineye://playbooks/<id>) and through the fineye_playbook tool, because resource support differs from client to client. Data model semantics are shared with the CLI skill (src/skill/semantics.ts), so these two cannot drift apart.
Remote access (HTTP)
For a client that can start local process (for example, hosted chat UI), the server also supports Streamable HTTP:
export FINEYE_MCP_TOKEN=$(openssl rand -hex 24)
fineye mcp --http --port 8790 # binds 127.0.0.1; refuses to start without a tokenAuthentication by a header keeps the secret out of URLs, browser history and proxy logs:
Authorization: Bearer $FINEYE_MCP_TOKENIf your client has no header field, the token also works as URL path (https://<host>/<token>). Wrong credential always gets 404, never 403 — a probe must not know that something lives there.
The listener is plain HTTP on localhost by design: put a TLS terminator in front of it — Cloudflare Tunnel, Tailscale Funnel, reverse proxy, whatever you already use — and point the client to https://<your-host>/mcp.
Продумате перед этим. It exposes live endpoint to your real finances on Internet under one token. For anything that runs unattended, prefer
FINEYE_READONLY=1; keep token no screenshots; rotate it by rewriting file and restarting server.
CLI
Same operations for people and shell scripts.
fineye whoami
fineye accounts [--archived] [--json]
fineye networth [--history] [--json]
fineye transactions [--from <date> --to <date> --account <acc> --category <cat> --search <q>] [--json]
fineye analytics [--month YYYY-MM] [--all] [--leaf] [--by-tag] [--by-merchant --top <n>] [--json]
fineye budget [--month YYYY-MM] | fineye budget history [--limit <n>]
fineye export [--format csv|json] [--from --to] [--out <file>]
fineye add expense <amount> --account <acc> [--category --desc --date --fee]
fineye add transfer <amount> --from <acc> --to <acc> [--to-amount <n>]
fineye tx edit <id> [--desc --category --date --hold]
fineye bulk recategorize <filters> --set-category <cat> [--apply]
fineye rule add --merchant "<exact description>" --mcc <code> --category <cat>Amounts are in account's own currency (decimal major units, e.g. 42.50). add transfer writes same magnitude to both legs — like app does; pass --to-amount if the destination got a different number — CLI never converts at its own rate.
fineye ui opens terminal dashboard: accounts and balances, net worth with 30-day mini-chart, selected transaction list, and spend by category chart.
For agents driving CLI, : fineye skill --installwrites agent skill to~/.claude/skills/use-fineye/SKILL.md`.
How it works
FinEye is a Capacitor app with Supabase backend. This client accesses the same PostgREST tables and RPCs as the app, authenticating as your own Google account over PKCE OAuth (email one-time password code as backup). Row-level security makes you see only your own rows.
The format is deliberate:
src/domain/* pure logic: valuation, analytics, transaction shapes, bulk selection
src/client.ts the only thing that talks HTTP — and where the allow-lists live
src/mcp/* the MCP surface: tools, resources, instructions, transports
src/commands/* the CLI surface over the same domain
src/skill/* data-model semantics, shared by the MCP instructions and the CLI skillBoth interfaces call the same domain functions, so any CLI and MCP server cannot disagree about transfer details or which rows are spending.
Several data facts the domain layer encodes, because getting them wrong produces confident for-assuredioned bad results: a transaction has no top-level amount (use movevements[].sum); each account has own currency, so raw sums can't be compared; a two-sided transaction is always a transfer between your own accounts; plan installments carry future legs flagged scheduled`, and analytics excludes them from what you actually spent.
Development
npm run typecheck && npm run lint && npm test && npm run build
npm run formatThe test suite launches the built binary and speaks real MCP over stdio — transport is effectively covered, not assumed.
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
- BankSyncOAuthio.banksync
Connect AI agents to bank accounts, transactions, balances, and investments.
Personal-finance workspace for AI agents: accounts, spending, budgets, goals, and investments.
Connects AI agents to live, verified financial data from 18,000+ institutions — ready to reason from
Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access and analyze MonarchMoney personal finance data through natural language queries. Provides comprehensive financial insights including account balances, transaction analysis, budget tracking, and spending patterns with enterprise-grade security.9MIT
- AlicenseBqualityDmaintenanceEnables AI agents to interact with your Lunch Money personal finance data, providing tools for managing transactions, categories, budgets, assets, and accounts.1517 npmISC
- AlicenseAqualityCmaintenanceEnables AI assistants to interact with YNAB budgets, performing read-only queries by default and optional write operations like creating transactions and managing categories through natural language.38146 npm30MIT
- AlicenseNot gradedqualityFmaintenanceProvides read-only access to Monarch Money financial data, enabling AI assistants to analyze transactions, budgets, and cashflow.4MIT