MCP电子银行代理
由Mistral AI和模型上下文协议(MCP)支持的交互式银行助理。该项目演示了如何构建一个可以通过自然语言与银行API交互的AI代理。
⚠️ 平台要求: 该项目旨在运行 Linux 或 WSL(Linux的Windows子系统)。不支持Windows本机环境。
特性
- 🏦 模拟银行API,包含客户账户、交易和文档
- 🤖 使用Mistral AI的AI聊天界面
- 🔧 用于工具编排的MCP(模型上下文协议)服务器
- 🔒 帐户级身份验证和授权
- 💬 交互式命令行聊天界面
先决条件
- Python 3.11或更高版本
- 紫外线 包管理器
- Mistral API密钥
设置
1.安装uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh2.克隆并导航到项目
cd /path/to/ebanking-agent3.使用uv安装依赖项
# Create a virtual environment and install all dependencies
uv sync这将:
- 在中创建虚拟环境
.venv - 从安装所有依赖项
pyproject.toml包括:
- 用于银行业的FastAPI API - MCP服务器的FastMCP - 用于AI代理的Mistral AI SDK
4.配置环境变量
创建一个 .env 使用Mistral API密钥在项目根目录中创建文件:
echo "MISTRAL_API_KEY=your_mistral_api_key_here" > .env您可以从获取Mistral API密钥 https://console.mistral.ai/
用法
该项目由三个需要同时运行的主要组件组成。你需要三个终端窗口。
终端1:启动API银行业务
API银行业务为账户、交易和文档提供后端数据和操作。
# Activate the virtual environment
source .venv/bin/activate
# Start the banking API server
uv run banking_api.pyAPI将于 http://localhost:8000
- API文件可在以下网址获取:
http://localhost:8000/docs
终端2:启动MCP服务器
MCP服务器充当AI代理和API银行业务之间的桥梁,将银行业务公开为工具。
# Activate the virtual environment
source .venv/bin/activate
# Start the MCP server
uv run server.pyMCP服务器将启动 http://localhost:8010
终端3:启动聊天客户端
聊天客户端提供了一个交互式界面,用于与人工智能银行代理进行通信。
# Activate the virtual environment
source .venv/bin/activate
# Start the interactive chat client
uv run client.py与银行代理人互动
一旦所有三个组件都运行完毕,您就可以通过聊天界面与银行代理进行交互:
Welcome to the Interactive MCP Chat!
============================================================
Type your questions and press Enter.
Type 'exit', 'quit', or 'q' to end the session.
============================================================
You: 查询示例
尝试以下示例查询与银行系统交互:
"Show me all my accounts""What's the balance of my checking account?""List recent transactions for account ACC001""Lock my account ACC001""Search for documents about my account statement""What's my user profile information?"
备注
- 该系统使用预先配置的客户(CUST001、CUST002、CUST003)的模拟数据
- 默认情况下,会话将作为特定用户进行身份验证(在中配置
server.py) - 要修改身份验证,您可以更新
set_user_context()功能在server.py - 类型
exit,quit,或q结束聊天会话
项目结构
ebanking-agent/
├── banking_api.py # FastAPI-based mock banking backend
├── server.py # MCP server with banking tools
├── client.py # Interactive chat client
├── prompts/
│ └── agent-system-prompt.yaml # System prompt for the AI agent
├── pyproject.toml # Project dependencies
├── uv.lock # Dependency lock file
└── README.md # This file可用的MCP工具
MCP服务器公开了以下银行工具:
list_accounts()-列出已验证用户的所有帐户get_account_balance(account_id)-获取特定账户的余额list_transactions(account_id)-列出帐户的交易记录lock_account(account_id)-锁定帐户search_documents(query)-搜索客户文档get_user_profile()-获取经过身份验证的用户的个人资料
发展
添加新工具
要添加新的银行业务:
- 将端点添加到
banking_api.py - 在中创建相应的MCP工具
server.py使用@mcp.tool()装饰器 - 确保正确的身份验证和授权检查
修改AI行为
编辑 prompts/agent-system-prompt.yaml 以定制AI代理的个性和行为。
