Model Context Protocol (MCP) server for Monarch Money personal finance platform
Server has 43 tools with basic descriptions and some parameter schemas, but significant gaps prevent higher scoring. Most tools lack detailed parameter descriptions (many show only type without explaining what the parameter controls). Output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages visible. Tool names follow verb_noun convention well (get_*, create_*, update_*, delete_*), but descriptions are often generic (e.g., 'Get transactions from Monarch Money' with no context on filtering, pagination, or return structure). Authentication tools expose context objects as parameters, which is unusual. No evidence of idempotency markers, dry-run patterns, or confirmation steps for destructive operations (delete_transaction, delete_transaction_rule). Pagination support is unclear, tools like get_transactions lack documented limit/offset parameters. This is typical of community-grade servers: functional but not production-ready.
Add a tag to a transaction in Monarch Money.
Bulk categorize multiple transactions in Monarch Money.
Categorize a transaction in Monarch Money.
Check if already authenticated with Monarch Money.
Create a new transaction in Monarch Money.
Create a new transaction category.
Create a new transaction rule in Monarch Money.
23 of 43 tools have no visible input schema (schema score 0). Tools like get_transactions, search_transactions, create_transaction, update_transaction, delete_transaction, and most tag/rule/split tools show only Risk classification but no parameter definitions in the provided source. This violates the critical rule: 'If a tool has NO input schema at all: its schema score MUST be 0.' Without schemas, LLMs cannot validate inputs or understand required vs optional parameters.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Create a new transaction tag in Monarch Money.
Debug keyring session loading issues.
Delete a transaction from Monarch Money.
Delete a transaction rule from Monarch Money.
Get historical balance data for a specific account. Returns all historical balance snapshots for tracking account growth over time.
Get investment holdings for a specific account.
Get all financial accounts from Monarch Money.
Get budget information from Monarch Money.
Get cashflow analysis from Monarch Money.
Get net worth history over time. Returns daily snapshots of total net worth, useful for tracking wealth trends.
Get net worth breakdown by account type over time. Shows how net worth is distributed across different account types (checking, savings, investments, credit cards, etc.) with monthly or yearly granularity.
Get recurring transactions from Monarch Money.
Get a spending summary from Monarch Money.
Get all available transaction categories from Monarch Money.
Get all transaction category groups (parent groupings for categories).
Get detailed information about a specific transaction.
Get transaction rules from Monarch Money.
Get split information for a transaction from Monarch Money.
Get tags for a transaction from Monarch Money.
Get transactions from Monarch Money.
Get transactions that need review from Monarch Money.
Get a summary of transactions from Monarch Money.
Mark a transaction as reviewed in Monarch Money.
Sign in to Monarch Money. Opens a secure form in the client UI to collect email, password, and (if required) an MFA code. Credentials never pass through the model — they flow client-UI → server directly via the MCP protocol.
Sign in to Monarch Money using a browser-copied session token. Useful for SSO users who can't use password login. Grab the token from browser DevTools → Application → Local Storage → app.monarchmoney.com.
Clear the stored Monarch Money session from the system keyring.
Request account data refresh from financial institutions.
Search transactions from Monarch Money.
Set or update a budget amount for a category or category group.
Set tags for a transaction in Monarch Money.
Get instructions for setting up secure authentication with Monarch Money.
Split a transaction in Monarch Money.
Update an existing transaction in Monarch Money.
Update notes for a transaction in Monarch Money.
Update a transaction rule in Monarch Money.
Upload corrected balance snapshots for an account. Fetches the full existing balance history, applies the corrections, and re-uploads the complete history.
Most tool descriptions are generic and under 50 characters (e.g., 'Get transactions from Monarch Money', 'Get transaction details', 'Create a new transaction'). These lack context on filtering, pagination, return structure, or when to use them. Descriptions under 20 chars score 0-20; these are marginally better but still fail to guide LLM selection.
No error handling guidance visible. Tools like delete_transaction (DESTRUCTIVE) and delete_transaction_rule lack confirmation steps, dry-run patterns, or recovery guidance. Per pattern:confirmation-request, irreversible operations should support dry-run or confirmation. No evidence of actionable error messages (e.g., 'Invalid category: must be one of...').
Authentication tools (monarch_login, monarch_login_with_token) expose 'ctx' (Context) as a parameter with type 'Context' and description 'MCP context for elicitation'. This is unusual and suggests the tool expects MCP-level context objects, which is not a standard pattern. Credentials should flow via secure channels, not as tool parameters. Unclear if this is a security issue or a schema documentation problem.
No pagination parameters visible for list/get tools (get_accounts, get_transactions, get_transaction_rules, etc.). Per pattern:paginated-result, tools returning lists should accept page/offset and limit parameters and return a total count. Without pagination, large result sets blow the context window. No evidence of limit enforcement or cursor-based pagination.