使用说明
🏦 贷款管理系统-MCP服务器
银行贷款管理系统作为MCP服务器(Model Context Protocol)与FastMCP、PostgreSQL和Sqlalchemy一起实现。
📋 描述
该项目提供了一个MCP服务器,可以管理银行贷款及其相关配额。它使用以PostgreSQL为数据库的异步体系结构,并公开了用于查询贷款、客户和付款配额信息的MCP工具。
🎥 视频教程
在这段视频中,您将逐步解释MCP服务器的实现、项目架构以及如何将PostgreSQL与FastMCP集成。
✨ 特点
- 🔄 Asynchronous 架构:使用Asyncio和AsyncPG完全异步实现
- 🗄️ PostgreSQL数据库:健壮和可扩展的存储
- 🛠️ MCP 服务器:使用模型上下文协议展示工具
- 🐳 码头:使用Docker Compose轻松部署
- 📊 贷款管理:全面监测贷款和分期付款
- 🔍 优化查询:使用sqlalchemy优化的索引和查询
🏗️ 建筑
mcp-database/
├── src/
│ ├── __init__.py
│ ├── database.py # Configuración de base de datos y pool de conexiones
│ ├── models.py # Modelos SQLAlchemy (Loan, LoanInstallment)
│ ├── tools.py # Herramientas MCP expuestas
│ └── utils.py # Utilidades auxiliares
├── server.py # Punto de entrada del servidor
├── docker-compose.yml # Orquestación de servicios
├── Dockerfile # Imagen del servidor MCP
└── pyproject.toml # Dependencias del proyecto
🗃️ 数据模型
贷款(贷款)
id:贷款的唯一标识符customer_id:客户IDcustomer_name:客户名称loan_amount:贷款金额interest_rate:利率loan_term_months:月内start_date:开始日期status:Estado(活跃、已支付、违约)remaining_balance:未偿余额
贷款安装(Cuota)
id:配额的唯一标识符loan_id:关联贷款IDinstallment_number:配额数量due_date:到期日期amount_due: 支付金额principal_amount:资本金额interest_amount:利息金额amount_paid:已完成payment_date:付款日期status:Estado(待定、已支付、逾期、部分)
🛠️ 可用的MCP工具
1. get_customer_loans
获取特定客户的所有贷款。
参数:
customer_id(STR):客户的唯一ID(例如:CUST001)
返回 : 贷款清单及其所有细节(ID、金额、利率、期限、状态、未偿余额)
2. get_all_customers
获取系统中所有客户端的列表。
返回 : 按字母顺序排列的ID和名称的客户列表
3. get_loan_installments
获取特定贷款的所有分期付款。
参数:
loan_id(int):贷款的唯一ID
返回 : 贷款细节和按配额编号排序的完整配额清单
4. get_pending_installments
获取特定贷款的所有未付分期付款。
参数:
loan_id(int):贷款的唯一ID
返回 : 状态为“待定”、“逾期”或“部分”的会费清单,包括未缴总额
使用案例:
- 验证客户在特定贷款中应支付的金额
- 确定未来期限
- 计算未付款总额
5. get_overdue_installments
他通过所有贷款从客户那里获得所有到期的分期付款。
参数:
customer_id(str):客户的唯一ID
返回 : 客户所有到期分期付款清单、到期总金额、到期分期付款金额和逾期天数
使用案例:
- 识别拖欠客户
- 计算延迟罚款
- 生成收款报告
6. get_customer_summary
获取按名称搜索的客户的完整和详细摘要。
参数:
customer_name(str):客户名称(支持部分搜索)
返回 : 完整摘要包括:
- 客户信息(ID和名称)
- 一般统计:
- 贷款和活跃贷款总额
- 借款总额
- 未偿余额总额
- 支付总额
- 未付金额
- 到期金额
- 到期和未缴摊款金额
- 每笔贷款的细节
使用案例:
- 客户360°视图
- 信用风险评估
- 支付行为分析
- 执行报告
🚀 安装和使用
先决条件
- Docker y Docker编写
- Python 3.14+(用于本地开发)
使用Docker Compose部署
- 克隆存储库
git clone <repository-url>
cd mcp-database
- 配置环境变量(可选)
创建一个新文件 .env 在项目的根源上:
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
POSTGRES_DB=loans_db
POSTGRES_PORT=5432
POOL_SIZE=20
DATABASE_ECHO=False
- 开始服务
docker-compose up -d
这将开始:
- 5432端口上的PostgreSQL
- 端口8000上的MCP服务器
- 验证状态
docker-compose ps
docker-compose logs -f mcp_server
地方发展
- 安装依赖项
pip install -e .
- 配置数据库
export DATABASE_URL="postgresql+asyncpg://postgres:password@localhost:5432/loans_db"
- 运行服务器
python server.py
🔧 配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
DATABASE_URL |
连接到PostgreSQL的URL | postgresql+asyncpg://postgres:password@postgres:5432/loans_db |
POOL_SIZE |
连接池大小 | 20 |
DATABASE_ECHO |
SQL日志 | False |
POSTGRES_USER |
PostgreSQL用户 | postgres |
POSTGRES_PASSWORD |
PostgreSQL密码 | password |
POSTGRES_DB |
数据库名称 | loans_db |
连接池
服务器使用配置为:
- 池大小:20个连接
- 最大溢出:额外10个连接
- 池超时:30秒
- 游泳池回收:3600秒
📡 服务器API
MCP服务器通过服务器发送事件(SSE)在以下位置公开其工具:
http://localhost:8000
服务器日志
docker-compose logs -f mcp_server
👥 作者
- 发展与❤️ 通过 @rmblockcode