mf-dashboard  by hiroppy

Automate and visualize personal finance data

Created 2 months ago
252 stars

Top 99.6% on SourcePulse

GitHubView on GitHub
Project Summary

This project automates data retrieval and visualization for MoneyForward Me, targeting users seeking enhanced financial asset tracking. It provides automated updates, Slack notifications, AI-driven data querying via MCP, and advanced simulation tools, offering a comprehensive dashboard beyond the standard MoneyForward Me interface.

How It Works

The system leverages GitHub Actions for scheduled execution, initiating a Playwright-based crawler to scrape data from MoneyForward Me. Authentication relies on One-Time Passwords (OTP) obtained from a 1Password Service Account. Scraped data is stored in a local SQLite database, which is then committed to the repository. This commit triggers a build and deployment pipeline on Cloudflare Pages, serving a Next.js static site. An integrated MCP server allows natural language querying of financial data using models like ChatGPT or Claude Desktop.

Quick Start & Requirements

Installation involves cloning the repository and installing dependencies via pnpm. For demo data, run pnpm dev:demo. To use real account data, execute pnpm db:dev followed by pnpm dev. Key prerequisites include Playwright and a 1Password Service Account for OTP retrieval. Deployment is recommended via Cloudflare Pages.

Highlighted Details

  • AI Integration: Features an embedded MCP (Model Context Protocol) server enabling natural language queries to financial and asset data via ChatGPT or Claude Desktop.
  • Advanced Simulation: Includes a compound interest simulator utilizing the Monte Carlo method for precise planning of savings and withdrawals, supporting pension scenarios.
  • Customizable Automation: Offers hooks for executing custom scripts during scraping, allowing for automated data categorization or other specific processing tasks using the Playwright Page object.
  • Automated Updates & Notifications: Configurable GitHub Actions cron jobs automate daily financial institution updates (defaulting to 6:50 JST and 15:20 JST) and post daily differences to Slack.

Maintenance & Community

The provided README does not contain specific details regarding notable contributors, sponsorships, community channels (like Discord/Slack), or a public roadmap.

Licensing & Compatibility

The README does not explicitly state the project's license. Therefore, compatibility for commercial use or closed-source linking cannot be determined from the provided information.

Limitations & Caveats

The project's deployment architecture relies on Cloudflare Pages, stemming from GitHub Pages' paid-only status for private repositories. Setup requires configuring Playwright and a 1Password Service Account for authentication, which may present an adoption hurdle. The current architecture commits the SQLite database file to the repository on each update, potentially increasing repository size over time, although an option to avoid this is considered for future implementation.

Health Check
Last Commit

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
32
Issues (30d)
1
Star History
17 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.