MonarchMoney MCP Server
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, 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
๐ One-Click Installation
- MCPB Bundle Format (
.mcpbfiles) 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
Option 1: One-Click MCPB Bundle (Recommended)
- Download the latest
.mcpbfile from Releases - Extract and install:
unzip monarchmoney-mcp-v1.0.0.mcpb -d monarchmoney-mcp cd monarchmoney-mcp node install.js - Configure credentials:
cp .env.example .env # Edit .env with your MonarchMoney credentials
Option 2: Manual Installation
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
{
"mcpServers": {
"monarchmoney": {
"command": "node",
"args": ["/full/path/to/monarchmoney-ts-mcp/dist/index.js"],
"env": {
"MONARCH_EMAIL": "[email protected]",
"MONARCH_PASSWORD": "your-password",
"MONARCH_MFA_SECRET": "your-mfa-secret-key"
}
}
}
}
๐ ๏ธ Available Tools
The MCP server dynamically exposes ALL methods from the MonarchMoney SDK:
๐ Accounts (15+ tools)
accounts_getAll- Get all accountsaccounts_getById- Get account by IDaccounts_getBalanceHistory- Account balance over timeaccounts_getNetWorthHistory- Net worth trendsaccounts_updateAccount- Update account detailsaccounts_createManualAccount- Create manual accountsaccounts_deleteAccount- Remove accounts- And more...
๐ณ Transactions (25+ tools)
transactions_getTransactions- Get filtered transactionstransactions_getTransactionDetails- Detailed transaction infotransactions_createTransaction- Add new transactionstransactions_updateTransaction- Modify transactionstransactions_deleteTransaction- Remove transactionstransactions_getTransactionRules- Transaction rulestransactions_createTransactionRule- Create automation rules- And more...
๐ฐ Budgets (10+ tools)
budgets_getBudgets- Budget informationbudgets_createBudget- Create new budgetsbudgets_updateBudget- Modify budgetsbudgets_getBudgetSummary- Budget performance- And more...
๐ท๏ธ Categories (8+ tools)
categories_getCategories- All transaction categoriescategories_createCategory- Create categoriescategories_updateCategory- Modify categories- And more...
๐ธ Cashflow (5+ tools)
cashflow_getCashflowSummary- Income vs expensescashflow_getCashflowWidget- Cashflow visualization data- And more...
๐ Recurring (6+ tools)
recurring_getRecurringStreams- Recurring transactionsrecurring_createRecurringStream- Set up recurring items- And more...
๐ฆ Institutions (4+ tools)
institutions_getInstitutions- Financial institutionsinstitutions_getInstitutionAccounts- Institution-specific accounts- And more...
๐ Insights (5+ tools)
insights_getNetWorthHistory- Wealth tracking over timeinsights_getSpendingByCategory- Spending breakdowninsights_getIncomeVsExpenses- Income analysis- And more...
๐ค User Profile
get_me- Current user information
๐ฌ Example Queries
Once configured with Claude Desktop, you can ask:
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?"
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?"
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"
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"
๐ง Development
Build and Test
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:
// 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:
// 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' },
// ... more filters
}
};
}
๐ Release Process
Releases are fully automated via GitHub Actions:
- Create a tag:
git tag v1.0.0 && git push --tags - GitHub Action triggers and:
- Runs tests and builds the project
- Creates MCPB bundle automatically
- Publishes GitHub release with downloadable
.mcpbfile - 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
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open Pull Request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- MonarchMoney TypeScript SDK: Built on the comprehensive monarchmoney package
- Inspired by: hammem's MonarchMoney Python library and keithah's enhanced version
- MCP Protocol: Powered by Anthropic's Model Context Protocol for seamless AI integration
๐ Project Stats
- 70+ Dynamic Tools - Complete MonarchMoney API coverage
- 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.