Skip to main content
Glama
partymola

monzo-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MONZO_MCP_DB_PATHNoPath to SQLite transaction cache (default: <package>/monzo.db)
MONZO_MCP_CONFIG_DIRNoDirectory for OAuth credentials and tokens (default: <package>/config/)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
monzo_list_accountsB

List all Monzo accounts with their types and IDs.

Returns account details including whether each is personal or joint, and whether it is open or closed. Any other kind of account keeps Monzo's own type name (e.g. "uk_rewards") and is not synced.

monzo_get_balanceA

Get current balance for a Monzo account.

Args: account_type: "personal" or "joint" (default: "personal")

Returns balance, spend today, and currency. Also records a balance snapshot.

monzo_list_potsA

List all pots (savings buckets) for a Monzo account.

Args: account_type: "personal" or "joint" (default: "personal")

Returns the account the pots belong to, plus pot names and balances. Also records balance snapshots.

monzo_syncA

Sync transactions, balances, and pots from the Monzo API into the local cache.

Fetches up to 11 months of history (within SCA window) or falls back to the last-synced timestamp / 90 days. Handles pagination and auth-hold deduplication automatically. Declined card attempts are not stored. Only current and joint accounts are synced; any other is listed as skipped.

Args: account_type: "personal", "joint", or None to sync both since: Optional ISO date ("2026-01-01") or datetime ("2026-01-01T14:30:00Z") to start the backfill from, overriding last-sync resumption. Reaching beyond ~90 days only works inside the post-auth SCA window.

monzo_list_transactionsA

List transactions from the local cache.

Auto-syncs if the cache is stale (last sync before today).

Queries the synced transaction database, not the live API. Bank transfers (faster payments, p2p, bacs) include a counterparty object with the payee name and, where the scheme provides them, sort code and account number.

Returns {"account_type": ..., "transactions": [...]}, where account_type echoes the filter applied and is null when unfiltered.

Args: account_type: "personal" or "joint" (default: all) since: Start date, e.g. "2026-01-01" (inclusive) before: End date, e.g. "2026-02-01" (exclusive) category: Exact category match, e.g. "groceries", "eating_out", "transport" merchant: Merchant name search (case-insensitive, partial match) limit: Max results (default 50)

monzo_search_transactionsA

Search cached transactions by merchant, counterparty (payee), description, or notes.

Auto-syncs if the cache is stale (last sync before today).

Case-insensitive partial match across merchant_name, counterparty_name, description, and notes fields. Counterparty matching finds bank transfers (faster payments, p2p, bacs) by payee name.

Returns {"account_type": ..., "transactions": [...]}, where account_type echoes the filter applied and is null when unfiltered.

Args: query: Search term account_type: "personal" or "joint" (default: all) since: Start date, e.g. "2026-01-01" (inclusive) before: End date, e.g. "2026-02-01" (exclusive) limit: Max results (default 30)

monzo_spendingA

Analyse spending from cached Monzo transactions.

Auto-syncs if the cache is stale (last sync before today).

Every result carries account_type, echoing the filter applied and null when unfiltered, so a zero total says which account it measured.

Args: month: Month in YYYY-MM format (default: current month) category: Filter by category, e.g. "groceries", "eating_out", "transport" account_type: "personal" or "joint" (default: all) detail: If true, return individual transactions instead of category summary

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 7 tools

Disambiguation4/5

Most tools target distinct operations (balance, pots, accounts, sync, spending analysis). However, monzo_list_transactions and monzo_search_transactions overlap significantly: both return cached transactions and can filter by merchant, so an agent might struggle to choose between them. Descriptions help clarify their intended use, but the boundary is not perfectly sharp.

Naming Consistency4/5

All tools share the monzo_ prefix and use snake_case, which is consistent. Most follow a verb_noun pattern (get_balance, list_pots, list_accounts, list_transactions, search_transactions), but monzo_sync is verb-only and monzo_spending is a noun, breaking the pattern slightly. Still readable and mostly predictable.

Tool Count5/5

Seven tools is well-scoped for a personal finance MCP server. Each tool covers a distinct area (accounts, balance, pots, sync, transactions, search, spending) without redundancy or bloat, and the count supports typical read/analysis workflows.

Completeness4/5

The surface covers core read operations: accounts, balance, pots, transactions, search, spending analysis, and sync. Minor gaps exist, such as no direct get_transaction by ID or a way to list categories/merchants, but agents can work around these using list_transactions or search_transactions with filters.

Maintenance

ActivityActive
ResponsivenessSlow