使用说明
项目简介
这是一个基于 Model Context Protocol (MCP) 实现的后端服务器,专注于处理以色列银行的信用卡交易数据。它利用 'israeli-bank-scrapers' 库抓取数据,并将交易记录存储在本地 SQLite 数据库中,通过 MCP 接口向兼容的 LLM 客户端提供数据访问和功能调用。
主要功能点
- 信用卡交易抓取: 能够连接到指定的以色列银行网站,抓取用户的信用卡交易记录。
- 本地数据存储: 将抓取到的交易数据安全地存储在本地 SQLite 数据库文件中,方便后续查询和分析。
- 数据访问能力: 提供工具或未来可能的资源接口,允许 LLM 客户端查询数据库中存储的交易记录,例如按日期范围筛选。
- MCP 工具支持: 注册如“抓取交易”等工具,LLM 可以通过 MCP 调用这些工具执行特定任务。
- MCP Prompt 支持: 定义 Prompt 模板,指导 LLM 如何与服务器交互以完成复杂任务,如获取并分析上月交易。
安装步骤
- 克隆项目仓库:
git clone https://github.com/shlomiuziel/israeli-bank-scrapers-mcp-demo.git cd israeli-bank-scrapers-mcp-demo - 安装项目依赖:
npm install - 根据需要配置 Chromium 浏览器路径(用于数据抓取)。可以通过设置 'CHROMIUM_PATH' 环境变量,或修改 'src/config.ts' 中的默认路径。
服务器配置 (供 MCP 客户端参考)
此服务器设计为由 MCP 客户端启动和管理。客户端需要配置以下信息才能连接和运行此服务器:
- 服务器名称: 'credit-card-mcp-server' (这是服务器在 MCP 协议中声明的唯一标识符)
- 启动命令 (Command): 'npm'
- 启动参数 (Args): '["start"]' (客户端会执行 'npm start' 命令来启动服务器)
- 必需环境变量:
- 'BANK_USERNAME': 银行登录用户名
- 'BANK_PASSWORD': 银行登录密码
- 'DB_PATH' (可选): SQLite 数据库文件路径,默认为 'transactions.db'
- 'CHROMIUM_PATH' (可选): Chromium 浏览器可执行文件路径
(请注意,上述配置信息并非直接放入此仓库代码中,而是 MCP 客户端在连接服务器时需要了解和配置的参数。)
基本使用方法
-
构建项目:
npm run build -
启动服务器: 通过兼容的 MCP 客户端连接并启动此服务器。客户端会根据上述配置执行 'npm start' 命令。确保在客户端配置中提供了 'BANK_USERNAME' 和 'BANK_PASSWORD' 环境变量。
-
通过 MCP 客户端调用工具: 服务器启动后,MCP 客户端可以通过标准 JSON-RPC 请求调用已注册的工具,例如调用 'scrapeTransactions' 工具来抓取交易数据,并提供相应的参数(如开始日期和银行凭据)。
例如 (这是客户端发送的 JSON-RPC 请求示例,用户通常通过 LLM 界面或客户端接口触发):
{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "scrapeTransactions", "arguments": { "startDate": "YYYY-MM-DD" // 注意:凭据通常不直接在工具参数中传递,而是通过 MCP 的安全机制或服务器配置处理 // 此示例中的服务器实现通过环境变量获取凭据 } }, "id": 1 } -
通过 MCP 客户端使用 Prompt: 客户端也可以使用定义的 Prompt 模板,如 'fetch-last-month-transactions',引导 LLM 进行更复杂的交互,从而间接触发抓取、查询和分析数据的流程。
安全注意事项
- 敏感凭据通过环境变量传递,并仅在内存中临时使用。
- 本地 SQLite 数据库文件应妥善保管,防止未经授权的访问。
信息
分类
商业系统