MCP会计平台
一 基于人工智能的会计异常检测平台 建于 FastAPI、PostgreSQL、React和OpenAI,具有完整的 生产就绪认证系统.
______________________________________________________________________
🚀 概述
MCP Accounting是一个全栈系统,旨在:
- 摄取金融交易数据
- 检测异常(大额交易、重复)
- 生成人工智能驱动的解释
- 将功能公开为 MCP风格的可调用API
______________________________________________________________________
🧱 技术栈
后端
- 快速API
- SQLAlchemy
- PostgreSQL
- Passlib(加密)
- JWT(身份验证)
- 码头工人
前端
- React(TypeScript)
- Tailwind CSS
AI层
- OpenAI API(说明)
______________________________________________________________________
🔐 认证系统(生产就绪)
已实现的功能
- ✅ 用户注册
- ✅ 电子邮件验证(基于令牌)
- ✅ 安全密码散列(bcrypt)
- ✅ 使用JWT登录(无状态身份验证)
- ✅ 密码重置流程
- ✅ 受保护的路线(JWT就绪)
______________________________________________________________________
身份验证流程
注册
- 用户寄存器
- 用户创建为 未激活/未验证
- 生成的验证令牌(DB)
- 发送带有验证链接的电子邮件
邮件验证
- 令牌已验证
- 用户标记为:
- is_active = True - is_verified = True
- 令牌使用后失效
登录
- 验证:
- 电子邮件已存在 - 密码匹配(bcrypt) - 用户已验证
- 返回JWT:
{
"access_token": "jwt-token",
"token_type": "bearer"
}密码重置
- 请求重置
- 生成令牌并通过电子邮件发送
- 用户提交新密码
- 令牌无效
______________________________________________________________________
🏗️ 建筑
Frontend (React)
↓
FastAPI (API Layer)
↓
Service Layer (Business Logic)
↓
SQLAlchemy ORM
↓
PostgreSQL
↓
AI Layer (OpenAI)______________________________________________________________________
🔄 数据流
Register → Verify Email → Login → Upload CSV
↓
Store Transactions → Detect Anomalies
↓
Generate Report → AI Explanation______________________________________________________________________
🧩 API终点
认证
POST /auth/registerPOST /auth/loginGET /verify-emailPOST /forgot-passwordPOST /reset-password
核心功能
POST /upload-transactionsPOST /tools/get_transactionsPOST /tools/detect_large_expensesPOST /tools/find_duplicate_paymentsPOST /report/anomaliesPOST /report/anomalies/explain
______________________________________________________________________
🐳 使用Docker运行
docker compose up --build访问权限:
- API文件:http://localhost:8000/docs
- 前端:http://localhost:3000
______________________________________________________________________
⚙️ 环境变量
DATABASE_URL=postgresql://postgres:postgres@db:5432/mcp_accounting
SECRET_KEY=your-secret-key
FRONTEND_URL=http://localhost:3000______________________________________________________________________
🧠 关键技术决策
1.令牌类型的分离
| 用例 | 机制 |
|---|---|
| 电子邮件验证 | DB令牌 |
| 密码重置 | DB令牌 |
| 身份验证 | JWT |
______________________________________________________________________
2.安全实践
- 通过bcrypt进行密码哈希
- 无明文密码存储
- 令牌使用后失效
- 一般登录错误(无用户枚举)
______________________________________________________________________
3.SQLAlchemy最佳实践
- 单
Base例子 - 正确的模型注册
- 注入依赖关系的数据库会话
______________________________________________________________________
4.Docker化环境
- 基于服务的网络(
db) - 环境驱动配置
- 清洁容器重建
______________________________________________________________________
🧪 当前状态
- ✅ 端到端功能
- ✅ 身份验证已完全实施
- ✅ 稳定的Docker环境
- ✅ 清洁API合同
- ✅ AI集成工作
______________________________________________________________________
📌 后续步骤
- \[\]Alembic迁移(模式版本控制)
- \[\]JWT保护的端点
- \[\]基于角色的访问控制(RBAC)
- \[\]后台作业(电子邮件队列)
- \[\]令牌哈希(安全强化)
- \[\]可观察性(日志+指标)
______________________________________________________________________
💡 项目目的
该项目展示了:
- 真实世界后端架构
- 安全身份验证设计
- AI集成到财务工作流程中
- MCP-型API自动化曝光
______________________________________________________________________
👨💻 作者
开发为a 生产风格后端系统 展示:
- Python/FastAPI专业知识
- 系统设计与架构
- 安全身份验证流程
- 人工智能驱动的应用程序设计
______________________________________________________________________
📄 许可证
MIT许可证
