使用说明

项目简介

这是一个基于 Model Context Protocol (MCP) 实现的后端服务器,专注于处理以色列银行的信用卡交易数据。它利用 'israeli-bank-scrapers' 库抓取数据,并将交易记录存储在本地 SQLite 数据库中,通过 MCP 接口向兼容的 LLM 客户端提供数据访问和功能调用。

主要功能点

  • 信用卡交易抓取: 能够连接到指定的以色列银行网站,抓取用户的信用卡交易记录。
  • 本地数据存储: 将抓取到的交易数据安全地存储在本地 SQLite 数据库文件中,方便后续查询和分析。
  • 数据访问能力: 提供工具或未来可能的资源接口,允许 LLM 客户端查询数据库中存储的交易记录,例如按日期范围筛选。
  • MCP 工具支持: 注册如“抓取交易”等工具,LLM 可以通过 MCP 调用这些工具执行特定任务。
  • MCP Prompt 支持: 定义 Prompt 模板,指导 LLM 如何与服务器交互以完成复杂任务,如获取并分析上月交易。

安装步骤

  1. 克隆项目仓库:
    git clone https://github.com/shlomiuziel/israeli-bank-scrapers-mcp-demo.git
    cd israeli-bank-scrapers-mcp-demo
  2. 安装项目依赖:
    npm install
  3. 根据需要配置 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 客户端在连接服务器时需要了解和配置的参数。)

基本使用方法

  1. 构建项目:

    npm run build
  2. 启动服务器: 通过兼容的 MCP 客户端连接并启动此服务器。客户端会根据上述配置执行 'npm start' 命令。确保在客户端配置中提供了 'BANK_USERNAME' 和 'BANK_PASSWORD' 环境变量。

  3. 通过 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
    }
  4. 通过 MCP 客户端使用 Prompt: 客户端也可以使用定义的 Prompt 模板,如 'fetch-last-month-transactions',引导 LLM 进行更复杂的交互,从而间接触发抓取、查询和分析数据的流程。

安全注意事项

  • 敏感凭据通过环境变量传递,并仅在内存中临时使用。
  • 本地 SQLite 数据库文件应妥善保管,防止未经授权的访问。

信息

分类

商业系统