monzo
Access Monzo bank account - check balance, view transactions, manage pots, send feed notifications. For personal finance queries and banking automation.
Install
mkdir -p .claude/skills/monzo && curl -L -o skill.zip "https://mcp.directory/api/skills/download/8399" && unzip -o skill.zip -d .claude/skills/monzo && rm skill.zipInstalls to .claude/skills/monzo
About this skill
Monzo Banking Skill
Access your Monzo bank account to check balances, view transactions, manage savings pots, and send notifications to your Monzo app.
Prerequisites
Before setting up this skill, you need:
- A Monzo account (UK personal, joint, or business account)
- The Monzo app installed on your phone (for SCA approval)
- OpenClaw running with workspace access
- Standard tools:
curl,jq,openssl,bc(pre-installed on most Linux systems)
Quick Start (TL;DR)
# 1. Set the MONZO_KEYRING_PASSWORD env var (see "Setting the Password" below)
# 2. Create OAuth client at https://developers.monzo.com/
# - Set Confidentiality: Confidential
# - Set Redirect URL: http://localhost
# 3. Run setup
scripts/setup.sh
# 4. Approve in Monzo app when prompted, then:
scripts/setup.sh --continue
# 5. Test it
scripts/balance.sh
Detailed Setup Guide
Step 1: Set the Encryption Password
The MONZO_KEYRING_PASSWORD environment variable is used to encrypt your Monzo credentials at rest. Choose a strong, unique password and don't lose it — you'll need it if you ever move or restore the skill.
There are several ways to provide this variable. Choose whichever fits your setup:
Option A: OpenClaw skill config (simplest)
Add to your OpenClaw config (e.g. openclaw.json):
{
skills: {
entries: {
"monzo": {
enabled: true,
env: {
"MONZO_KEYRING_PASSWORD": "choose-a-secure-password-here"
}
}
}
}
}
Then restart: openclaw gateway restart
Note: This stores the password in plaintext in the config file. Ensure the file has restrictive permissions (
chmod 600) and is not checked into version control.
Option B: Shell environment (keeps password out of config files)
Add to your shell profile (~/.bashrc, ~/.zshrc, etc.):
export MONZO_KEYRING_PASSWORD="choose-a-secure-password-here"
Then restart your shell and OpenClaw.
Option C: systemd EnvironmentFile (for server deployments)
Create a secrets file (e.g. /etc/openclaw/monzo.env):
MONZO_KEYRING_PASSWORD=choose-a-secure-password-here
Set permissions: chmod 600 /etc/openclaw/monzo.env
Reference it from your systemd unit with EnvironmentFile=/etc/openclaw/monzo.env.
Option D: Password manager / secrets manager
Use your preferred secrets tool to inject the env var at runtime. Any method that sets MONZO_KEYRING_PASSWORD in the process environment will work.
Step 2: Create Monzo OAuth Client
- Go to https://developers.monzo.com/ and sign in with your Monzo account
- Click "Clients" → "New OAuth Client"
- Fill in:
- Name:
OpenClaw(or your preferred name) - Logo URL: (leave blank)
- Redirect URLs:
http://localhost← exactly this, no trailing slash - Description: (leave blank)
- Confidentiality: Confidential ← ⚠️ Important! Enables refresh tokens
- Name:
- Click Submit
- Note your Client ID (
oauth2client_...) and Client Secret (mnzconf....)
Step 3: Run the Setup Wizard
scripts/setup.sh
The wizard will:
- Ask for your Client ID and Client Secret
- Give you an authorization URL to open in your browser
- Ask you to paste the redirect URL back
- Exchange the code for access tokens
- Save encrypted credentials
Alternative: Non-interactive mode (useful for automation or agents):
scripts/setup.sh --non-interactive \
--client-id oauth2client_xxx \
--client-secret mnzconf.xxx \
--auth-code eyJ...
Step 4: Approve in Monzo App (SCA)
⚠️ This step is required! Monzo requires Strong Customer Authentication.
- Open the Monzo app on your phone
- Look for a notification about "API access" or a new connection
- Tap to approve
If you don't see a notification:
- Go to Account → Settings → Privacy & Security → Manage connected apps
- Find and approve your client
After approving, complete setup:
scripts/setup.sh --continue
Step 5: Verify It Works
# Check authentication
scripts/whoami.sh
# Check your balance
scripts/balance.sh
You should see your account info and current balance. You're done! 🎉
For the Agent
This section tells the agent how to use this skill effectively.
When to Use This Skill
Use this skill when the user asks about:
- Balance: "How much money do I have?", "What's my balance?"
- Transactions: "What did I spend on X?", "Show recent transactions"
- Spending analysis: "How much did I spend on coffee this month?"
- Savings: "How much is in my savings?", "Move £X to my holiday pot"
- Notifications: "Send a reminder to my Monzo app"
Common Patterns
# "How much money do I have?"
scripts/balance.sh
# "Show me recent transactions" / "What did I spend?"
scripts/transactions.sh # All available, newest first
# "Show me my last 5 transactions"
scripts/transactions.sh --limit 5 # 5 most recent
# "What did I spend this week?"
scripts/transactions.sh --since 7d
# "How much did I spend on coffee this month?"
scripts/transactions.sh --search coffee --since 30d
# "What are my savings pots?"
scripts/pots.sh
# "Put £50 in my holiday fund"
scripts/pots.sh deposit pot_XXXXX 5000 # Amount in pence!
# "Send a reminder to my phone"
scripts/feed.sh --title "Don't forget!" --body "Check the gas meter"
Important Notes for Agents
- Money is in pence: £50 = 5000, £1.50 = 150
- Dates can be relative:
--since 7dmeans last 7 days - Use human-readable output by default (no
--jsonflag) - Pot IDs: Use
scripts/pots.shfirst to get pot IDs before depositing/withdrawing - Multiple accounts: User may have personal, joint, and business accounts. Default is personal. Use
scripts/whoami.shto see all accounts.
Error Handling
If you see forbidden.insufficient_permissions:
- Tell the user to check their Monzo app and approve API access
- Then run
scripts/setup.sh --continue
If you see MONZO_KEYRING_PASSWORD not set:
- The env var isn't available in the process environment
- Guide user to set it using one of the methods in Step 1 of the setup guide
Script Reference
balance - Check Account Balance
scripts/balance.sh # Default account
scripts/balance.sh acc_... # Specific account
scripts/balance.sh --json # JSON output
Output:
Current Balance: £1,234.56
Total (with pots): £2,500.00
Spent today: £12.34
transactions - Transaction History
Fetches all available transactions (paginated), displayed newest first.
scripts/transactions.sh # All transactions, newest first
scripts/transactions.sh --limit 10 # 10 most recent
scripts/transactions.sh --since 7d # Last 7 days only
scripts/transactions.sh --since 2026-01-01 # Since specific date
scripts/transactions.sh --search coffee # Search by merchant/description/notes
scripts/transactions.sh --search "Pret" --since 30d # Combined filters
scripts/transactions.sh --id tx_... # Get specific transaction
scripts/transactions.sh --json # JSON output
Output:
DATE AMOUNT DESCRIPTION CATEGORY
============ ========== =================================== ===============
2026-01-29 -£3.50 Pret A Manger eating_out
2026-01-29 -£12.00 TfL transport
2026-01-28 -£45.23 Tesco groceries
Total: 3 transaction(s)
pots - Savings Management
scripts/pots.sh # List all pots
scripts/pots.sh list --json # JSON output
scripts/pots.sh deposit pot_... 5000 # Deposit £50 (5000 pence)
scripts/pots.sh withdraw pot_... 2000 # Withdraw £20 (2000 pence)
Output (list):
NAME BALANCE GOAL ID
========================= ============ ============ ====================
Holiday Fund £450.00 £1,000.00 pot_0000...
Emergency £2,000.00 £3,000.00 pot_0001...
feed - Send App Notifications
scripts/feed.sh --title "Reminder" # Simple notification
scripts/feed.sh --title "Alert" --body "Details here" # With body
scripts/feed.sh --title "Link" --url "https://..." # With tap action
whoami - Check Authentication
scripts/whoami.sh # Show auth status and accounts
scripts/whoami.sh --account-id # Just the default account ID
scripts/whoami.sh --json # JSON output
receipt - Attach Receipts to Transactions
scripts/receipt.sh create tx_... --merchant "Shop" --total 1234 --item "Thing:1234"
scripts/receipt.sh get ext_...
scripts/receipt.sh delete ext_...
webhooks - Manage Webhooks (Advanced)
scripts/webhooks.sh list
scripts/webhooks.sh create https://your-server.com/webhook
scripts/webhooks.sh delete webhook_...
Troubleshooting
"forbidden.insufficient_permissions"
Most common issue! Monzo requires app approval (SCA).
Fix:
- Open Monzo app → check for notification → approve
- Or: Account → Settings → Privacy & Security → Manage connected apps → approve
- Run:
scripts/setup.sh --continue
"MONZO_KEYRING_PASSWORD not set"
The env var isn't available in the process environment.
Fix: Set MONZO_KEYRING_PASSWORD using any of the methods described in Step 1 of the setup guide, then restart OpenClaw.
"Authorization code has been used"
Each auth code is single-use. Start fresh:
scripts/setup.sh --reset
"No refresh token received"
Your OAuth client isn't set to "Confidential". Create a new client with Confidentiality = Confidential, then:
scripts/setup.sh --reset
"
Content truncated.
More by openclaw
View all skills by openclaw →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversView Mercury business banking accounts in read-only mode — secure, streamlined access for small business fintech users.
Access Cloudflare documentation fast via a Cloudflare Worker using an indexed Vectorize DB. Ideal for Cloudflare API doc
Connect Supabase projects to AI with Supabase MCP Server. Standardize LLM communication for secure, efficient developmen
Boost Postgres performance with Postgres MCP Pro—AI-driven index tuning, health checks, and safe, intelligent SQL optimi
Unlock powerful OLAP database analytics on ClickHouse MCP Server. Manage OLAP data with seamless online analytical proce
Connect AI with Telegram using our telegram bot for efficient message monitoring, organizing, and handling via powerful
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.