内容
# 银行财务 MCP 服务器
MCP(模型上下文协议)服务器,提供对 [银行财务 8](https://www.iggsoftware.com/banktivity/) 个人财务数据库的只读访问,使 LLM 能够总结交易、余额和支出。
## 功能
- **净资产摘要**,支持多种货币转换到报告货币
- **账户余额**,按类型分组(资产、现金/银行、储蓄、当前、投资、信用卡)
- **投资持有**,包含证券估值,最新价格
- **支出分析**,按类别和月份
- **交易搜索**,按标题或备注
- **多数据库支持**,从单个服务器查询多个银行财务文件
所有查询均为**只读**,数据库以不可变模式打开。
## 要求
- Python 3.12+
- 一个银行财务 8 `.bank8` 文件
## 安装
```bash
git clone <仓库网址>
cd banktivity
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
## 配置
将以下内容添加到您的 Claude 桌面配置文件中:
- **macOS**:`~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**:`%APPDATA%\Claude\claude_desktop_config.json`
### 单个数据库
```json
{
"mcpServers": {
"banktivity": {
"command": "/path/to/.venv/bin/python",
"args": ["/path/to/server.py"],
"env": {
"BANKTIVITY_DB": "/path/to/YourFile.bank8"
}
}
}
}
```
### 多个数据库
```json
{
"mcpServers": {
"banktivity": {
"command": "/path/to/.venv/bin/python",
"args": ["/path/to/server.py"],
"env": {
"BANKTIVITY_DATABASES": "{\"mine\": \"/path/to/Banking.bank8\", \"family\": \"/path/to/Family.bank8\"}"
}
}
}
}
```
JSON 对象中的第一个数据库是默认数据库。传递 `database="family"` 到任何工具来查询非默认数据库。
### 环境变量
| 变量 | 描述 | 默认值 |
|----------|-------------|---------|
| `BANKTIVITY_DATABASES` | 映射名称到 `.bank8` 路径的 JSON 对象 | — |
| `BANKTIVITY_DB` | 单个 `.bank8` 路径(如果未设置 `BANKTIVITY_DATABASES` 则作为备用) | `./Banking.bank8` |
| `BANKTIVITY_REPORTING_CCY` | 转换金额的货币代码 | `GBP` |
## 可用工具
| 工具 | 描述 |
|------|-------------|
| `list_databases` | 列出所有配置的银行财务数据库 |
| `net_worth` | 按账户类型划分的完整资产负债表,包含证券和货币转换 |
| `account_balances` | 账户列表,可选按类型筛选 |
| `transactions` | 按账户和/或日期范围筛选的交易列表 |
| `spending_by_category` | 按类别或类别组划分的费用总额 |
| `monthly_spending` | 报告货币的每月支出趋势 |
| `search_transactions` | 按标题或备注搜索交易 |
| `investment_holdings` | 证券详情:份额、价格、每账户价值 |
## 工作原理
银行财务 8 将数据存储在 `.bank8` 包中的 `StoreContent/core.sql` 处的 Core Data 支持的 SQLite 数据库中。该服务器使用只读 SQLite 连接直接查询它。
关键实现细节:
- **复式记账**:每个交易有 2+ 个科目(借方 + 贷方)
- **运行余额**:使用 `ZPDATE DESC, ZPCREATIONTIME DESC` 排序确定
- **多币种**:数据库中的汇率将所有金额转换为报告货币
- **证券**:投资账户显示现金 + 最新价格估值的持有量
## 许可证
MIT