Skip to main content
Glama
Monarch Money MCP Server

Monarch Money MCP Server

by jamiew

Get Merchants

get_merchants
Read-only

Lists merchants with transaction and rule counts, supports paginated browsing via limit and offset, and returns merchant IDs for deletion or further actions.

Instructions

List a page of merchants with transaction and rule counts.

Args: limit: 1–500 (default 100). offset: Zero-based position. Follow next_offset until null. verbose: True returns the full upstream objects.

Compact rows: id, name, transaction_count, rule_count, has_active_recurring_streams, can_be_deleted. Merchant IDs feed delete_merchant. total_count is Monarch's merchantCount, which may count a different set than the list; rely on next_offset.

Input Schema

NameRequiredDescriptionDefault
limitNo
offsetNo
verboseNo

Output Schema

NameRequiredDescriptionDefault
countYes
offsetYes
verboseYes
merchantsYes
next_offsetYes
total_countYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.6.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: the pagination termination rule, the meaning of verbose (full upstream objects vs compact rows), and the non-obvious caveat that total_count is unreliable — a genuinely useful disclosure an agent could not infer from structured fields.

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

Conciseness4/5

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

It is front-loaded with purpose, then arguments, then return shape and caveats — a sensible order with no filler. The 'Compact rows' field enumeration is somewhat redundant given an output schema exists, though naming has_active_recurring_streams and can_be_deleted does hint at what is decision-relevant.

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?

For a three-parameter read-only list tool with an output schema already documenting returns, the description covers everything needed to invoke it correctly: bounds, pagination loop, verbose behavior, and the total_count pitfall. Nothing required to call it is missing.

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?

Schema description coverage is 0%, so the description must carry all parameter meaning, and it does: limit's 1–500 range with a default of 100, offset as a zero-based position with the next_offset loop, and verbose's true-case return shape. The bare schema titles would otherwise convey nothing about bounds or semantics.

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

Purpose5/5

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

The opening sentence names a specific verb and resource plus the scope of what is returned: 'List a page of merchants with transaction and rule counts.' It also distinguishes the tool from its write-side sibling by stating 'Merchant IDs feed delete_merchant', so an agent knows this is the read-side entry point rather than a mutation.

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

Usage Guidelines4/5

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

It gives concrete operational guidance: paginate by following next_offset until null, and trust next_offset over total_count because Monarch's merchantCount may cover a different set. It does not state when to prefer this over another listing tool, but no other merchant-listing sibling exists, so the gap is minor.

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