A serverless Monzo → Claude connector on Cloudflare Workers

by silkyrich

Not rated
GitHub

Description

There are already a few Monzo MCP servers (partymola, BfdCampos, an npm one), and they're good — but they're all local stdio servers you run on your own machine. This is the first remote/serverless one I've found: it lives on a Cloudflare Worker, so you authenticate once and it…

About

There are already a few Monzo MCP servers (partymola, BfdCampos, an npm one), and they're good — but they're all local stdio servers you run on your own machine. This is the first remote/serverless one I've found: it lives on a Cloudflare Worker, so you authenticate once and it follows you to every Claude surface…

Details

Author
silkyrich
Categories
Finance, Other, AI, Cloud Service, Infrastructure

Setup

Install A serverless Monzo → Claude connector on Cloudflare Workers in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/silkyrich/monzo-claude-connector

Follow the installation instructions in the repository README, then restart your MCP client.

A serverless Monzo → Claude connector on Cloudflare Workers

There are already a few Monzo MCP servers (partymola, BfdCampos, an npm one), and they're good — but they're all local stdio servers you run on your own machine. This is the first remote/serverless one I've found: it lives on a Cloudflare Worker, so you authenticate once and it follows you to every Claude surface, with nothing to keep running.

A remoteMCPserver, running on a Cloudflare Worker, that gives Clauderead-onlyaccess to your Monzo account over OAuth.

Once connected in claude.ai, you can ask things like"what's my Monzo balance?","list my recent transactions", or"how much is in my savings pots?"in any chat — web, desktop, or phone. Authenticate once; it follows you everywhere. No laptop, no local server, nothing to keep running.

Not affiliated with Monzo.This is a personal-use tool built on Monzo's publicdeveloper API. Use at your own risk, and readSecurity modelbefore deploying.

Read-only by design: no payments, transfers, or pot movements — the tools simply don't exist, so no amount of prompt injection can move money.

Claude (claude.ai) ──OAuth──> This Worker ──OAuth──> Monzo API │ workers-oauth-provider (KV) + McpAgent (Durable Object)

- @cloudflare/workers-oauth-provideris the OAuth server Claude authenticates to — it handles dynamic client registration,/authorize,/token, and grant storage in KV.
-
src/monzo-handler.tsbridges that to Monzo's OAuth (authorize → magic-link email → in-app approval → callback).
-
src/mcp.tsis theMcpAgent— one Durable Object per connected user, holding that user's Monzo tokens and refreshing them automatically via the refresh token.
-
src/monzo.tsis the thin Monzo API client.

Worth understanding before you deploy — the design isolates users by construction:

- No standing bank credential in the Worker.The only Worker-level secrets are the Monzo OAuthclient_id/client_secret, which can exchange authorization codes but cannot read any account data by themselves.
- Tokens live per-grant, not per-Worker.When a user completes the OAuth dance, their Monzo tokens are stored encrypted insidetheirgrant (completeAuthorization({ props: ...tokens })). Every MCP request is resolved through the caller's bearer token totheirgrant,theirDurable Object,theirMonzo account. There is no request that reaches another user's data.
- Unauthenticated requests get 401.The/mcpendpoint only answers to bearer tokens the Worker itself issued.
- Monzo adds its own gates.Developer-portal OAuth clients only authorize the client owner (plus explicitly added collaborators), and every login requires approval in the Monzo app on the account holder's phone (SCA).
- Scopes are read-onlyand the payment/transfer endpoints are never called.

Residual risks are the usual ones for any connector: protect the deployed secrets, and treat your claude.ai session like the credential it is.
-

Register a Monzo OAuth clientathttps://developers.monzo.com—Confidentiality: Confidential(required for refresh tokens). Redirect URL:https://<your-worker>.workers.dev/callback.

Fill secretsin.dev.vars(gitignored) for local dev:

Create the KV namespaceand paste the returned id intowrangler.jsonc(replacing<YOUR_OAUTH_KV_NAMESPACE_ID>):

npx wrangler kv namespace create OAUTH_KV

Add the connector in claude.ai→ Settings → Connectors → Add custom connector →https://<your-worker>.workers.dev/mcp→ authorize. You'll be bounced through Monzo's login (magic-link email + approve in the Monzo app), then Claude shows the five tools.

claude mcp add --transport http monzo https://<your-worker>.workers.dev/mcp

- Monzo only exposes thelast 90 daysof transactions unless you re-authenticate immediately after approving access; this connector accepts that rolling window.
- Monzo developer clients aresingle-userunless Monzo approves your app for production — fine for the personal-use case this is built for.
- Secrets live in.dev.vars(local) and Wrangler secrets (prod) — never in git. The.gitignoreenforces this.

MIT— do what you like, no warranty. Monzo, Claude, and Cloudflare names and logos belong to their respective owners.

Competitive intelligence platform with 24 tools — monitor competitor pricing, content, positioning, tech stacks, and how ChatGPT, Claude, and Gemini rank your brand.

MCP Server for full Easypanel control via Claude Code, Cursor and Claude Desktop.

A Model Context Protocol (MCP) server for managing app publishing on Huawei AppGallery Connect. Integrates directly with Claude Desktop or any MCP-compatible client.

Interact with Infactory APIs using Claude and other large language models.

Connect your Shopify store to Claude, Cursor, or Windsurf and get 100+ pre-calculated ecommerce metrics like net profit, blended CAC, per-channel ROAS, and customer LTV segments.

Run Proxmox VE and Backup Server from Claude — 69 token-efficient, safety-gated tools with dry-run previews and a tamper-evident audit trail.

Create and publish websites from ChatGPT, Claude, Codex, Cline, and other AI agents with no account required and optional free custom domains.

Access Scorecard's AI model evaluation and testing tools via a Cloudflare Workers deployment.

AI code reviews for GitHub, GitLab, Azure DevOps & Bitbucket PR/MR URLs from Cursor, Claude, or Copilot.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.