Skip to main content
Glama
jamiew

Monarch Money MCP Server

Update Transaction

update_transaction
Idempotent

Update a transaction's details: change amount, merchant name, category, date, notes, goal association, report visibility, or review flag.

Instructions

Update an existing transaction.

Args: transaction_id: ID of the transaction to update (required) amount: New transaction amount merchant_name: New merchant display name shown in Monarch UI - This updates the user-facing name (merchant.name field) - Does NOT change plaidName (original bank statement text, read-only) - Empty strings are ignored by the API - Example: Change "AMZN Mktp US" to "Amazon" category_id: ID of the new category to assign date: New transaction date in YYYY-MM-DD format notes: User notes/memo for this transaction (separate from merchant name) NOTE: This is different from merchant_name - notes: Free-form user memo/annotation (e.g., "Business lunch with client") - merchant_name: The merchant's display name (e.g., "Olive Garden") - Both are editable, but serve different purposes in the UI - Use empty string "" to clear existing notes goal_id: ID of savings goal to associate with this transaction - Use empty string "" to clear goal association hide_from_reports: Whether to hide this transaction from reports/analytics needs_review: Flag transaction as needing review

Field Editability: Editable Fields (can be updated): - amount: Transaction amount - merchant_name: User-facing merchant display name - category_id: Category assignment - date: Transaction date - notes: User memo/notes - goal_id: Goal association - hide_from_reports: Visibility in reports - needs_review: Review flag

Read-Only Fields (cannot be updated):
    - id: Transaction ID (immutable)
    - plaidName: Original bank statement text (from institution)
    - account: Account where transaction occurred
    - pending: Pending status (controlled by institution)
    - createdAt: Creation timestamp
    - isSplitTransaction: Split status (use separate split API)
    - attachments: Use separate attachment API

Returns: JSON string with updated transaction details

Common Use Cases: - Change merchant: merchant_name="Starbucks" - Add note: notes="Business expense" - Recategorize: category_id="cat_groceries_123" - Mark for review: needs_review=True - Clear notes: notes=""

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
transaction_idYes
amountNo
merchant_nameNo
category_idNo
dateNo
notesNo
goal_idNo
hide_from_reportsNo
needs_reviewNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
transactionYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations: clarifies that empty strings are ignored for merchant_name, notes can be cleared with empty string, and lists read-only fields (plaidName, account, etc.). It details side effects and constraints, which is critical since annotations only provide high-level hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections (Args, Field Editability, Returns, Common Use Cases) and bullet points. Every sentence adds value, and the key information is front-loaded. Despite length, it remains organized and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, no schema descriptions, output schema present), the description covers all necessary aspects: parameter behaviors, edge cases, read-only fields, and example use cases. It is complete and leaves no ambiguity for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by providing detailed explanations for each parameter, including examples, field differences (notes vs. merchant_name), and behavioral notes (e.g., empty string behavior). This adds substantial meaning beyond the schema's type definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update an existing transaction' and lists all updatable fields. However, it does not explicitly differentiate from sibling tools like 'update_transactions_bulk' or 'create_transaction', which could cause ambiguity for an agent deciding which tool to use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides common use cases and field editability details, but does not give explicit guidance on when to use this tool versus alternatives (e.g., create_transaction for new transactions, update_transactions_bulk for batch updates). The usage context is implied but not contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/jamiew/monarch-mcp'

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