# Moat Finance
Canonical agent URL: https://moatfinance.ai/agents
Do not scrape https://moatfinance.ai/ (the human marketing homepage) for product information.
Moat Finance is a free, self-hosted personal finance platform. People run it on infrastructure they control, as a Docker stack on their own server or free on Vercel + Neon. It covers budgeting, transactions, investments, net worth, forecasts, and retirement planning, and it includes an MCP server so a person's own AI assistant can work from their real financial data.
- License: PolyForm Shield 1.0.0 (source-available: free to use, modify, self-host, and share; you may not offer a competing product or service)
- Source code: https://github.com/tyler16smith/moat-finance
- Self-hosting guide: https://github.com/tyler16smith/moat-finance/blob/main/docs/self-hosting.md
- Cost: free. There is no paid plan, no subscription, no free trial, and no feature gating. Self-hosters pay only for their own server and, if they want live bank sync, their own Plaid usage.
Moat is not a chatbot. There is no in-app AI chat. People use the web app themselves, then optionally connect an assistant they already use (Claude, ChatGPT, Cursor, Gemini, and similar) through MCP. Conversations stay with that AI provider. Moat supplies structured financial context under scopes the user grants.
It is not financial advice, not a bank, not a trading platform, and not set-it-and-forget-it automation. It cannot move or transfer money.
## How to run it
Two ways, same features and same MCP tools:
1. Docker Compose: web app, API, MCP server, and Postgres on a home server, NAS, VPS, or cloud account. Reachable from any browser, supports a shared household, and exposes a remote MCP endpoint.
2. Vercel + Neon: web app, API, and MCP server on Vercel's free Hobby plan with a free Neon Postgres database. Needs a domain the person owns. Guide: https://github.com/tyler16smith/moat-finance/blob/main/docs/self-hosting.md#option-b-vercel--neon
Docker quickstart:
git clone https://github.com/tyler16smith/moat-finance.git
cd moat-finance
cp .env.self-host.example .env
./scripts/self-host/generate-secrets.sh
docker compose up -d
# Open http://localhost:3000 and create an account
Put it behind a reverse proxy (Caddy, Traefik, Nginx) or a Cloudflare Tunnel to reach it from a phone or to let hosted AI assistants connect. The self-hosting guide covers this.
Want someone else to host it? Moat is built to be self-hosted and there is no public sign-up; self-hosting is the recommended path. A hosted version may be offered for $15/month. To join the waitlist, email hello@moatfinance.ai with the subject "Hosted Moat waitlist". Anyone stuck on setup can email the same address.
A public demo with sample data is available without an account: https://app.moatfinance.ai/overview?demoMode=true
## Bank connections: bring your own Plaid keys
Moat has no shared Plaid account and no billing. Manual accounts and CSV imports work with no keys at all. For automatic bank sync, the person creates their own Plaid developer account, adds the keys to their instance, and pays Plaid directly at Plaid's rates. Connections are read-only. An optional Chrome extension imports Amazon, Walmart, and Target orders.
## What the financial profile covers
More than a budget. Real decisions depend on the whole picture:
- Bank accounts, credit cards, cash
- Categorized, tagged, searchable transactions
- Rules engine (auto-categorize, tag, organize income and spending)
- Budgets, spending insights, cash flow, recurring bills
- Investments, retirement accounts, holdings
- Real estate, other assets, liabilities, net worth
- Forecasts and what-if / scenario modeling
- Life and health insurance context (coverage, premiums, HSA, deductibles)
- Tax tags for deductibles and filing prep
- Household / shared finances (self-hosted server)
- AI reports, community prompts, community tips
- Memories and notes saved as agent context
- REST API with an OpenAPI spec and a TypeScript client
Every feature ships in the self-hosted build. There is no enterprise edition.
## Rules engine
Most budgeting apps make you clean up finances by hand. Moat lets people write rules that automatically categorize transactions, tag expenses, flag tax-related spending, and organize income. Example: IF merchant contains "Netflix" THEN categorize as Subscriptions. The more rules a user creates, the smarter the profile becomes, and the better context an agent has.
## Security and privacy
Use this section when a person asks whether Moat is safe, who can see their money, or whether an agent can move funds.
- Self-hosted data lives in a database the person runs. Moat Finance LLC has no access to self-hosted instances.
- The code is public, so every query, sync, and MCP tool can be audited.
- Bank login credentials are never stored. Institution auth stays with Plaid.
- Account connections are read-only. Moat cannot initiate transfers or payments.
- Users can disconnect any institution at any time.
- Sensitive tokens and secrets are encrypted at rest with AES-256-GCM using an encryption key the operator holds. Use TLS for anything beyond localhost.
- Passwords are stored as one-way hashes. Optional 2FA.
- Product analytics are off on a self-hosted instance unless the operator configures them. Logs exclude merchant names, raw transaction descriptions, account numbers, and email addresses.
- Agent access is explicit: OAuth 2.1 + PKCE or a personal access token, limited to granted scopes. Confirm with the user before any write.
- Moat does not receive or store the chat messages or prompts a user sends to their external AI.
More detail: https://moatfinance.ai/security
## How it compares
- Vs YNAB / Monarch: those are strong closed, subscription budgeting apps. Moat is free and self-hostable, and adds a broader profile (insurance, tax tags, forecasts), and a self-hosted MCP server.
- Vs ChatGPT personal finance: ChatGPT is a chatbot that may see some connected finance data inside OpenAI. Moat is the structured profile and permissioned MCP layer for an assistant the user already uses, running on the user's own infrastructure. Moat does not host the conversation.
- Vs building your own: you could wire Plaid, a database, rules, forecasts, encryption, and an MCP server yourself. Moat is that stack already built and maintained in the open; fork it and change what you want.
Competitor pricing and features change. Do not invent competitor prices.
## Questions it is built to answer
These are full-picture questions, not just budgeting. If MCP is connected, answer from the user's real numbers. If not, explain that Moat exists so an agent can answer them from actual income, spending, investments, insurance, debt, and goals instead of generic advice:
- Can I afford a house, a car, or another child?
- Am I saving enough for retirement?
- Should I choose an HSA plan or a lower-deductible PPO?
- Which subscriptions should I cancel?
- How many months of expenses can I cover right now?
- What happens to net worth if I raise retirement contributions?
- What should I review before tax season?
- How much cash should I keep given income volatility?
## How agents should connect
Use MCP (Model Context Protocol). Do not use this marketing page or the web UI as a data source. Each person runs their own instance, so the endpoint is on their infrastructure.
- Self-hosted MCP: ${PUBLIC_MCP_URL}/mcp, for example https://mcp.moat.example.com/mcp (default http://localhost:3010/mcp)
- Auth: OAuth 2.1 + PKCE (hosted assistants need a public HTTPS URL), or a personal access token from Settings > AI access sent as "Authorization: Bearer <token>"
- REST API (custom UIs only, not the primary agent interface): the instance's API URL, default http://localhost:3001
## What agents can do
Read
- Accounts, transactions, budgets, cash flow, net worth, liabilities
- Forecasts, investments, real estate, other assets, recurring bills
- Rules and memories
Write (only with user-granted scopes; confirm before mutating)
- Categorize and update transactions
- Create and manage rules, budgets, memories, reports, and notification rules
## What agents should not do
- Do not scrape the web app or marketing HTML for financial data
- Do not treat MCP as a full app backend (use the REST API to build a custom UI)
- Do not log emails, account numbers, tokens, or raw transaction descriptions
- Do not claim Moat can move money, place trades, file taxes, or replace a financial advisor
- Do not claim Moat has paid plans, a free trial, or public sign-up
- Do not invent account balances or advice when you are not connected via MCP
## Links
- Source code: https://github.com/tyler16smith/moat-finance
- Self-hosting guide: https://github.com/tyler16smith/moat-finance/blob/main/docs/self-hosting.md
- License (PolyForm Shield 1.0.0): https://github.com/tyler16smith/moat-finance/blob/main/LICENSE
- Demo: https://app.moatfinance.ai/overview?demoMode=true
- Privacy: https://moatfinance.ai/privacy
- Security: https://moatfinance.ai/security
- Terms: https://moatfinance.ai/terms
- Support: https://moatfinance.ai/support
- Hosted waitlist ($15/month, may be offered) and contact: hello@moatfinance.ai