项目简介

该GitHub仓库是一个更大型的AI银行助手概念验证项目,旨在展示如何使用.NET和Semantic Kernel构建多智能体应用。项目包含多个组件,其中包括了两个实现了Model Context Protocol (MCP) 服务器的后端服务:一个用于账户信息,另一个用于支付处理。这些MCP服务器负责将具体的业务逻辑(如查询账户余额、提交支付)以标准化的方式暴露给使用MCP协议的客户端(在该项目中是AI代理)。

该仓库不是MCP服务器本身,但它包含并部署了两个功能完整的MCP服务器实现。

主要功能点 (MCP 服务器部分)

该仓库中包含的MCP服务器提供了以下核心功能:

  1. 账户信息查询:
    • 获取指定用户的账户列表。
    • 获取特定账户的详细信息(包括支付方式摘要)。
    • 获取特定支付方式的详细信息(包括可用余额)。
    • 获取特定账户的已注册收款人列表。
  2. 支付处理:
    • 提交支付请求并通知交易系统。
    • 支持多种支付类型(如银行转账、信用卡)。

这些功能通过MCP协议的标准工具(Tools)形式暴露,可供任何兼容的MCP客户端调用。

安装步骤

该项目使用Azure Developer CLI (azd) 进行自动化部署,这会部署包括MCP服务器在内的所有必要组件。

  1. 安装前提条件: 确保已安装 .NET 9.0 SDK, Azure Developer CLI (azd), Node.js, Git, 以及 Powershell 7+ (仅限Windows)。
  2. 登录 Azure: 运行 'azd auth login' 并按照提示完成登录。
  3. 初始化并部署项目: 克隆或使用 'azd init' 初始化仓库,然后运行 'azd up'。
    • 'azd up' 命令会自动配置Azure资源(如Azure Container Apps、Azure OpenAI、Azure Document Intelligence等)并部署项目的所有服务,包括账户和支付MCP服务器。
    • 部署完成后,'azd up' 会输出前端Web应用的URL,你可以通过该URL与AI助手交互。

服务器配置 (供MCP客户端参考)

该仓库中的MCP服务器被部署为独立的Web服务,通过HTTP/SSE传输协议提供服务。MCP客户端连接到这些服务器时,需要知道其网络地址(Endpoint URL)。

一个MCP客户端如果要连接到该仓库部署的MCP服务器,其配置信息通常需要指定:

  • 服务器名称 (server name): 客户端内部用于标识该服务器的名称。在该项目中,客户端(AI代理)使用的名称是 "AccountPlugins" 和 "PaymentsPlugins"。
  • 连接命令 (command): 对于作为独立HTTP服务运行的MCP服务器,通常不需要客户端来启动进程,因此此项配置通常留空或设为 null。
  • 命令参数 (args): 同上,对于独立HTTP服务,此项通常留空或设为 null。
  • Endpoint URL (非标准MCP配置字段,但对HTTP/SSE连接必需): 服务器提供MCP服务的URL。

根据该项目的部署方式,MCP客户端连接信息的主要部分是Endpoint URL。典型的MCP客户端配置JSON格式会包含 'server name'、'command' 和 'args'。对于此示例中的HTTP/SSE服务器,'command' 和 'args' 不适用,客户端主要需要知道 Endpoint URL。

一个可能用于配置MCP客户端连接该仓库部署的MCP服务器的逻辑表示(非严格标准JSON,包含Endpoint URL说明):

  • 账户MCP服务器:
    • 服务器名称: "Account MCP Server" (客户端内部标识,例如 "AccountPlugins")
    • 连接命令: 不需要 (null)
    • 命令参数: 不需要 (null)
    • Endpoint URL 模式: '<部署后获取的账户API服务URL>/mcp'
    • 传输协议: HTTP/SSE
  • 支付MCP服务器:
    • 服务器名称: "Payment MCP Server" (客户端内部标识,例如 "PaymentsPlugins")
    • 连接命令: 不需要 (null)
    • 命令参数: 不需要 (null)
    • Endpoint URL 模式: '<部署后获取的支付API服务URL>/mcp'
    • 传输协议: HTTP/SSE

客户端需要从部署输出或Azure资源中获取 '<部署后获取的账户API服务URL>' 和 '<部署后获取的支付API服务URL>' 的实际值。

基本使用方法

该项目的MCP服务器不直接提供用户界面。它们是后端服务,被AI代理应用程序(该仓库中的 'banking-assistant' 项目)调用。

用户通过与部署后的前端Web应用(通过 'azd up' 获取URL)的聊天界面进行交互。当用户提出需要账户信息或支付相关的请求时,AI代理会作为MCP客户端,自动调用相应的MCP服务器工具来获取数据或执行操作。

例如,用户可以在聊天界面询问“我的账户余额是多少?”或“支付这张发票”。AI代理会解析用户意图,确定需要调用账户MCP服务器的 'GetAccountDetails' 工具或支付MCP服务器的 'SubmitPayment' 工具,并代表用户执行相应的调用。

信息

分类

商业系统