moneymoney-mcp
Chat with your MoneyMoney data. This is a read-only MCP server for MoneyMoney (the macOS banking app) that lets any AI assistant answer questions like:
- "How much did I spend on groceries last quarter?"
- "What are my current balances?"
- "Which subscriptions do I pay for?"
- "September vs August — where did the money go?"
No installation needed: it runs on the Python macOS already ships with, and speaks to MoneyMoney through its official AppleScript API.
Unofficial community project, not affiliated with MoneyMoney (MRH applications GmbH). Full reference: DOCUMENTATION.md.
Requirements
- macOS with MoneyMoney installed, running, database unlocked
- Any MCP-capable AI client (Claude Desktop, Codex, Cursor, …)
Install (2 minutes)
Option A — one line, no clone (recommended). Needs
uv (brew install uv):
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{ "mcpServers": { "moneymoney": {
"command": "uvx",
"args": ["moneymoney-mcp"] } } }
Codex (~/.codex/config.toml):
[mcp_servers.moneymoney]
command = "uvx"
args = ["moneymoney-mcp"]
Any other client: same idea — a stdio server with command uvx and args
["moneymoney-mcp"]. (pipx run moneymoney-mcp or pip install moneymoney-mcp + command moneymoney-mcp work too.)
Option B — clone, zero dependencies. No uv, no pip, stock macOS
Python is enough:
git clone https://github.com/sanarena/moneymoney-mcp
then use command /usr/bin/python3 with args
["/absolute/path/to/moneymoney-mcp/src/moneymoney_mcp/server.py"].
Then restart the AI client. If MoneyMoney's database is locked you'll get
a clear database is locked message — unlock the app and ask again.
What the AI can do
14 read-only tools: accounts, balances, transactions (search/filter), categories, portfolio, counterparties, subscriptions, period comparison, category totals, cash-flow timeline, budgets, and bank statements. See the full tool reference.
Prefer no AI client? Copy extensions/AIChatExport.lua into MoneyMoney's
Extensions folder for one-click Markdown export to paste into any chatbot.
(Details)
Privacy
- Local only; nothing leaves your Mac except what you send your AI provider
- Read-only by design — it cannot move, change, or create anything
- Optional IBAN masking (
mask_ids, orMONEYMONEY_MASK_IDS=1); passmask_ids: falseto reveal again - Your MoneyMoney password is never touched
Details + the prompt-injection warning: DOCUMENTATION.md.
Troubleshooting
| Symptom | Fix |
|---|---|
MoneyMoney database is locked |
Open MoneyMoney, unlock, re-ask |
| Tools missing in client | Restart the AI client after config change |
File not found at startup |
Check the server.py path is absolute |
More: DOCUMENTATION.md.
Development
python3 -m venv .venv
.venv/bin/pip install -e ".[test]"
.venv/bin/python -m pytest -q # 104 tests, no MoneyMoney needed
lua tests/lua_harness.lua extensions/AIChatExport.lua
License
MIT — see LICENSE. Changelog: CHANGELOG.md.
Metadata
Release files for moneymoney-mcp 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| moneymoney_mcp-0.4.1.tar.gz | 41.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| moneymoney_mcp-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 69.2 kB
Release files / moneymoney_mcp-0.4.1.tar.gz
| Download URL | moneymoney_mcp-0.4.1.tar.gz |
|---|---|
| Size | 41.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a55f908fc79ecea900c6d8c8593f2895d1ca012d66e292ede70f687ccfda14b
|
|
BLAKE2b-256 checksum How to use checksums |
ed2f9a90cbdeca8822f17a88ef4cae6d011986bff4073707516c2e844fb263c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / moneymoney_mcp-0.4.1-py3-none-any.whl
| Download URL | moneymoney_mcp-0.4.1-py3-none-any.whl |
|---|---|
| Size | 27.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
af0057cf9347f968b810e01b1630d24639878d5a8cc28bb8e6c8eb006da6fc78
|
|
BLAKE2b-256 checksum How to use checksums |
7b6ef30591b1f1b96693607fd0f0615984e2549cadade5b9f7b4f7fb5c54997c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|