{"id":"robcerda-monarch-mcp-server","name":"monarch-mcp-server","homepage":null,"repo_url":"https://github.com/robcerda/monarch-mcp-server","category":"api-gateway","subcategories":[],"tags":["mcp-server","python","finance","personal-finance","mfa","claude-desktop","claude-code"],"what_it_does":"monarch-mcp-server is a Python MCP server that connects an MCP-capable client (e.g., Claude Desktop/Claude Code) to the Monarch Money personal finance platform, exposing tools for accounts, transactions, budgets, cashflow, and investment holdings. It relies on an authentication setup script and persists an authenticated session locally for use by the MCP server.","use_cases":["Retrieving linked Monarch Money accounts and balances","Fetching and filtering transaction history (date ranges, accounts, pagination)","Creating or updating transactions in user accounts","Reading budgets and spending status","Producing income/expense/cashflow analysis for date ranges","Viewing investment holdings in investment accounts","Refreshing account data from the upstream provider"],"not_for":["Teams needing a managed hosted service with official SLAs","Use cases requiring fine-grained, server-enforced OAuth scopes or delegated access","Organizations requiring strict compliance artifacts (e.g., SOC2 reports) that are not provided here","Environments that cannot store or persist any authentication session artifacts locally"],"best_when":"You want an MCP tool interface to Monarch Money data in a local/dev setup, and you can run a Python process that performs one-time login with MFA and keeps a persisted session on disk.","avoid_when":"You need a public, internet-reachable API with centralized governance; or you cannot accept local session persistence and the operational risk of handling finance data in a local environment.","alternatives":["Use the Monarch Money API directly (via a suitable library) without an MCP layer","Other MCP servers or community connectors for personal finance platforms","Build a custom MCP server that wraps a finance API you already integrate with"],"af_score":57.0,"security_score":52.5,"reliability_score":30.0,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:45:11.355377+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["Local one-time login via login_setup.py (email/password) plus optional MFA (2FA code prompt)","Persistent local session loaded by the MCP server"],"oauth":false,"scopes":false,"notes":"Authentication is performed outside Claude (terminal-based) using a persistent session file (.mm/mm_session.pickle). The README states credentials are not passed through Claude."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"No pricing information for the MCP server itself; costs would primarily be the underlying Monarch Money service (and your local compute)."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":57.0,"security_score":52.5,"reliability_score":30.0,"mcp_server_quality":78.0,"documentation_accuracy":70.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":55.0,"rate_limit_clarity":15.0,"tls_enforcement":60.0,"auth_strength":65.0,"scope_granularity":20.0,"dependency_hygiene":55.0,"secret_handling":60.0,"security_notes":"README claims credentials never pass through Claude and that the session file is stored securely and encrypted, persisted to .mm/mm_session.pickle. However, there is no explicit statement about TLS requirements for upstream calls or about secret redaction/logging behavior beyond the high-level claim. No fine-grained authorization scopes are described; tool access appears tied to the local session.","uptime_documented":0.0,"version_stability":35.0,"breaking_changes_history":40.0,"error_recovery":45.0,"idempotency_support":"false","idempotency_notes":"No explicit idempotency guarantees are documented. Write operations include create_transaction and update_transaction, which may not be idempotent from the agent’s perspective.","pagination_style":"offset/limit","retry_guidance_documented":false,"known_agent_gotchas":["Session/authentication issues require running login_setup.py again; otherwise tools may return errors like 'No valid session found' / 'Authentication needed'.","Transaction filtering requires correct date format (YYYY-MM-DD).","Invalid account_id values will produce errors; use get_accounts to discover valid IDs.","Write operations (create/update transaction) may be non-idempotent unless the upstream API provides idempotency (not described here)."]}}