项目简介
该GitHub仓库是一个更大型的AI银行助手概念验证项目,旨在展示如何使用.NET和Semantic Kernel构建多智能体应用。项目包含多个组件,其中包括了两个实现了Model Context Protocol (MCP) 服务器的后端服务:一个用于账户信息,另一个用于支付处理。这些MCP服务器负责将具体的业务逻辑(如查询账户余额、提交支付)以标准化的方式暴露给使用MCP协议的客户端(在该项目中是AI代理)。
该仓库不是MCP服务器本身,但它包含并部署了两个功能完整的MCP服务器实现。
主要功能点 (MCP 服务器部分)
该仓库中包含的MCP服务器提供了以下核心功能:
- 账户信息查询:
- 获取指定用户的账户列表。
- 获取特定账户的详细信息(包括支付方式摘要)。
- 获取特定支付方式的详细信息(包括可用余额)。
- 获取特定账户的已注册收款人列表。
- 支付处理:
- 提交支付请求并通知交易系统。
- 支持多种支付类型(如银行转账、信用卡)。
这些功能通过MCP协议的标准工具(Tools)形式暴露,可供任何兼容的MCP客户端调用。
安装步骤
该项目使用Azure Developer CLI (azd) 进行自动化部署,这会部署包括MCP服务器在内的所有必要组件。
- 安装前提条件: 确保已安装 .NET 9.0 SDK, Azure Developer CLI (azd), Node.js, Git, 以及 Powershell 7+ (仅限Windows)。
- 登录 Azure: 运行 'azd auth login' 并按照提示完成登录。
- 初始化并部署项目: 克隆或使用 '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' 工具,并代表用户执行相应的调用。
信息
分类
商业系统