Monzo银行API协议服务器

一个为Monzo银行API设计的MCP(模型上下文协议)服务器,允许AI助手连接至Monzo账户,实现余额查询、交易管理、资金池操作等功能。

  • by samaxbytez
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 samaxbytez/monzo-mcp

使用说明

蒙佐·麦克普

MCP(模型上下文协议)服务器 蒙佐银行API.将Claude和其他AI助手连接到您的Monzo帐户,以检查余额、查看交易、管理锅等。

适用于任何兼容MCP的客户端,包括Claude Desktop、Claude Code、Cursor、Windsurf、Cline等。提供19个工具,涵盖帐户、交易、锅、提要项、附件、收据和webhooks。

注: Monzo Developer API仅供个人使用。您只能连接到自己的帐户或少数明确允许的用户。

特性

  • 账户 -验证身份,列出账户,获取余额
  • 锅 -列出花盆,放入花盆和从花盆中取出
  • 交易 -列出交易、获取详细信息、用元数据注释
  • 喂养 -在Monzo应用程序中创建自定义提要项
  • 附件 -上传图像并将其附加到交易中
  • 收据 -创建、获取和删除数字收据
  • 网络钩子 -注册、列出和删除实时Webhook

先决条件

你需要一个 Monzo访问令牌。要获得一个:

  1. 首选 developers.monzo.com 并使用您的Monzo电子邮件登录
  2. 去 API游乐场 然后单击 认证
  3. 批准 推送通知 在您的Monzo应用程序上(PIN、指纹或Face ID)
  4. 复制 访问令牌 如游乐场所示

关于代币的重要提示:

  • 代币大约在以下时间到期 6小时
  • 身份验证后,您有 5分钟 完整的交易历史访问权限;在那之后,只有 过去90天 可用的
  • 生成新令牌 使无效 上一个

安装

使用npx(推荐)

npx monzo-mcp

全局安装

npm install -g monzo-mcp
monzo-mcp

从源代码构建

git clone https://github.com/samaxbytez/monzo-mcp.git
cd monzo-mcp
npm install
npm run build
node build/index.js

配置

环境变量

变量 必填 描述
MONZO_ACCESS_TOKEN 是 您的Monzo API访问令牌

