🚀 MCP费用
使用MCP、FastAPI、SQLite和Gradio进行代理费用管理
](<>)    
______________________________________________________________________
📘 概述
MCP费用 是一个多容器、代理驱动的费用跟踪系统,演示了如何 OpenAI MCP工具, FastAPI微服务, Gradio用户界面,以及 SQLite 可以组合成一个安全、可扩展、LLM驱动的应用程序。
使用ExpensesMCP,用户可以自然地进行交互:
- “增加20美元的午餐费用”
- “列出本周的所有费用”
- “将费用3更新为14美元”
- “删除出租车”
底层AI代理使用 MCP工具 以在后端API上安全地执行结构化操作。
______________________________________________________________________
🧱 建筑
系统流量
Gradio UI → OpenAI Agent → MCP Server → Expense API → SQLite DB美人鱼图
flowchart LR
A[Gradio UI
expense_agent_app] --> B(OpenAI Responses API
MCP Tools)
B --> C[expense_mcp_server
MCP Tool Gateway]
C --> D[expense_api
FastAPI CRUD Service]
D --> E[(SQLite Database)]______________________________________________________________________
🧩 组件
1. expense_agent_app –Gradio+OpenAI代理
- 聊天UI使用 Gradio块
- 使用OpenAI 响应API 和 MCP工具
- 无状态容器;易于扩展
- 继续运行 端口7860
2. expense_mcp_server –MCP工具网关
- 暴露安全的、类型化的MCP工具端点:
- add_expense - list_expenses - get_expense - update_expense - delete_expense
- 将工具请求转发到API容器
- 继续运行 端口8000
3. expense_api –FastAPI+SQLite后端
- CRUD操作费用:
- POST /expenses - GET /expenses - GET /expenses/{id} - PUT /expenses/{id} - DELETE /expenses/{id}
- 坚持使用简单的SQLite存储
- 继续运行 端口9000
______________________________________________________________________
📂 文件夹结构
expenses-mcp/
│
├── expense_api/ # FastAPI CRUD backend
│ ├── main.py
│ ├── db.py
│ ├── repository.py
│ └── Dockerfile
│
├── expense_mcp_server/ # MCP tools proxy
│ ├── main.py
│ ├── config.py
│ └── Dockerfile
│
├── expense_agent_app/ # Gradio UI + OpenAI SDK
│ ├── client.py
│ ├── mcp_client.py
│ └── Dockerfile
│
├── docker-compose.yml
└── README.md______________________________________________________________________
🚀 快速入门
1.克隆仓库
git clone https://github.com/ganapathyp/expenses-mcp.git
cd expenses-mcp2.设置您的OpenAI API密钥
export OPENAI_API_KEY=sk-...(Windows PowerShell)
setx OPENAI_API_KEY "sk-..."3.启动完整的多容器环境
docker compose up --build您现在将拥有:
| 组件 | URL | 描述 |
|---|---|---|
| API | http://localhost:9000/docs | CRUD后端费用 |
| MCP服务器 | http://localhost:8000/docs | MCP工具网关 |
| 代理UI(Gradio) | http://localhost:7860 | 交互式聊天机器人 |
______________________________________________________________________
🧪 示例命令(与代理聊天)
在Gradio UI中尝试以下操作:
- “在食品类别中添加12美元的午餐费用”
- “列出所有费用”
- “将费用1更新为18美元”
- “删除费用3”
______________________________________________________________________
🏗 部署说明
✔ 微服务边界
每个服务都可以通过Docker独立部署。
✔ 扩展
- API和MCP服务器可以在负载均衡器后面水平扩展。
- Gradio UI可以扩展为无状态前端工作者。
✔ 数据库
SQLite用于可移植性——易于与Postgres交换。
______________________________________________________________________
🔧 未来的增强功能
- 🔐 API和MCP认证
- 📊 支出仪表板可视化(绘图仪、梯度图)
- 🧮 月度预算跟踪和总结
- 📁 CSV导入/导出
- ☁️ 地形+云部署示例
______________________________________________________________________
