Skip to main content
Glama

MonarchMoney MCP Server

by keithah
MIT License
1
  • Apple
  • Linux
README.md•17.8 kB
# MonarchMoney MCP Server [![npm version](https://badge.fury.io/js/monarchmoney.svg)](https://badge.fury.io/js/monarchmoney) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![smithery badge](https://smithery.ai/badge/@keithah/monarchmoney-ts-mcp)](https://smithery.ai/server/@keithah/monarchmoney-ts-mcp) A powerful **Model Context Protocol (MCP) server** that provides AI assistants with seamless access to MonarchMoney personal finance data. This server dynamically discovers and exposes **ALL** available methods from the [MonarchMoney TypeScript SDK](https://github.com/keithah/monarchmoney-ts), enabling comprehensive financial data analysis through natural language queries. ## 🌟 **Key Features** ### šŸ”„ **Dynamic Method Discovery** - **Automatically discovers ALL functions** from the MonarchMoney TypeScript SDK - **70+ tools available** across accounts, transactions, budgets, categories, cashflow, recurring, institutions, and insights - **No hardcoded limitations** - if it's in the SDK, it's available as a tool - **Future-proof** - automatically includes new methods as the SDK evolves ### šŸš€ **Context-Optimized Performance** - **99% size reduction** with pre-aggregated summary tools - **Intelligent verbosity levels** (brief/summary/detailed) - **Smart natural language parsing** for efficient GraphQL queries - **Zero context overflow** - maintain long conversations ### šŸŽÆ **One-Click Installation** - **MCPB Bundle Format** (`.mcpb` files) for instant deployment - **Automated installation** with dependency management - **GitHub Releases** with ready-to-download bundles - **Zero configuration** for standard setups ### šŸ” **Enterprise-Grade Security** - **Local credential storage** with environment variables - **MFA/TOTP support** for two-factor authentication - **Session encryption** using AES-256 - **No data transmitted** to third parties ### šŸŽÆ **Claude Desktop Ready** - **Native MCP integration** with Claude Desktop - **Real-time data access** without API delays - **Natural language queries** for complex financial analysis - **Professional query examples** and documentation ## šŸ“¦ **Quick Install** ### Installing via Smithery To install monarchmoney-ts-mcp automatically via [Smithery](https://smithery.ai/server/@keithah/monarchmoney-ts-mcp): ```bash npx -y @smithery/cli install @keithah/monarchmoney-ts-mcp ``` ### Option 1: One-Click MCPB Bundle (Recommended) 1. **Download** the latest `.mcpb` file from [Releases](https://github.com/keithah/monarchmoney-ts-mcp/releases) 2. **Extract and install**: ```bash unzip monarchmoney-mcp-v1.0.0.mcpb -d monarchmoney-mcp cd monarchmoney-mcp node install.js ``` 3. **Configure credentials**: ```bash cp .env.example .env # Edit .env with your MonarchMoney credentials ``` ### Option 2: Manual Installation ```bash git clone https://github.com/keithah/monarchmoney-ts-mcp.git cd monarchmoney-ts-mcp npm install npm run build ``` ## āš™ļø **Claude Desktop Configuration** Add to your Claude Desktop config file: **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json` **Linux**: `~/.config/claude-desktop/claude_desktop_config.json` ```json { "mcpServers": { "monarchmoney": { "command": "node", "args": ["/full/path/to/monarchmoney-ts-mcp/dist/index.js"], "env": { "MONARCH_EMAIL": "your-email@example.com", "MONARCH_PASSWORD": "your-password", "MONARCH_MFA_SECRET": "your-mfa-secret-key" } } } } ``` ## šŸ› ļø **Available Tools** (70+ Operations) The MCP server **dynamically exposes ALL methods** from the MonarchMoney SDK with intelligent context optimization: ### šŸŽÆ **Context-Optimized Summary Tools** (Ultra-compact responses) - `insights_getQuickStats` - One-line financial overview ("šŸ’° $52,345 • ā¬‡ļø -$3,200 • šŸ“Š 14 accounts") - `spending_getByCategoryMonth` - Top spending categories summary - `accounts_getBalanceTrends` - Account balance trends summary - `transactions_smartQuery` - Natural language transaction search ("last 3 Amazon charges") - `cashflow_getSummaryLine` - Income vs expenses one-liner ### šŸ“Š **Account Management** (15+ tools) - `accounts_getAll` - All accounts with verbosity control (brief/detailed) - `accounts_getById` - Specific account details - `accounts_getBalanceHistory` - Balance trends over time - `accounts_getNetWorthHistory` - Net worth progression - `accounts_updateAccount` - Modify account settings - `accounts_createManualAccount` - Add manual accounts - `accounts_deleteAccount` - Remove accounts - `accounts_getAccountGroups` - Account groupings - `accounts_setAccountGroup` - Organize accounts - `accounts_getAccountSubtypes` - Account type details - `accounts_getHoldings` - Investment holdings - `accounts_getHoldingDetails` - Individual holding info - `accounts_refreshAccount` - Force account sync - `accounts_getCredentials` - Account connection status - `accounts_updateCredentials` - Fix connection issues ### šŸ’³ **Transaction Operations** (25+ tools) - `transactions_getTransactions` - Filtered transaction search - `transactions_getTransactionDetails` - Complete transaction info - `transactions_createTransaction` - Add new transactions - `transactions_updateTransaction` - Edit transactions - `transactions_deleteTransaction` - Remove transactions - `transactions_bulkUpdateTransactions` - Batch modifications - `transactions_getTransactionRules` - Automation rules - `transactions_createTransactionRule` - Set up auto-categorization - `transactions_updateTransactionRule` - Modify rules - `transactions_deleteTransactionRule` - Remove rules - `transactions_getTransactionSplits` - Split transaction details - `transactions_createTransactionSplit` - Split transactions - `transactions_updateTransactionSplit` - Modify splits - `transactions_deleteTransactionSplit` - Remove splits - `transactions_getTransactionTags` - Transaction tags - `transactions_addTransactionTag` - Tag transactions - `transactions_removeTransactionTag` - Remove tags - `transactions_getReceipts` - Transaction receipts - `transactions_uploadReceipt` - Add receipt images - `transactions_deleteReceipt` - Remove receipts - `transactions_categorizeTransaction` - Auto-categorize - `transactions_getTransactionsByAccount` - Account-specific transactions - `transactions_getTransactionsByCategory` - Category filtering - `transactions_getTransactionsByMerchant` - Merchant filtering - `transactions_searchTransactions` - Text search ### šŸ’° **Budget Management** (12+ tools) - `budgets_getBudgets` - All budget information - `budgets_createBudget` - Create new budgets - `budgets_updateBudget` - Modify existing budgets - `budgets_deleteBudget` - Remove budgets - `budgets_getBudgetSummary` - Budget vs actual performance - `budgets_getBudgetByCategory` - Category-specific budgets - `budgets_setBudgetAmount` - Update budget amounts - `budgets_getBudgetHistory` - Budget changes over time - `budgets_getBudgetVariance` - Over/under spending analysis - `budgets_rolloverBudget` - Budget period transitions - `budgets_getBudgetAlerts` - Budget notifications - `budgets_setBudgetAlert` - Configure budget warnings ### šŸ·ļø **Category Organization** (10+ tools) - `categories_getCategories` - All transaction categories - `categories_createCategory` - Add new categories - `categories_updateCategory` - Modify categories - `categories_deleteCategory` - Remove categories - `categories_getCategoryGroups` - Category hierarchies - `categories_setCategoryGroup` - Organize categories - `categories_getCategoryRules` - Auto-categorization rules - `categories_setCategoryIcon` - Visual customization - `categories_getCategorySpending` - Spending by category - `categories_mergCategories` - Combine categories ### šŸ’ø **Cashflow Analysis** (8+ tools) - `cashflow_getCashflowSummary` - Income vs expenses overview - `cashflow_getCashflowWidget` - Dashboard visualization data - `cashflow_getIncomeStreams` - All income sources - `cashflow_getExpenseStreams` - All expense categories - `cashflow_getCashflowByMonth` - Monthly cashflow trends - `cashflow_getCashflowByCategory` - Category breakdown - `cashflow_getAverageCashflow` - Historical averages - `cashflow_forecastCashflow` - Future projections ### šŸ”„ **Recurring Transactions** (7+ tools) - `recurring_getRecurringStreams` - All recurring items - `recurring_createRecurringStream` - Set up new recurring - `recurring_updateRecurringStream` - Modify recurring items - `recurring_deleteRecurringStream` - Remove recurring - `recurring_getRecurringByCategory` - Category-based recurring - `recurring_pauseRecurringStream` - Temporarily disable - `recurring_resumeRecurringStream` - Re-enable recurring ### šŸ¦ **Institution Management** (6+ tools) - `institutions_getInstitutions` - All connected banks - `institutions_getInstitutionAccounts` - Institution-specific accounts - `institutions_addInstitution` - Connect new banks - `institutions_updateInstitution` - Modify connections - `institutions_removeInstitution` - Disconnect banks - `institutions_refreshInstitution` - Force sync ### šŸ“ˆ **Advanced Insights** (8+ tools) - `insights_getNetWorthHistory` - Wealth tracking over time - `insights_getSpendingByCategory` - Detailed spending analysis - `insights_getIncomeVsExpenses` - Comprehensive income analysis - `insights_getSpendingTrends` - Spending pattern analysis - `insights_getIncomeTrends` - Income pattern analysis - `insights_getTopMerchants` - Most frequent vendors - `insights_getUnusualSpending` - Anomaly detection - `insights_getMonthlyComparison` - Month-over-month analysis ### šŸ‘¤ **User & Profile** - `get_me` - Current user information and preferences ## 🧠 **Smart Context Management** ### Verbosity Levels Control response detail level to optimize context usage: - **`brief`** - Essential info only (account names, balances) - **`summary`** - Key metrics with some detail - **`detailed`** - Complete information (default) ```typescript // Example: Get accounts with minimal context usage { "verbosity": "brief" } // Output: "šŸ’° Checking: $5,234 • Savings: $15,678 • Credit: -$1,234" ``` ### Natural Language Transaction Queries Intelligent parsing converts natural language to optimized GraphQL: - "**last 3 Amazon charges**" → `{ limit: 3, merchantContains: "amazon" }` - "**spending over $100 this month**" → `{ minAmount: 100, startDate: "2024-01-01" }` - "**top 5 restaurant expenses**" → `{ limit: 5, categoryContains: "restaurant", orderBy: "amount" }` ### Performance Metrics - **85% reduction** in standard responses through smart formatting - **99% reduction** with pre-aggregated summary tools - **Zero context overflow** - maintain conversations indefinitely - **Sub-100 character** responses for quick stats ## šŸ’¬ **Example Queries** Once configured with Claude Desktop, you can ask: **Ultra-Quick Queries** (uses summary tools): - "Give me a quick financial overview" → One-line summary - "Where did I spend the most this month?" → Top 5 categories - "How are my account balances trending?" → Trend summary **Smart Transaction Searches**: - "Show me my last 3 Amazon charges" - "Find all restaurant spending over $50 this month" - "What were my largest transactions last week?" - "Show me all Starbucks purchases this year" **Account Analysis**: - "What's my current net worth across all accounts?" - "Show me the balance history for my checking account" - "Which investment accounts have grown the most this year?" - "Get brief overview of all my accounts" **Transaction Insights**: - "Find all transactions over $500 from last month" - "Show me my restaurant spending trends over the past 6 months" - "What are my largest recurring expenses?" - "Categorize my uncategorized transactions" **Budget Management**: - "How am I performing against my monthly budget?" - "Which categories am I consistently overspending in?" - "Show me budget vs actual for each category this quarter" - "Set up a budget alert for dining expenses" **Financial Planning**: - "What's my average monthly cashflow?" - "Compare my spending patterns: this year vs last year" - "Show me my net worth growth over the past 2 years" - "Forecast my cashflow for next month" ## šŸ”§ **Development** ### Build and Test ```bash npm run build # Compile TypeScript npm test # Run tests npm run bundle # Create MCPB bundle npm start # Start MCP server ``` ### Project Structure ``` monarchmoney-ts-mcp/ ā”œā”€ā”€ src/ │ └── index.ts # Main MCP server with dynamic discovery ā”œā”€ā”€ scripts/ │ └── create-mcpb.js # MCPB bundle creation ā”œā”€ā”€ .github/workflows/ │ └── release.yml # Automated releases ā”œā”€ā”€ examples/ │ └── query-examples.md # Query examples ā”œā”€ā”€ bundle.json # MCP bundle metadata ā”œā”€ā”€ INSTALLATION.md # Detailed setup guide └── README.md # This file ``` ## šŸ—ļø **Architecture** ### Dynamic Method Discovery The MCP server uses **runtime reflection** to discover all available methods: ```typescript // Automatically discovers all API modules and methods const apiModules = [ { name: 'accounts', client: this.monarchClient.accounts }, { name: 'transactions', client: this.monarchClient.transactions }, // ... all modules ]; // Dynamically creates MCP tools for each method apiModules.forEach(({ name: moduleName, client }) => { const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(client)) .filter(name => typeof client[name] === 'function'); // Create tools for each method... }); ``` ### Smart Parameter Handling Automatically generates appropriate input schemas based on method names: ```typescript // Transaction methods get comprehensive filtering options if (methodName.includes('Transactions')) { return { properties: { limit: { type: 'number', description: 'Maximum results' }, startDate: { type: 'string', description: 'Start date (YYYY-MM-DD)' }, accountIds: { type: 'array', description: 'Filter by accounts' }, verbosity: { type: 'string', enum: ['brief', 'summary', 'detailed'] }, // ... more filters } }; } ``` ### Natural Language Query Processing Converts human language to efficient API calls: ```typescript // "last 3 Amazon charges" becomes: { limit: 3, merchantContains: "amazon", orderBy: "date", orderDirection: "desc" } // "spending over $100 this month" becomes: { minAmount: 100, startDate: "2024-01-01", endDate: "2024-01-31" } ``` ### Context Optimization Features **Response Formatting (85% reduction):** ```typescript // Before: Raw JSON (2000+ chars) { "accounts": [ { "id": "123", "displayName": "Chase Checking", "balance": { "amount": 5234.56, "currency": "USD" }, "accountType": { "name": "Checking" }, // ... 50+ more fields } ] } // After: Smart formatting (300 chars) "šŸ’° Accounts Summary: • Chase Checking: $5,234.56 • Wells Savings: $15,678.90 • AMEX Credit: -$1,234.00 Total Net Worth: $19,679.46" ``` **Pre-aggregated Tools (99% reduction):** ```typescript // Ultra-compact responses "šŸ’° $52,345 • ā¬‡ļø -$3,200 • šŸ“Š 14 accounts" "šŸ½ļø $450 • ⛽ $280 • šŸ›’ $380 (top 3 this month)" ``` ``` ## šŸš€ **Release Process** Releases are **fully automated** via GitHub Actions: 1. **Create a tag**: `git tag v1.0.0 && git push --tags` 2. **GitHub Action triggers** and: - Runs tests and builds the project - Creates MCPB bundle automatically - Publishes GitHub release with downloadable `.mcpb` file - Includes comprehensive release notes ## šŸ”’ **Security & Privacy** - **Local-only processing** - no data sent to external services - **Encrypted session storage** using industry-standard AES-256 - **Environment-based credential management** - **MFA support** for enhanced account security - **Open source** - fully auditable codebase ## šŸŒ **Contributing** 1. **Fork** the repository 2. **Create feature branch**: `git checkout -b feature/amazing-feature` 3. **Commit changes**: `git commit -m 'Add amazing feature'` 4. **Push to branch**: `git push origin feature/amazing-feature` 5. **Open Pull Request** ## šŸ“„ **License** This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details. ## šŸ™ **Acknowledgments** - **MonarchMoney TypeScript SDK**: Built on the comprehensive [monarchmoney](https://npmjs.com/package/monarchmoney) package - **Inspired by**: [hammem's MonarchMoney Python library](https://github.com/hammem/monarchmoney) and [keithah's enhanced version](https://github.com/keithah/monarchmoney-enhanced) - **MCP Protocol**: Powered by Anthropic's Model Context Protocol for seamless AI integration ## šŸ“Š **Project Stats** - **70+ Dynamic Tools** - Complete MonarchMoney API coverage - **99% Context Reduction** - Pre-aggregated summary tools - **Smart Query Parsing** - Natural language to GraphQL optimization - **3 Verbosity Levels** - Brief/Summary/Detailed responses - **Zero Context Overflow** - Maintain long conversations - **Zero Hardcoded Methods** - Future-proof dynamic discovery - **One-Click Installation** - MCPB bundle system - **Enterprise Security** - AES-256 encryption, MFA support - **Production Ready** - Comprehensive error handling, logging - **Fully Automated** - CI/CD pipeline with automated releases --- **Made with ā¤ļø for the MonarchMoney community** *Transform your financial data into actionable insights through natural language with AI assistants.*

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/keithah/monarchmoney-ts-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server