🏦 Monzo MCP服务器
一个模型上下文协议(MCP)服务器,通过Claude工具提供对Monzo银行数据的访问。
🪧 演示
https://github.com/user-attachments/assets/ca3f9558-bc4b-460f-8658-99674f9c16b7
🖼️ 结果
🚀 安装
# Clone the repository
git clone https://github.com/BfdCampos/monzo-mcp-bfdcampos.git
cd monzo-mcp-bfdcampos/monzo-mcp-bfdcampos
# Install dependencies using uv (Python package manager)
uv install🔑 API设置
创建一个 .env 使用您的Monzo凭据在项目目录中创建文件:
\[!注意\] 要获取您的凭据,请按照中的说明进行操作 Monzo Dev API官方文档
MONZO_ACCESS_TOKEN='your_access_token'
MONZO_USER_ID='your_user_id'
MONZO_ACCOUNT_ID='your_default_account_id'
# Add specific account IDs for different account types
MONZO_UK_PREPAID_PERSONAL_ACCOUNT_ID='your_prepaid_account_id'
MONZO_UK_RETAIL_PERSONAL_ACCOUNT_ID='your_personal_account_id'
MONZO_UK_MONZO_FLEX_PERSONAL_ACCOUNT_ID='your_flex_account_id'
MONZO_UK_REWARDS_PERSONAL_ACCOUNT_ID='your_rewards_account_id'
MONZO_UK_RETAIL_JOINT_JOINT_ACCOUNT_ID='your_joint_account_id'\[!注意\] 我建议获取帐户ID并将其添加到您的dotenv文件中,以获得更流畅的服务器体验,并减少API调用的次数。这也可以在 Monzo Dev API官方文档.
🔧 使用Claude Desktop进行设置
方法1:自动安装
使用MCP CLI工具自动安装服务器:
uv run mcp install main.py方法2:手动配置
将服务器添加到位于以下位置的Claude Desktop配置文件中 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"Monzo": {
"command": "/Users/[Your Home Directory]/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli],requests",
"mcp",
"run",
"/path/to/your/monzo-mcp-bfdcampos/monzo-mcp-bfdcampos/main.py"
]
}
}
}注: 替换/path/to/your/你的实际路径。 重要提示: 确保包括requests在--with如上所示的论点。
🤖 与Claude Desktop一起使用
- 安装后重新启动Claude Desktop。
- 打开应用程序并开始新的对话。
- 您现在可以向Claude询问您的Monzo账户:
- “我目前的余额是多少?” - “我的联名账户里有多少钱?” - “显示我所有的Monzo帐户” - “将50英镑从我的个人账户转移到我的储蓄罐” - “显示我今天的交易记录”
📊 可用功能
💷 平衡
返回指定帐户类型的余额、当前支出和货币。
参数:
account_type(可选):要检查余额的账户类型。选项:“默认”、“个人”、“预付”、“弹性”、“奖励”、“联合”total_balance(可选):如果设置为true,则返回帐户的总余额。默认值为false
请求示例:
What's my current balance?
How much money do I have in my joint account?
What's the balance of my flex account?🍯 盆
返回指定帐户类型的锅列表。
参数:
account_type(可选):要检查锅的帐户类型。选项:“默认”、“个人”、“预付”、“弹性”、“奖励”、“联合”
请求示例:
Show me my pots
How many pots do I have?
How much money do I have in my "Savings" pot?🪙 pot_存款
把钱从一个账户存到一个罐子里。
参数:
pot_id(必填):存款池的IDamount(必填):以便士为单位的存款金额(例如,1000英镑兑换10.00英镑)account_type(可选):要提取的帐户。默认设置为“个人”
请求示例:
Add £25 to my Savings pot
Move £10 from my personal account to my Holiday pot🏧 pot_withdraw
从罐子里取钱回账户。
参数:
pot_id(必填):要从中取款的锅的IDamount(必填):以便士为单位提取的金额(例如,1000英镑兑换10.00英镑)account_type(可选):要存入的账户。默认设置为“个人”
请求示例:
Take £25 from my Savings pot
Withdraw £10 from my Holiday pot to my personal account🧾 list_交易
列出指定帐户的交易记录。
参数:
account_type(可选):要列出交易的帐户类型。默认设置为“个人”since(可选):ISO 8601格式的交易开始日期(例如,“2025-05-20T00:00:00Z”)before(可选):ISO 8601格式的交易结束日期limit(可选):要返回的最大交易数。默认值为1000
请求示例:
Show me my recent transactions
What transactions do I have from today?
List all transactions from my joint account this month📖 检索交易
检索特定交易的详细信息。
参数:
transaction_id(必填):要检索的交易的IDexpand(可选):要包含在响应中的其他数据。默认为“商家”
请求示例:
Show me the details of my last transaction
What was the last transaction I made?📝 注释事务
编辑事务的元数据。
参数:
transaction_id(必填):要注释的交易的IDmetadata_key(必填):要编辑的元数据的键。默认值为“注释”metadata_value(必填):元数据键的新值。空值将删除密钥delete_note(可选):如果设置为true,则注释将被删除。默认值为false
请求示例:
Add a note to my last transaction saying "Dinner with friends"
Remove the note from my last transaction📦 Monzo API中存在Monzo MCP的缺失功能
❓ 常见问题解答
My Claude Desktop is not detecting the server
- 确保您拥有最新版本的Claude Desktop。
- 通过强制退出应用程序并重新打开它来重新启动Claude Desktop。
- 确保配置文件中的路径正确。
- 使用绝对路径
uv安装。,/Users/[Your Home Directory]/.local/bin/uv在配置文件的命令部分。 - 确认
requests图书馆包含在--with配置中的参数列表,因为这是连接问题的常见原因。
I've asked Claude about my balance but it's not using the MCP server
- 像Claude这样的LLM可能并不总是对每个请求都使用MCP服务器。试着重新表述你的问题,特别是让克劳德使用Monzo MCP工具检查你的Monzo平衡。
- 您可以通过查看中的日志来检查是否有任何错误
~/Library/Logs/Claude/mcp-server-Monzo.log.
How do pot deposits and withdrawals work?
- 当您将钱存入池或从池中提款时,MCP会创建一个唯一的重复数据删除_id,其中包括“triggered_by”参数。
- 这有助于识别交易并防止意外的重复交易。
- 默认的“triggered_by”值是“mcp”,但您可以对其进行自定义,以跟踪不同来源的锅转移。
What is uv?
uv是一个Python包管理器和安装程序,其设计速度比pip快得多。- 它为您的项目维护隔离的环境,并有效地解决依赖关系。
- 了解更多信息,请访问 .
