银行MCP服务器

一个基于NestJS的后端API,提供银行功能,包括多币种支持、实时汇率管理和安全认证。

  • by Kiddie22
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 kiddie22/bm-mcp

使用说明

NestJS银行MCP服务器

一种模型上下文协议(MCP)服务器,通过NestJS后端API提供银行功能,并提供个人访问令牌认证和对多种货币的支持。

特性

  • 安全认证:个人访问令牌确保用户只能访问自己的帐户
  • 多币种支持:查看任何支持的货币(澳元、美元、日元等)之间的余额和转账
  • 动态汇率管理:有条件转账的任何货币对的实时汇率
  • 代理前置条件检查:自动验证转账资格
  • 用户激励:缺少信息的交互式提示
  • 完整数据隐私:所有用户数据都需要身份验证-没有任何内容可以公开访问

安全模型

该银行系统实现了安全身份验证模型,其中:

  • 每个用户都有一个唯一的个人访问令牌
  • 用户只能查看和修改自己的帐户
  • 所有用户数据都需要身份验证-没有公共访问权限
  • 任何货币对的汇率都是公开的
  • 访问令牌在环境变量中配置
  • 后端通过令牌自动识别用户

可用用户

该系统附带了两个带有硬编码访问令牌的演示用户:

  • 爱丽丝 -访问令牌: alice_token_12345
  • 鲍勃 -访问令牌: bob_token_67890

环境配置

创建一个 .env 根目录中的文件,包含以下变量:

BASE_URL=http://localhost:3000
ACCESS_TOKEN=alice_token_12345

要在用户之间切换,只需更改 ACCESS_TOKEN 价值在你 .env 文件。

API终点

公共端点(无需身份验证)

  • GET /fx?from={currency}&to={currency} -获取任何货币对的当前汇率
  • PUT /fx -更新货币对的汇率

经过身份验证的端点(需要承载令牌)

  • GET /me -获取您自己的帐户信息
  • POST /transfer -在您的账户之间转账

MCP工具

公共工具

  • get-fx-rate -获取任意两种货币之间的当前汇率
  • get-access-token-info -获取当前访问令牌的相关信息

经过身份验证的工具

  • get-my-balance -查看您自己的账户余额
  • check-transfer-eligibility -验证传输条件
  • transfer-funds -在您的账户之间转账

MCP资源

  • fx-rate -汇率数据作为一种资源

用法示例

  1. 检查您的余额:

    Use tool: get-my-balance
    
  2. 获取任何货币对的外汇汇率:

    Use tool: get-fx-rate with fromCurrency: "AUD", toCurrency: "JPY"
    
  3. 转移资金:

    Use tool: transfer-funds with amount: 100, fromCurrency: "AUD", toCurrency: "USD", fxRateCondition: {operator: "above", value: 0.65}
    
  4. 获取令牌信息:

    Use tool: get-access-token-info
    

支持的货币

系统支持多种货币,汇率可配置:

  • 澳元 (澳元)
  • 美元 (美元)
  • 日元 (日元)
  • 还有更多 -易于扩展到其他货币

汇率被存储为货币对(例如。, AUDUSD, AUDJPY)并且可以通过API进行更新。

设置

  1. 安装依赖项:

    npm install
    cd server && npm install
    
  2. 创建 .env 使用您的配置文件:

    cp .env.example .env
    # Edit .env with your preferred access token
    
  3. 启动NestJS服务器:

    cd server
    npm run start:dev
    
  4. 启动MCP服务器:

    npm start
    

环境变量

  • BASE_URL -NestJS API基本URL(默认值:http://localhost:3000)
  • ACCESS_TOKEN -您的访问令牌(默认值:alice_token_12345)

在用户之间切换

要在用户之间切换,只需更新您的 .env 文件:

# To use Alice's account
ACCESS_TOKEN=alice_token_12345

# To use Bob's account
ACCESS_TOKEN=bob_token_67890

然后重新启动MCP服务器,使更改生效。

添加新货币

要添加对新货币的支持:

  1. 更新后端 fxRates 在中映射 server/src/app.service.ts
  2. 在用户数组中添加新货币的模拟账户
  3. MCP工具将自动支持新货币

例子:

let fxRates: Record<string, number> = {
  AUDUSD: 0.68,
  USDAUD: 1 / 0.68,
  AUDJPY: 100,
  JPYAUD: 1 / 100,
  EURUSD: 1.08, // New currency
  USDEUR: 1 / 1.08,
};

安全说明

  • 这是一个使用硬编码访问令牌进行演示的模拟系统
  • 为了安全起见,在环境变量中配置了访问令牌
  • 工具中不需要输入令牌-身份验证是自动的
  • 后端通过匹配令牌自动识别用户
  • 在生产中,实现适当的令牌生成、存储和过期
  • 考虑增加速率限制和额外的安全措施
  • 所有用户数据都是完全私有的,需要身份验证