Monarch Money

平台与服务

by keithah

从Monarch Money跟踪账户、交易与预算,筛选近期活动并洞察支出情况,持续监控预算和趋势,帮助做出更明智的财务决策。

什么是 Monarch Money

从Monarch Money跟踪账户、交易与预算,筛选近期活动并洞察支出情况,持续监控预算和趋势,帮助做出更明智的财务决策。

README

MonarchMoney MCP Server

npm version License: MIT smithery badge

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

🚀 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:

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
  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

code
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)"
code

## 🚀 **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.*

常见问题

Monarch Money 是什么?

从Monarch Money跟踪账户、交易与预算,筛选近期活动并洞察支出情况,持续监控预算和趋势,帮助做出更明智的财务决策。

相关 Skills

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描165.3k

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描165.3k

接口测试套件

by alirezarezvani

Universal
热门

扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。

帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。

平台与服务
未扫描23.5k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
89.1k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
79.9k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
71.9k

评论