一个提供通过Claude工具访问您的Monzo银行数据的模型上下文协议(MCP)服务器。
https://github.com/user-attachments/assets/ca3f9558-bc4b-460f-8658-99674f9c16b7
<details> <summary># 克隆仓库
git clone https://github.com/BfdCampos/monzo-mcp-bfdcampos.git
cd monzo-mcp-bfdcampos/monzo-mcp-bfdcampos
# 使用uv(Python包管理器)安装依赖
uv install
在项目目录中创建一个.env文件,并添加您的Monzo凭证:
[!NOTE] 要获取您的凭证,请参阅官方Monzo Dev API文档。
MONZO_ACCESS_TOKEN='your_access_token'
MONZO_USER_ID='your_user_id'
MONZO_ACCOUNT_ID='your_default_account_id'
# 添加不同账户类型的特定账户ID
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'
[!NOTE] 我建议您获取账户ID并将其添加到您的dotenv文件中,以获得更顺畅的服务器体验并减少API调用次数。这也可以在官方Monzo Dev API文档中找到。
使用MCP CLI工具自动安装服务器:
uv run mcp install main.py
将服务器添加到位于~/Library/Application Support/Claude/claude_desktop_config.json的Claude Desktop配置文件中:
{
"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参数中。
返回指定账户类型的余额、今日支出和货币。
参数:
account_type(可选):要检查余额的账户类型。选项:“default”,“personal”,“prepaid”,“flex”,“rewards”,“joint”total_balance(可选):如果设置为true,则返回账户的总余额。默认为false示例请求:
我的当前余额是多少?
我在联合账户中有多少钱?
我的灵活账户余额是多少?
</details>
<details>
<summary>
返回指定账户类型的存钱罐列表。
参数:
account_type(可选):要检查存钱罐的账户类型。选项:“default”,“personal”,“prepaid”,“flex”,“rewards”,“joint”示例请求:
显示我的存钱罐
我有多少个存钱罐?
我在“储蓄”存钱罐里有多少钱?
</details>
<details>
<summary>
将资金从账户转入存钱罐。
参数:
pot_id(必需):要存款的存钱罐IDamount(必需):要存款的金额,以便士计(例如,1000表示£10.00)account_type(可选):要提款的账户。默认为“personal”示例请求:
向我的储蓄存钱罐存入25英镑
从我的个人账户向我的假期存钱罐存入10英镑
</details>
<details>
<summary>
从存钱罐中取款回到账户。
参数:
pot_id(必需):要取款的存钱罐IDamount(必需):要取款的金额,以便士计(例如,1000表示£10.00)account_type(可选):要存款的账户。默认为“personal”示例请求:
从我的储蓄存钱罐取出25英镑
从我的假期存钱罐取出10英镑到我的个人账户
</details>
<details>
<summary>
列出指定账户的交易。
参数:
account_type(可选):要列出交易的账户类型。默认为“personal”since(可选):交易的起始日期,ISO 8601格式(例如,“2025-05-20T00:00:00Z”)before(可选):交易的结束日期,ISO 8601格式limit(可选):要返回的最大交易数。默认为1000示例请求:
显示我最近的交易
今天我有哪些交易?
列出这个月我的联合账户的所有交易
</details>
<details>
<summary>
检索特定交易的详细信息。
参数:
transaction_id(必需):要检索的交易IDexpand(可选):要在响应中包含的附加数据。默认为“merchant”示例请求:
显示我最后一次交易的详细信息
我最后一次交易是什么?
</details>
<details>
<summary>
编辑交易的元数据。
参数:
transaction_id(必需):要注解的交易IDmetadata_key(必需):要编辑的元数据键。默认为'notes'metadata_value(必需):元数据键的新值。空值将删除该键delete_note(可选):如果设置为true,则删除注释。默认为false示例请求:
在我的最后一次交易中添加一个注释说“与朋友共进晚餐”
删除我最后一次交易中的注释
</details>
<details>
<summary>
uv安装,例如/Users/[Your Home Directory]/.local/bin/uv。requests库是否包含在配置中的--with参数列表中,因为这是连接问题的常见原因。~/Library/Logs/Claude/mcp-server-Monzo.log来检查是否有任何错误。uv是一个设计得比pip更快的Python包管理和安装工具。