becu-mcp

一 MCP(模型上下文协议) 提供只读访问权限的服务器 BECU 通过浏览器自动化创建帐户。与Claude Code或任何兼容MCP的客户端一起使用,以对话方式查询账户余额和交易历史。
它做什么
显示三个工具:
| 工具 | 说明 |
|---|---|
get_accounts | 返回所有当前余额、可用余额和年初至今利息的账户 |
get_balance | 按索引返回单个帐户的余额详细信息 |
get_transactions | 返回账户的交易历史记录(日期、描述、金额、余额) |
使用Playwright驱动Chromium浏览器自动处理身份验证。会话被持久化 session.json 所以后续的通话都是无头的。如果会话到期或需要MFA,将打开一个可见的浏览器窗口供您完成登录。
安装
先决条件
- Python 3.11+
- 紫外线 或pip
步骤
- 克隆存储库:
git clone https://github.com/jrolstad/becu-mcp.git
cd becu-mcp- 安装依赖项:
pip install -r requirements.txt- 安装Playwright的Chromium浏览器:
playwright install chromium- 使用以下两个选项之一设置您的BECU凭据。
使用Claude代码进行配置
将服务器添加到您的Claude Code MCP设置中(~/.claude.json 在...之下 mcpServers).凭据可以直接在MCP配置中提供(推荐)或通过 .env 文件。
选项A——MCP配置中的凭据(推荐)
将凭据作为环境变量传递到MCP服务器条目中。这将所有东西放在一个地方,避免了需要 .env 磁盘上的文件。
{
"mcpServers": {
"becu": {
"type": "stdio",
"command": "python",
"args": ["/path/to/becu-mcp/server.py"],
"env": {
"BECU_USERNAME": "your_username_here",
"BECU_PASSWORD": "your_password_here"
}
}
}
}选项B-- .env 文件
创建一个 .env repo目录中的文件:
cp .env.example .env然后编辑 .env:
BECU_USERNAME=your_username_here
BECU_PASSWORD=your_password_here服务器通过以下方式自动加载 python-dotenv 在启动时。这 .env 文件被标记为无效。
用法
连接后,您可以问Claude以下问题:
- “列出我的BECU账户及其余额”
- “我的支票最近20笔交易是什么?”
- “我的储蓄账户余额是多少?”
- “年度付款储蓄账户年初至今赚取了多少利息?”
身份验证和会话
- 首次运行时,Chromium浏览器窗口会打开,并使用您的凭据登录。
- 如果需要MFA,您有60秒的时间在浏览器窗口中完成它。
- 成功登录后,Cookie将保存到
session.json为了未来的无头跑步。 - 如果会话到期,浏览器窗口将自动再次打开。
session.json是合法的,不要犯。
发展
项目结构
becu_client.py # Playwright scraping and HTML parsing logic
server.py # MCP server (FastMCP) — exposes tools to MCP clients
requirements.txt # Python dependencies
.env.example # Credential template
session.json # Persisted browser session cookies (gitignored)刮擦是如何工作的
becu_client.py 使用Playwright从以下位置加载页面 onlinebanking.becu.org,然后使用BeautifulSoup解析HTML。BECU页面使用 桌锯 响应式表库,在每个表中嵌入列标签 ` 作为 ` 元素。解析器提取这些标签来标识每个单元格的字段,而不管列顺序如何,使其对布局更改具有弹性。
主要功能:
_get_page_html()--获取页面,处理身份验证/会话管理_cell_label_and_value()--从表格中提取字段标签和值 ``_parse_currency()--转换"$1,234.56"到1234.56get_accounts()--抓取摘要页面,按帐号进行重复数据消除get_transactions()--抓取“活动”页面,过滤掉摘要/非事务行
在本地运行
python server.py或者通过MCP CLI:
mcp dev server.py添加新工具
- 添加一个新的异步函数
becu_client.py它获取并解析相关的BECU页面。 - 将其注册为工具
server.py使用@mcp.tool()装饰师。 - 重新连接MCP客户端以获取新工具。
依赖项
| 包装 | 用途 |
|---|---|
mcp | MCP服务器框架(FastMCP) |
playwright | 用于抓取的无头浏览器自动化 |
beautifulsoup4 | HTML解析 |
python-dotenv | 正在从加载凭据 .env |