克劳德桌面

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "monzo": {
      "command": "npx",
      "args": ["-y", "monzo-mcp"],
      "env": {
        "MONZO_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

克劳德代码

添加到您的项目 .mcp.json:

{
  "mcpServers": {
    "monzo": {
      "command": "npx",
      "args": ["-y", "monzo-mcp"],
      "env": {
        "MONZO_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

其他MCP客户端

设置 MONZO_ACCESS_TOKEN 环境变量并运行:

MONZO_ACCESS_TOKEN=your_token npx monzo-mcp

建筑

monzo-mcp/
├── src/
│   ├── index.ts              # Entry point, server setup
│   ├── client.ts             # Monzo API HTTP client
│   ├── utils.ts              # Shared utilities (jsonResponse, errorResponse, etc.)
│   ├── client.test.ts        # Client tests
│   ├── utils.test.ts         # Utils tests
│   └── tools/
│       ├── accounts.ts       # Account info and balance tools
│       ├── pots.ts           # Pot management tools
│       ├── transactions.ts   # Transaction tools
│       ├── feed.ts           # Feed item tools
│       ├── attachments.ts    # Attachment tools
│       ├── receipts.ts       # Receipt tools
│       ├── webhooks.ts       # Webhook tools
│       └── tools.test.ts     # Tool handler tests
├── package.json
├── tsconfig.json
└── README.md

设计决策:

  • 使用模式A(简单承载令牌),因为Monzo使用个人访问令牌
  • 每个工具类别一个文件,用于清晰地分离关注点
  • 所有工具处理程序都使用一致的 logToolCall() + try/catch + jsonResponse()/errorResponse() 模式
  • 金额以 便士 (次要单位)按照Monzo API惯例

工具参考

账户(3个工具)

工具 描述 API端点
monzo_whoami 验证已验证身份的用户,返回用户ID和身份验证类型 GET /ping/whoami
monzo_list_accounts 列出所有帐户,可选择按类型筛选(uk_retail, uk_retail_joint) GET /accounts
monzo_get_balance 获取账户余额、总余额、货币和今天的支出(以便士计) GET /balance

锅(3个工具)

工具 描述 API端点
monzo_list_pots 列出一个帐户的所有锅 GET /pots
monzo_deposit_into_pot 将资金从账户转移到锅中(金额单位为便士,需要dedupe_id) PUT /pots/{pot_id}/deposit
monzo_withdraw_from_pot 将资金从罐子移回账户(锁定的罐子不能通过API提取) PUT /pots/{pot_id}/withdraw

交易(3种工具)

工具 描述 API端点
monzo_list_transactions 列出具有可选自/前/限制过滤器的交易(5分钟后90天限制) GET /transactions
monzo_get_transaction 获取单笔交易详情,可选择扩展商户信息 GET /transactions/{id}
monzo_annotate_transaction 将自定义键值元数据添加到事务中 PATCH /transactions/{id}

进给(1个工具)

工具 描述 API端点
monzo_create_feed_item 在Monzo应用程序提要中创建一个自定义项目,包括标题、正文、可选图像/URL POST /feed

附件(3个工具)

工具 描述 API端点
monzo_upload_attachment 获取图像的预签名上传URL POST /attachment/upload
monzo_register_attachment 将上传的图像附加到交易中 POST /attachment/register
monzo_deregister_attachment 从事务中删除附件 POST /attachment/deregister

收据(3个工具)

工具 描述 API端点
monzo_create_receipt 创建或更新交易的数字收据 PUT /transaction-receipts
monzo_get_receipt 通过外部ID获取收据 GET /transaction-receipts
monzo_delete_receipt 删除收据 DELETE /transaction-receipts

Webhooks(3个工具)

工具 描述 API端点
monzo_register_webhook 注册实时交易通知的URL POST /webhooks
monzo_list_webhooks 列出帐户的所有Webhook GET /webhooks
monzo_delete_webhook 删除webhook DELETE /webhooks/{id}

示例提示

  • “我的Monzo天平是什么?”
  • “显示我最近的交易记录”
  • “列出我的锅”
  • “把50磅放进我的度假锅里”
  • “我上周在乐购花了多少钱?”
  • “在蒙佐给我发一条通知,说‘记得买牛奶’”
  • “显示我的webhooks”
  • “用注释注释我的最后一笔交易”

发展

构建

npm run build

运行测试

npm test

观看模式

npm run test:watch

棉绒

npm run lint

格式

npm run format

添加新工具

  1. 在中创建新文件 src/tools/ 或添加到现有类别
  2. 遵循以下模式: registerXxxTools(server, client) 功能
  3. 在中导入并调用register函数 src/index.ts
  4. 在中添加测试 src/tools/tools.test.ts
  5. 更新此自述文件

故障排除

“缺少必需的环境变量:MONZO_ACCESS_TOKEN”

设置 MONZO_ACCESS_TOKEN 在您的MCP服务器配置中。看 先决条件.

“Monzo API错误(401):未经授权”

您的访问令牌已过期(令牌持续约6小时)。从获取一个新的 蒙佐游乐场.

“Monzo API错误(403):禁止”

您可能需要完成强客户身份验证。打开Monzo应用程序,查看是否有待审批通知。

交易历史记录为空或有限

认证后5分钟,API只返回最后90天的交易。这是Monzo的安全限制。

罐子取出失败

具有“附加安全性”的罐子(锁定的罐子)不能通过API取出。首先在Monzo应用程序中解锁锅。

工具未出现在Claude中

  • 克劳德桌面: 更新配置后重新启动应用程序
  • 克劳德代码: 重新启动MCP服务器或重新加载设置
  • 验证您的配置使用情况 "command": "npx" 随着 "args": ["-y", "monzo-mcp"]

许可证

麻省理工学院