Monarch Money MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Monarch Money MCP Servershow my last 10 transactions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Monarch Money MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to interact with your Monarch Money personal finance data. Manage accounts, transactions, budgets, and analyze your finances programmatically.
Features
🔐 Authentication
Email/password login with MFA support
Session persistence (sessions last ~90 days)
Automatic session management
💰 Account Management
View all linked accounts (banks, credit cards, investments, etc.)
Get account balance history
View investment holdings
Create/update/delete manual accounts
Refresh account data
📊 Transaction Operations
Search and filter transactions
Create, update, and delete transactions
Split transactions across categories
Add tags and categories
Get transaction summaries
📈 Budget & Cashflow
View and set budgets by category
Get cashflow summaries
Analyze spending by category and merchant
Track income vs expenses
🏷️ Organization
Manage categories and tags
View recurring transactions
Link to financial institutions
Related MCP server: monarch-mcp
Installation
npm install
npm run buildConfiguration
Environment Variables
Set these environment variables for automatic authentication:
export MONARCH_EMAIL="your@email.com"
export MONARCH_PASSWORD="your_password"
export MONARCH_MFA_SECRET="your_mfa_secret_key" # OptionalGetting your MFA Secret Key:
Go to Monarch Money Settings → Security
Enable MFA
Copy the "Two-factor text code" (TOTP secret)
Use this as your
MONARCH_MFA_SECRET
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"monarch-money": {
"command": "node",
"args": ["/path/to/monarch-money-mcp/dist/index.js"],
"env": {
"MONARCH_EMAIL": "your@email.com",
"MONARCH_PASSWORD": "your_password",
"MONARCH_MFA_SECRET": "your_mfa_secret"
}
}
}
}Usage Examples
Authentication
// Login manually
await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_login",
arguments: {
email: "your@email.com",
password: "your_password",
mfa_secret_key: "optional_mfa_secret"
}
});
// Check authentication status
await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_check_auth"
});View Accounts
// Get all accounts
const accounts = await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_get_accounts"
});
// Get account balance history
const history = await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_get_account_history",
arguments: {
account_id: "account-uuid",
start_date: "2025-01-01",
end_date: "2025-01-31"
}
});Manage Transactions
// Get recent transactions
const transactions = await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_get_transactions",
arguments: {
limit: 50,
start_date: "2025-01-01",
end_date: "2025-01-31"
}
});
// Create a new transaction
await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_create_transaction",
arguments: {
amount: -45.50,
date: "2025-02-01",
account_id: "account-uuid",
merchant_name: "Coffee Shop",
category_id: "category-uuid",
notes: "Morning coffee"
}
});
// Update existing transaction
await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_update_transaction",
arguments: {
transaction_id: "transaction-uuid",
category_id: "new-category-uuid",
notes: "Updated note"
}
});
// Split a transaction
await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_update_transaction_splits",
arguments: {
transaction_id: "transaction-uuid",
splits: [
{ amount: -30.00, category_id: "groceries-uuid" },
{ amount: -15.00, category_id: "household-uuid" }
]
}
});Budget Management
// Get current budgets
const budgets = await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_get_budgets"
});
// Set a budget
await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_set_budget_amount",
arguments: {
category_id: "category-uuid",
amount: 500.00,
date: "2025-02-01"
}
});Cashflow Analysis
// Get cashflow summary
const cashflow = await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_get_cashflow",
arguments: {
start_date: "2025-01-01",
end_date: "2025-01-31"
}
});
// Analyze spending by category
const byCategory = await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_get_cashflow_by_category",
arguments: {
start_date: "2025-01-01",
end_date: "2025-01-31"
}
});
// Top merchants
const byMerchant = await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_get_cashflow_by_merchant",
arguments: {
start_date: "2025-01-01",
end_date: "2025-01-31",
limit: 10
}
});Categories and Tags
// Get all categories
const categories = await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_get_categories"
});
// Create a new category
await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_create_category",
arguments: {
name: "Side Projects",
icon: "💻"
}
});
// Create and apply tags
await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_create_tag",
arguments: {
name: "Business Expense",
color: "#4CAF50"
}
});
await use_mcp_tool({
server_name: "monarch-money",
tool_name: "monarch_set_transaction_tags",
arguments: {
transaction_id: "transaction-uuid",
tag_ids: ["tag-uuid-1", "tag-uuid-2"]
}
});API Reference
Authentication Tools
monarch_login- Login with email/password (supports MFA)monarch_check_auth- Check authentication status
Account Tools
monarch_get_accounts- Get all accountsmonarch_get_account_history- Get balance historymonarch_get_account_holdings- Get investment holdingsmonarch_get_account_types- List account typesmonarch_create_manual_account- Create manual accountmonarch_update_account- Update account detailsmonarch_delete_account- Delete accountmonarch_refresh_accounts- Sync with institutions
Transaction Tools
monarch_get_transactions- Search transactionsmonarch_get_transaction_details- Get transaction detailsmonarch_get_transaction_splits- Get split informationmonarch_get_transactions_summary- Get summary statsmonarch_create_transaction- Create transactionmonarch_update_transaction- Update transactionmonarch_delete_transaction- Delete transactionmonarch_update_transaction_splits- Split transaction
Budget Tools
monarch_get_budgets- Get all budgetsmonarch_set_budget_amount- Set/update budget
Cashflow Tools
monarch_get_cashflow- Get cashflow summarymonarch_get_cashflow_by_category- Breakdown by categorymonarch_get_cashflow_by_merchant- Breakdown by merchant
Organization Tools
monarch_get_categories- Get categoriesmonarch_get_tags- Get tagsmonarch_create_category- Create categorymonarch_delete_category- Delete categorymonarch_create_tag- Create tagmonarch_set_transaction_tags- Apply tags
Other Tools
monarch_get_recurring_transactions- View recurring transactionsmonarch_get_subscription- Subscription detailsmonarch_get_institutions- Linked institutions
Development
Build
npm run buildTest with MCP Inspector
npm run inspectorSecurity Notes
Session Storage: Sessions are stored in
~/.monarch_session.jsonCredentials: Never commit credentials to version control
MFA Recommended: Always enable MFA on your Monarch Money account
Environment Variables: Use environment variables or secure secret management
Common Use Cases
Monthly Budget Review
Get budgets for current month
Get actual spending by category
Identify over-budget categories
Adjust budgets as needed
Transaction Categorization
Get uncategorized transactions
Update categories based on merchant
Add tags for tracking
Split transactions if needed
Financial Analysis
Get cashflow over time periods
Analyze spending trends
Identify top expenses
Track savings rate
Account Management
Create manual accounts for cash/assets
Update balances regularly
Track investment holdings
Monitor account history
Troubleshooting
Authentication Issues
Verify email/password are correct
Check MFA secret key if using auto-MFA
Try deleting
~/.monarch_session.jsonand re-logging in
GraphQL Errors
Check Monarch Money API status
Verify account UUIDs are correct
Ensure dates are in YYYY-MM-DD format
Session Expiration
Sessions typically last ~90 days
Re-authenticate if receiving 401 errors
Save session after successful login
Credits
Built with:
@modelcontextprotocol/sdk - MCP TypeScript SDK
axios - HTTP client
zod - Schema validation
otplib - TOTP for MFA
Inspired by community Python libraries for Monarch Money API access.
License
MIT
Disclaimer
This is an unofficial MCP server for Monarch Money. It is not affiliated with, endorsed by, or connected to Monarch Money in any way. Use at your own risk.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/phyous/monarch-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server