fineye-mcp
fineye-mcp — AI 에이전트를 위한 당신의 FinEye 재무
비공식 & 독립적. FinEye는 FinEye 앱의 API를 위한 개인용 커니티 클라인트입니다. FinEye와 제휴, 승인 또는 지원 관계가 없습니다. 당신의 로그인으로 당신의 데이터에만 접니다. 보증 없음 — 사용에 대한 책임은 당신에게 있음. 내장된 Supabase anon 키는 앱의 공개 키-요? (FinEye 클라인트에 포함된 키)이지, 시크릿트가 아님입니다.
MCP 서버 — AI 에이전트가 당신의 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 PATHClaude 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": {},
},
},
}Related MCP server: Lunch Money MCP Server
도구들
도구 20개. 그 중 10만 읽을 시킵니다.
도구 | 무엇을 하나요 | |
| 서버가 어떤 계정으로 로그인되어 있는지, 그리고 활성 워크스페이스 | |
| 잔액; 목표금액(저축 목표)은 | |
| 기본 통화 기준 순자산, 계정별 내역, 선택적으로 일별 이력 | |
| 파생 | |
| 수입/지출/순액 + 카테고리, 하위 카테고리, 태그 또는 상인별 지출 내역 | |
| 기간 예산 대비 실제 지출 — 과거 기간은 | |
| 계층 구조 — 이릉을 id로 바꾸는 데 사용 | |
| 앱 내받은 편함 — FinEye가 주제정를 공지하는 곳 | |
| 트랜잭션을 CSV 또는 JSON으 인라인 내보내기 | |
| 작업 안내 (아래 참조) | |
| 트랜잭션 생성; 편집 / 태그 / 분할 / 환불 / 복사 / 반복(정기) 설 | |
| 생성 및 편집; 카테고리는 삭(보관) 보며 되릴 수 있음) | |
| 기간의 총 예산 설 | |
| 자동 분류 규— 미래 트랜잭션에만 적용됩니다 | |
| 영구 삭제; 일괄 재분류 / 태테 / 삭제 |
그 외에는 Any tool that takes eee, etc.
어떤 도구에 account, category, tag 또는 parent가 오는 곳에서는 이릉 또는 id가 동작합니다. For id named id는 아무조세도 본래의 id입니다.
모드와 게이트
환경 변구는 서버가 어디까까지 할 수 있는지를 결해줍니다:
환경 변수 | 효고 | |
(없음) | 읽기 + 쓰. 삭제들 게 이지 스ærrisk — no — 삭제는 거부됩니다. | |
| 삭제물 가능해집니다 — 그리고 각 호출에서 | |
| 쓰기 및 파괴적 도구는 전ห혀 등록되지 없습니다; 읽기 도구 딱 12가지 남습니다. |
FINEYE_DELETE는 서버가 등록될 때 젊 번 설되고 세션 내각 내 유지됩니다 — 능력(capability)이지 확(confirming)이 아닙니다. 그래서 이중 파적 호출에서 자또&E는 cond 진 — 없으면 "미리보기"만 반환하고 아무것도 하지 않습니다. fineye_bver-DList is a run until apply: true. For deletion need apply and confirm.
이 MCP 레이어 있어 라인에서는 "cmd" 등신가이 link: WRITABLE_TABLES, PATCHABLE_TABLES, DELETABLE_TABLES 파일 src/client.ts. Other tables or HTTP verbs are all rejected. Deletes accept id=eq.<id> as the one and only filter: no "mass delete" path exists — and all do the deletes to /tmp JSON backup file. — Accounts and workspace settings can never be deleted. 무조예약 회채들은 단 "나" 삭쪽 제외요청에서 제외됩니다.
에러에는 기계가 reading가능한 code — auth, foerbidden, not_found, gate, invalid, network, api)가 포전됩니다. 에이전트는 메시부 텐를 매청하지 않고 "그런 여" 않다 — "the network"를 구분할 수 있습니다. CLI는 이를 실별 출구 상태 코드(exit status)로 접니다: 3, 4, 5, 4, 2, 6, 1.
동시성(Concurrency): 쓰기는 JSON 필드를 병합하는 것이 아니라 완대체 하므로, 폰 안에서 같은 레코드를 동시에 편집하지 마세요. as — 마지막 writer가지이 이깁니다.
플레이북
서버 instructions 는연결마다 보내지므 로 _lineskeep it short. Depth of the code? — rather, the deeper guidance information — real traps where you get incorrect numbers — is loaded only if task requires:
monthly-review— "monthly 리프 sort 정확한 — correct numbers pop out"print-the-safety— dry-run, 확인 → count, then apply —sy degrade*e misctest-without-` withविंग...
Let me in Korean:
monthly-reminder — implementing sufficient mCP sequence to correct monthly review
safe-bver-changes — "d라이-런 실행 → 여러 횟 확인 → 그 다에 인하십시오.test-without-not-polluting— "만 사용" create→ act → done → delete, plus 되릴 수 없음 in 목록.find-and-fix-categories` — in future, and bulk fixes the past history.
플레이북은 MCP 소음(fineye:///playbooks/<id>)와 fineye_playbook tool-both로 제공됩니다 — 클라이언트많이 리소스 지원 조율 때문입니다. The data model semantics are shared from CLI skill source (the src/skill/semantics.ts), so they cannot diverge from one another.
Remote access (HTTP)
A client that cannot spawn a host — say, a hosted chat UI — — the server can also speak Streamble HTTP:
export FINEYE_MCP_TOKEN=$(openssl rand -hex 24)
fineye mcp --http --port 8790 # binds 127.0.0.1; refuses to start without a tokenAuthorize with a given header that keeps the secret out of URL, web history, and proxy logs:
Authorization: Bearer $FINEYE_MCP_TOKENIf your client can't put custom headers, the token is also a path URL (https://<host>/<token>). Wrong creדential gets a 404, never a 403 — to not reveal that there is an endpoint.
The listener will be plain **HTTP on local", deliberately. Put a TLS front — a Cloudflare túnnel, Tailscale Funnel, a reverse proxy on an VPS, old thing you already run — and change client to https:///mcp.
Be careful before you do this. It is placing your actual financial data on the internet with only a token. Prefer unattended all times
FINEYE_READONLY=1, don't show the token in screenshots, and rotate tor by changing the file and restarting the server.
CLI
Same operation — for humans 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 the original currency (decimal major unit, e.g., 42.50). add transfer writes the same size to both sides, same as the app. If the destination actually got some other amount, pass --to-amount — the CLI does not pay at its own rate.
fineye ui opens a terminal dashboard: accounts with balance, 30-day net-worth sparkline, chosen account transactions, and spend–by–category graph.
agents driving the CLI instead of the given MCP server via fineye skill --install, which writes an agent skill to ~/.claude/skills/gera-SKILL.md.
Here’s how it works
FinEye app is a Capacitor/Ractive on the Supabase. This client talks to the same PostgREST table and RPC as the app, over PKCE OAuth with your Google account (some email OTP fallback). Row Level Security means you see only your own records from R.
Layers are determined — intentionally:
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 surfaces call the same "domain functions" **— so the CLI and the MCP server are unable to have two differences of what a transfer is and what counts as "spend."
And important data facts the domain layer encodes (wrong assumptions — customer confidently drawing bad numbers — 🙂:
There's no top-level amount on a transaction (sum
movements[].sum, negative for expenses).Each account has its own currency — hence direct sums are not comparable.
A two-legged move is always a transfer between accounts that belong to you.
Installsion plan has future legs like
scheduledflag; analytic omits just those from actual spend.
개발
npm run typecheck && npm run lint && npm test && npm run build
npm run formatthe test suite starts the built binary and kisses the non-compatten real leverage separator over stdio, so real the fileanything misconnecting is a test not mere assumption.
License
MIT — 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