{"id":40376466,"url":"https://github.com/maximbilan/moneywiz-mcp","last_synced_at":"2026-01-20T11:35:46.597Z","repository":{"id":330989064,"uuid":"1120605621","full_name":"maximbilan/moneywiz-mcp","owner":"maximbilan","description":"An MCP (Model Context Protocol) server for accessing MoneyWiz database data","archived":false,"fork":false,"pushed_at":"2025-12-29T14:55:46.000Z","size":32,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-01T18:32:44.828Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maximbilan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-21T15:14:47.000Z","updated_at":"2025-12-29T14:55:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/maximbilan/moneywiz-mcp","commit_stats":null,"previous_names":["maximbilan/moneywiz-mcp"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/maximbilan/moneywiz-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2Fmoneywiz-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2Fmoneywiz-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2Fmoneywiz-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2Fmoneywiz-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maximbilan","download_url":"https://codeload.github.com/maximbilan/moneywiz-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2Fmoneywiz-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28602507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T10:46:13.255Z","status":"ssl_error","status_checked_at":"2026-01-20T10:42:51.865Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-20T11:35:46.059Z","updated_at":"2026-01-20T11:35:46.589Z","avatar_url":"https://github.com/maximbilan.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MoneyWiz MCP Server\n\nAn MCP (Model Context Protocol) server for accessing MoneyWiz database data. This server allows ChatGPT, Claude, and other MCP-compatible clients to query your MoneyWiz financial data, analyze spending and income trends, get savings recommendations, calculate net worth, and view comprehensive financial statistics.\n\n## Features\n\n- **List Accounts**: Get all accounts with balances and currencies\n- **Get Account Balance**: Retrieve balance for a specific account\n- **List Transactions**: View recent transactions, optionally filtered by account\n- **List Categories**: Get all expense/income categories\n- **Analyze Spending Trends**: Analyze spending trends by category and time period (month/year)\n- **Analyze Income Trends**: Analyze income trends by category and time period (month/year)\n- **Get Savings Recommendations**: Get personalized savings recommendations based on income vs spending\n- **Calculate Net Worth**: Calculate total net worth from all accounts (assets minus liabilities)\n- **Get Financial Stats**: Get comprehensive financial statistics from all historical data\n\n## Installation\n\n1. Clone this repository:\n```bash\ngit clone \u003crepository-url\u003e\ncd moneywiz-mcp\n```\n\n2. Build the server:\n```bash\ngo build -o moneywiz-mcp ./cmd/main.go\n```\n\n3. Export your MoneyWiz database:\n   - Open the MoneyWiz app\n   - Go to **Settings** → **Database \u0026 Export** → **Export database file**\n   - This will create a folder (e.g., `iMoneyWiz-Data-Backup-2025_12_21-17_23`) containing the SQLite database file (`ipadMoneyWiz.sqlite`)\n\n## Usage\n\n### Running the Server\n\nThe server can be run with the database path specified via command-line argument:\n\n```bash\n./moneywiz-mcp -db /path/to/iMoneyWiz-Data-Backup-2025_12_21-17_23\n```\n\nOr if the database folder is in the current directory:\n\n```bash\n./moneywiz-mcp -db ./iMoneyWiz-Data-Backup-2025_12_21-17_23\n```\n\nThe server will automatically look for `ipadMoneyWiz.sqlite` in the specified folder.\n\n**Note**: You need to export the database from MoneyWiz first (Settings → Database \u0026 Export → Export database file) to get the SQLite file.\n\n### MCP Client Configuration\n\nTo use this server with an MCP client (like Claude Desktop), add it to your MCP configuration file.\n\n#### Manual Configuration\n\n**Claude Desktop Configuration**\n\n```json\n{\n  \"mcpServers\": {\n    \"moneywiz\": {\n      \"command\": \"moneywiz-mcp/moneywiz-mcp\",\n      \"args\": [\"-db\", \"moneywiz-mcp/iMoneyWiz-Data-Backup-2025_12_21-17_23\"]\n    }\n  }\n}\n```\n\n**Important**: Replace the paths with your actual absolute paths.\n\nAfter updating the configuration:\n1. Quit Claude Desktop completely (⌘Q)\n2. Reopen Claude Desktop\n3. The MCP server should connect automatically\n\n## Available Tools\n\n### `list_accounts`\n\nList all accounts in MoneyWiz with their balances and currencies.\n\n**Parameters**: None\n\n**Example**:\n```json\n{\n  \"name\": \"list_accounts\",\n  \"arguments\": {}\n}\n```\n\n### `get_account_balance`\n\nGet the balance for a specific account by ID.\n\n**Parameters**:\n- `account_id` (integer, required): The ID of the account\n\n**Example**:\n```json\n{\n  \"name\": \"get_account_balance\",\n  \"arguments\": {\n    \"account_id\": 249\n  }\n}\n```\n\n### `list_transactions`\n\nList recent transactions, optionally filtered by account ID.\n\n**Parameters**:\n- `account_id` (integer, optional): Account ID to filter transactions. If not provided, returns all transactions\n- `limit` (integer, optional): Maximum number of transactions to return (default: 50)\n\n**Example**:\n```json\n{\n  \"name\": \"list_transactions\",\n  \"arguments\": {\n    \"account_id\": 249,\n    \"limit\": 20\n  }\n}\n```\n\n### `list_categories`\n\nList all categories in MoneyWiz.\n\n**Parameters**: None\n\n**Example**:\n```json\n{\n  \"name\": \"list_categories\",\n  \"arguments\": {}\n}\n```\n\n### `analyze_spending_trends`\n\nAnalyze spending trends by category and time period. Groups spending by month or year and provides category breakdowns.\n\n**Parameters**:\n- `group_by` (string, optional): Group by `\"month\"` or `\"year\"` (default: `\"month\"`)\n- `months` (integer, optional): Number of months to analyze (default: 6)\n\n**Example**:\n```json\n{\n  \"name\": \"analyze_spending_trends\",\n  \"arguments\": {\n    \"group_by\": \"month\",\n    \"months\": 6\n  }\n}\n```\n\n**Returns**: Array of spending trends with:\n- `period`: Time period (YYYY-MM or YYYY)\n- `total_spending`: Total spending for the period\n- `transaction_count`: Number of transactions\n- `by_category`: Map of category names to spending amounts\n\n### `analyze_income_trends`\n\nAnalyze income trends by category and time period. Groups income by month or year and provides category breakdowns.\n\n**Parameters**:\n- `group_by` (string, optional): Group by `\"month\"` or `\"year\"` (default: `\"month\"`)\n- `months` (integer, optional): Number of months to analyze (default: 6)\n\n**Example**:\n```json\n{\n  \"name\": \"analyze_income_trends\",\n  \"arguments\": {\n    \"group_by\": \"year\",\n    \"months\": 12\n  }\n}\n```\n\n**Returns**: Array of income trends with:\n- `period`: Time period (YYYY-MM or YYYY)\n- `total_income`: Total income for the period\n- `transaction_count`: Number of transactions\n- `by_category`: Map of category names to income amounts\n\n### `get_savings_recommendations`\n\nAnalyze income vs spending and get personalized savings recommendations. Provides actionable advice based on your financial patterns.\n\n**Parameters**:\n- `months` (integer, optional): Number of months to analyze (default: 6)\n\n**Example**:\n```json\n{\n  \"name\": \"get_savings_recommendations\",\n  \"arguments\": {\n    \"months\": 6\n  }\n}\n```\n\n**Returns**: Savings analysis with:\n- `period`: Analysis period description\n- `total_income`: Total income for the period\n- `total_spending`: Total spending for the period\n- `net_savings`: Net savings (income - spending)\n- `savings_rate`: Savings rate as percentage\n- `average_monthly_income`: Average monthly income\n- `average_monthly_spending`: Average monthly spending\n- `top_spending_categories`: Top 5 spending categories with percentages\n- `recommendations`: Array of recommendations with:\n  - `type`: `\"warning\"`, `\"suggestion\"`, or `\"positive\"`\n  - `title`: Recommendation title\n  - `description`: Detailed recommendation\n  - `priority`: `\"high\"`, `\"medium\"`, or `\"low\"`\n  - `impact`: Potential savings amount\n\n### `calculate_net_worth`\n\nCalculate total net worth from all accounts. Sums all account balances (assets minus liabilities).\n\n**Parameters**: None\n\n**Example**:\n```json\n{\n  \"name\": \"calculate_net_worth\",\n  \"arguments\": {}\n}\n```\n\n**Returns**: Net worth calculation with:\n- `total_assets`: Sum of all positive account balances\n- `total_liabilities`: Sum of all negative account balances (as positive values)\n- `net_worth`: Total assets minus total liabilities\n- `account_count`: Number of accounts included\n- `by_currency`: Net worth broken down by currency\n- `accounts`: Array of all accounts with balances\n\n### `get_financial_stats`\n\nGet comprehensive financial statistics from all historical data. Provides overview metrics and yearly breakdowns.\n\n**Parameters**: None\n\n**Example**:\n```json\n{\n  \"name\": \"get_financial_stats\",\n  \"arguments\": {}\n}\n```\n\n**Returns**: Financial statistics with:\n- `total_transactions`: Total number of transactions (all time)\n- `income_transactions`: Number of income transactions\n- `expense_transactions`: Number of expense transactions\n- `total_income`: Total income (all time)\n- `total_spending`: Total spending (all time)\n- `net_savings`: Net savings (all time)\n- `average_transaction`: Average transaction amount\n- `largest_income`: Largest single income transaction\n- `largest_expense`: Largest single expense transaction\n- `account_count`: Total number of accounts\n- `category_count`: Total number of categories\n- `first_transaction_date`: Date of first transaction\n- `last_transaction_date`: Date of last transaction\n- `date_range`: Formatted date range string\n- `by_year`: Map of yearly statistics with:\n  - `year`: Year (YYYY)\n  - `income`: Total income for the year\n  - `spending`: Total spending for the year\n  - `net_savings`: Net savings for the year\n  - `transaction_count`: Number of transactions for the year\n\n## Database Structure\n\nThis server accesses the MoneyWiz SQLite database (`ipadMoneyWiz.sqlite`). The database uses Core Data's entity-attribute-value model, where most objects are stored in the `ZSYNCOBJECT` table with different entity types (`Z_ENT`):\n- Entity 10, 11, 12, 13, 15, 16: Accounts (various types)\n- Entity 37, 45, 46, 47: Regular transactions\n- Entity 43: Transfer transactions\n- Entity 19: Categories\n\n### Important Notes\n\n- **Dates**: Transaction dates are stored as Core Data timestamps (seconds since 2001-01-01 UTC) and are automatically converted to ISO format\n- **Balances**: Account balances are stored in `ZBALLANCE` (note the double L). If balance is 0 or NULL, it's calculated from opening balance + transactions\n- **Transactions**: Income transactions have positive `ZAMOUNT1`, expense transactions have negative `ZAMOUNT1`\n- **Categories**: Categories are linked to transactions via the `ZCATEGORYASSIGMENT` table\n\n## Development\n\n### Project Structure\n\n```\nmoneywiz-mcp/\n├── cmd/\n│   └── main.go          # Main entry point\n├── internal/\n│   ├── database/        # Database access layer\n│   │   └── database.go\n│   └── server/          # MCP server implementation\n│       └── server.go\n├── go.mod\n└── README.md\n```\n\n### Building\n\n```bash\ngo build -o moneywiz-mcp ./cmd/main.go\n```\n\n### Dependencies\n\n- `github.com/mark3labs/mcp-go` - MCP server library\n- `github.com/mattn/go-sqlite3` - SQLite driver\n\n## License\n\nSee [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximbilan%2Fmoneywiz-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaximbilan%2Fmoneywiz-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximbilan%2Fmoneywiz-mcp/lists"}