💰 MCP费用跟踪器
全面 模型上下文协议(MCP) 该实现具有一个具有本地和远程服务器配置以及多个客户端接口的费用跟踪系统。
🎯 概述
该项目演示了用于费用跟踪的生产就绪MCP服务器实现,展示了:
- 双服务器架构:本地(STDIO)和远程(HTTP)实现
- 多个客户端接口:CLI和基于Web的客户端
- 现代技术栈:FastMCP、LangChain、Streamlit和异步Python
- 实际应用:通过类别、摘要和日期范围查询完成费用管理
🏗️ 建筑
mcp-expense-tracker/
├── servers/
│ ├── local-server/ # STDIO-based MCP server
│ └── remote-server/ # HTTP-based MCP server with async support
├── clients/
│ ├── cli-client/ # Command-line interface
│ └── web-client/ # Streamlit web interface
├── docs/ # Documentation and learning resources
└── README.md✨ 特性
MCP工具
add_expense:添加带有类别、子类别和注释的新支出条目list_expenses:查询日期范围内的费用summarize:生成按类别划分的费用汇总categories:支出类别的资源端点
服务器实现
- 本地服务器:使用STDIO传输的基于SQLite的同步服务器
- 远程服务器:异步基于aiosqlite的服务器,支持HTTP传输
- 代理服务器:用于远程部署的FastMCP云代理
客户端实现
- CLI客户端:具有LangChain集成的异步命令行客户端
- 网络客户端:带有工具调用的交互式Streamlit聊天界面
🚀 快速开始
先决条件
- Python 3.11+
- OpenAI API密钥(用于客户端)
- FastMCP框架
本地服务器设置
cd servers/local-server
pip install -e .
python main.py远程服务器设置
cd servers/remote-server
pip install -e .
python main.py # Runs on http://0.0.0.0:8000CLI客户端
cd clients/cli-client
pip install -r requirements.txt
# Set OPENAI_API_KEY in .env
python client.py网络客户端
cd clients/web-client
pip install -r requirements.txt
# Set OPENAI_API_KEY in .env
streamlit run app.py📊 数据库模式
CREATE TABLE expenses(
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT NOT NULL,
amount REAL NOT NULL,
category TEXT NOT NULL,
subcategory TEXT DEFAULT '',
note TEXT DEFAULT ''
)🔧 技术栈
- FastMCP:MCP服务器框架
- 链浪:LLM编排和工具集成
- 溪流:Web界面
- SQLite/aiosqlite:数据库存储
- OpenAI API:LLM后端
📁 项目结构
servers/local-server/:带STDIO传输的同步MCP服务器servers/remote-server/:使用HTTP传输异步MCP服务器clients/cli-client/:命令行客户端实现clients/web-client/:Streamlit web应用程序docs/:综合文档和学习资源(PDF)
📚 文档
综合文档可在 docs/ 文件夹:
- 如何构建本地MCP服务器.pdf -本地服务器实施指南
- MCP客户端--快速修订说明.pdf -客户开发参考
- MCP Trilogy.pdf -完整的MCP协议概述
- 远程MCP服务器.pdf -远程部署指南
这些文档为整个项目提供了理论基础和实施模式。
🎓 学习资源
该项目展示了:
- MCP协议实现
- 多种传输类型(STDIO、HTTP、SSE)
- Python中的异步/等待模式
- LangChain工具集成
- FastMCP框架使用
- 生产就绪代码结构
📝 许可证
该项目是展示MCP协议专业知识的学习组合的一部分。
🤝 贡献
这是一个展示MCP实施技能的组合项目。
______________________________________________________________________
建于❤️ 使用FastMCP和LangChain
